# GET `/v1/_ping`

A trivial smoke endpoint. Returns the auth context derived from your token —
useful for confirming a credential works without touching real data.

| | |
|---|---|
| **Method** | `GET` |
| **URL** | `https://api.42min.us/v1/_ping` |
| **Scope** | *none* — any valid token works |
| **Auth** | Required |

## Headers

```
Authorization: Bearer <token>
```

## Query parameters

None.

## Response

```json
{
  "data": {
    "ok": true,
    "auth_type": "pat",
    "account_id": "01HXXX…",
    "scopes": ["bookings:read", "slots:read"],
    "client_id": "42min_…"
  },
  "meta": { "request_id": "req_…" }
}
```

- `auth_type` — `"pat"` or `"oauth"`.
- `account_id` — the 42min account (organization) the token is bound to.
- `scopes` — the expanded scope set carried by the token (aliases unrolled).
- `client_id` — present only for OAuth tokens.

## curl

```bash
curl -H "Authorization: Bearer $TOKEN" https://api.42min.us/v1/_ping
```

## Common errors

- `401 invalid_token` — token missing, malformed, or unknown.
- `401 token_expired` — token has expired (PAT with `expiresAt`, or access
  token past its hour).
- `401 token_revoked` — token has been revoked.
- `429 rate_limited` — bucket exhausted; see [Rate limits](/help/api/rate-limits).
