---
title: GET /v1/ping
description: Confirm your API key is valid and see which client it belongs to.
sidebar:
  label: Ping
  order: 0
---

Confirms your API key is valid and returns the identity it resolves to. Useful as a first integration check.

## Request

```
GET /v1/ping
Authorization: Bearer <key>
```

No query parameters or body.

**cURL**

```bash
curl https://newsapi.insighthread.com/api/v1/ping \
  -H "Authorization: Bearer ik_test_xxxxxxxxxxxxxxxx"
```

**JavaScript**

```js
const res = await fetch("https://newsapi.insighthread.com/api/v1/ping", {
  headers: { Authorization: "Bearer ik_test_xxxxxxxxxxxxxxxx" },
});
const data = await res.json();
```

## Response

`200 OK`

```json
{
  "ok": true,
  "message": "Authenticated as \"my test key\"",
  "client": {
    "id": "3f1e...",
    "label": "my test key",
    "prefix": "ik_test_xxxxxxxx"
  },
  "served_at": "2026-08-24T10:15:00.000Z"
}
```

| Field | Type | Description |
| --- | --- | --- |
| `ok` | boolean | Always `true` on success. |
| `message` | string | Human-readable confirmation, includes your key's label. |
| `client.id` | string | Internal ID of the API key. |
| `client.label` | string | The label you gave the key when creating it. |
| `client.prefix` | string | The key's visible prefix (`ik_live_` / `ik_test_` plus the first few characters) — safe to display, never the full secret. |
| `served_at` | string (ISO 8601) | Server timestamp the response was generated at. |

## Errors

See the [common error shapes](/docs/errors) — `/v1/ping` returns `401 unauthorized` for a missing or invalid key, and nothing else.
