# Get authentication details

> Check a secret key before you use it, and see its workspace, scopes and rate limits.

Breadcrumb: API › Get authentication details · Updated: 2026-10-18
Docs index: https://docs.cevoid.com/developers/llms.txt

`GET https://api.cevoid.com/v2/me`

Returns the authenticated API key, workspace, scopes, and rate limits.

Call this endpoint first when you set up an integration. A `200` response means the key is valid, and its `scopes` list what the key may read and write. A `401` means the key is missing, malformed or revoked; create a new one under [Settings → Integrations → Cevoid API](https://app.cevoid.com/settings/integrations/api).

## Authorizations

Bearer token in the Authorization header: `Authorization: Bearer <key>` (API key).

## Query parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `market` | `string` | No | Market ID used to resolve localized data. Omit to use the default market. Example: `mar_sweden`. |

## Response

### 200: Successful response

`application/json`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | `object` | Yes | Requested resource. |
| `data.id` | `string` | Yes | Example: `6648c0f7bb9fd2d956fb0a42`. |
| `data.name` | `string` | Yes | Example: `Production integration`. |
| `data.type` | `enum<string>` | Yes | Allowed value: `secret`. Example: `secret`. |
| `data.scopes` | `string[]` | Yes | Authorization scopes granted to this secret API key. Example: `["profiles:read","members:read","points:read"]`. |
| `data.workspace` | `object` | Yes |  |
| `data.workspace.id` | `string` | Yes | Example: `6648c0f7bb9fd2d956fb0a42`. |
| `data.workspace.name` | `string` | Yes | Example: `Cevoid Demo`. |
| `data.rate_limits` | `object` | Yes | Independent read and write capacities, refilled continuously at the same number of requests per second. These values do not report remaining allowances. |
| `data.rate_limits.reads` | `number` | Yes | Read requests per second shared by all workspace keys. Each request counts once, regardless of page size. Example: `25`. |
| `data.rate_limits.writes` | `number` | Yes | Write requests per second shared by all workspace keys, independent of the read limit. Each request counts once. Example: `10`. |

Response headers:

| Header | Type | Description |
| --- | --- | --- |
| `Cevoid-Processing-Ms` | `string` | End-to-end request processing time in milliseconds |
| `Cevoid-Request-Id` | `string` | Request identifier for support and tracing |
| `RateLimit-Limit` | `string` | Current rate limit bucket size |
| `RateLimit-Remaining` | `string` | Remaining requests in the current rate limit window |
| `RateLimit-Reset` | `integer` | Seconds until the next request token is available |

```json
{
  "data": {
    "id": "6648c0f7bb9fd2d956fb0a42",
    "name": "Production integration",
    "type": "secret",
    "scopes": [
      "profiles:read",
      "members:read",
      "points:read"
    ],
    "workspace": {
      "id": "6648c0f7bb9fd2d956fb0a42",
      "name": "Cevoid Demo"
    },
    "rate_limits": {
      "reads": 25,
      "writes": 10
    }
  }
}
```

### 400: Bad request

`application/json`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `additional_data` | `object` | No | Optional machine-readable error details. |
| `additional_data.{key}` | `any` | No |  |
| `status` | `number` | Yes | HTTP status code for the error response. Example: `404`. |
| `code` | `string` | Yes | Stable machine-readable error code. Example: `not_found`. |
| `message` | `string` | Yes | Human-readable description of the error. Example: `Route not found`. |
| `request_id` | `string` | No | Request identifier for support and tracing. Example: `req_abc123`. |

Response headers: the same as 200.

```json
{
  "additional_data": {
    "errors": [
      {
        "field": "query.market",
        "message": "Invalid input: expected string, received array"
      }
    ]
  },
  "status": 400,
  "code": "bad_request",
  "message": "Bad request",
  "request_id": "req_abc123"
}
```

### 401: Unauthorized

`application/json`

Same fields as 400.

Response headers: the same as 200.

```json
{
  "status": 401,
  "code": "unauthorized",
  "message": "Unauthorized",
  "request_id": "req_abc123"
}
```

### 422: Validation error

`application/json`

Same fields as 400.

Response headers: the same as 200.

```json
{
  "additional_data": {
    "errors": [
      {
        "field": "query.market",
        "message": "Invalid input: expected string, received array"
      }
    ]
  },
  "status": 422,
  "code": "validation_error",
  "message": "Validation error",
  "request_id": "req_abc123"
}
```

### 429: Too many requests

`application/json`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `additional_data` | `object` | Yes | Machine-readable rate-limit details. |
| `additional_data.retry_after_seconds` | `integer` | Yes | Range: `0 <= x`. |
| `additional_data.{key}` | `any` | No |  |
| `status` | `integer` | Yes | HTTP status code. Example: `404`. |
| `code` | `string` | Yes | Stable machine-readable error code. Example: `not_found`. |
| `message` | `string` | Yes | Human-readable error description. Example: `Resource not found`. |
| `request_id` | `string` | No | Request identifier for support and tracing. Example: `req_abc123`. |

Response headers:

| Header | Type | Description |
| --- | --- | --- |
| `Cevoid-Processing-Ms` | `string` | End-to-end request processing time in milliseconds |
| `Cevoid-Request-Id` | `string` | Request identifier for support and tracing |
| `RateLimit-Limit` | `string` | Current rate limit bucket size |
| `RateLimit-Remaining` | `string` | Remaining requests in the current rate limit window |
| `RateLimit-Reset` | `integer` | Seconds until the next request token is available |
| `Retry-After` | `integer` | Seconds to wait before retrying the request |

```json
{
  "status": 429,
  "code": "rate_limit_exceeded",
  "message": "Rate limit exceeded",
  "request_id": "req_abc123",
  "additional_data": {
    "retry_after_seconds": 1
  }
}
```

### 500: Internal server error

`application/json`

Same fields as 400.

Response headers: the same as 200.

```json
{
  "status": 500,
  "code": "internal_server_error",
  "message": "Internal server error",
  "request_id": "req_abc123"
}
```

## Request example

```bash
curl 'https://api.cevoid.com/v2/me' \
  -H "Authorization: Bearer ${CEVOID_API_KEY}"
```

## Related articles

- [Secret key scopes](https://docs.cevoid.com/developers/api/authentication.md#scopes)
- [Rate limits](https://docs.cevoid.com/developers/api/rate-limits.md)

---

Canonical: https://docs.cevoid.com/developers/api/authentication/get-authentication-details
