> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getagentdrive.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create API Key

> Create a new API key for authentication.

## Request Body

<ParamField body="name" type="string">
  An optional name for the API key to help identify it.
</ParamField>

<ParamField body="scope" type="string">
  The access scope for the key. Either `"read-write"` or `"read-only"`. Defaults to `"read-write"`.
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST https://api.getagentdrive.com/v0/keys \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "name": "CI/CD Pipeline",
      "scope": "read-write"
    }'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "id": "key_abc123",
    "key": "agd_sk_live_abcdef1234567890abcdef1234567890",
    "key_prefix": "agd_sk_live_abcd",
    "name": "CI/CD Pipeline",
    "scope": "read-write",
    "created_at": "2026-03-19T10:00:00Z",
    "last_used_at": null
  }
  ```
</ResponseExample>

<Warning>
  The full API key (`key` field) is only returned once at creation time. Store it securely -- you will not be able to retrieve it again.
</Warning>

## Response

<ResponseField name="id" type="string">
  Unique identifier for the API key.
</ResponseField>

<ResponseField name="key" type="string">
  The full API key. Only returned at creation time.
</ResponseField>

<ResponseField name="key_prefix" type="string">
  A prefix of the key for identification purposes.
</ResponseField>

<ResponseField name="name" type="string">
  The name of the API key.
</ResponseField>

<ResponseField name="scope" type="string">
  The access scope: `"read-write"` or `"read-only"`.
</ResponseField>

<ResponseField name="created_at" type="string">
  ISO 8601 timestamp of when the key was created.
</ResponseField>

<ResponseField name="last_used_at" type="string">
  ISO 8601 timestamp of when the key was last used, or `null`.
</ResponseField>
