Skip to content
Product Docs

Create Api Key

client.apiKeys.create(APIKeyCreateParams { expires_at, key_type, name, 2 more } body, RequestOptionsoptions?): APIKey { id, redacted_api_key, user_id, 8 more }
POST/api/v1/beta/api-keys

Create an API key.

Scope it to a project with project_id, which requires read access to that project; omit it for a key that reaches every project you can read. A project-scoped or agent key cannot create an API key. The response carries the secret in redacted_api_key, and only this once.

ParametersExpand Collapse
body: APIKeyCreateParams { expires_at, key_type, name, 2 more }
expires_at?: string | null

When the API key should expire. If not set, the key never expires.

formatdate-time
key_type?: "agent" | "user"
One of the following:
"agent"
"user"
name?: string | null
project_id?: string | null

The project ID to associate with the API key.

formatuuid
role?: "admin" | "agent_viewer" | "viewer" | "viewer_v2" | null

Role capping what this key may do. A key can only ever be narrower than the user who created it, never broader. If not set, the key authorizes as its owner.

One of the following:
"admin"
"agent_viewer"
"viewer"
"viewer_v2"
ReturnsExpand Collapse
APIKey { id, redacted_api_key, user_id, 8 more }

Schema for an API Key.

id: string

Unique identifier

formatuuid
redacted_api_key: string

The key with its middle masked, except on the create response, which returns the full secret once and never again.

user_id: string
created_at?: string | null

Creation datetime

formatdate-time
expires_at?: string | null

When the API key expires. Null if the key never expires.

formatdate-time
key_type?: "agent" | "user"
One of the following:
"agent"
"user"
metadata?: Record<string, unknown> | null
name?: string | null
project_id?: string | null
role?: "admin" | "agent_viewer" | "viewer" | "viewer_v2" | null

Role capping what this key may do. Null if the key authorizes as its owner.

One of the following:
"admin"
"agent_viewer"
"viewer"
"viewer_v2"
updated_at?: string | null

Update datetime

formatdate-time

Create Api Key

import LlamaCloudAdmin from '@llamaindex/llama-cloud-admin';

const client = new LlamaCloudAdmin({
  apiKey: process.env['LLAMA_CLOUD_API_KEY'], // This is the default and can be omitted
});

const apiKey = await client.apiKeys.create();

console.log(apiKey.id);
{
  "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
  "redacted_api_key": "redacted_api_key",
  "user_id": "user_id",
  "created_at": "2019-12-27T18:11:19.117Z",
  "expires_at": "2019-12-27T18:11:19.117Z",
  "key_type": "agent",
  "metadata": {
    "foo": "bar"
  },
  "name": "name",
  "project_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
  "role": "admin",
  "updated_at": "2019-12-27T18:11:19.117Z"
}
Returns Examples
{
  "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
  "redacted_api_key": "redacted_api_key",
  "user_id": "user_id",
  "created_at": "2019-12-27T18:11:19.117Z",
  "expires_at": "2019-12-27T18:11:19.117Z",
  "key_type": "agent",
  "metadata": {
    "foo": "bar"
  },
  "name": "name",
  "project_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
  "role": "admin",
  "updated_at": "2019-12-27T18:11:19.117Z"
}