API Reference

Interactive OpenAPI 3.1 reference for the MemHQ API.

POST
/v1/memhq/add
AuthorizationBearer <token>

Project API key. Issued via the dashboard. Pass in the Authorization header as Bearer mem_<key>. Keys are hashed at rest; the raw value is shown exactly once at creation.

In: header

Header Parameters

X-Correlation-Id?string

Client-supplied correlation id. Echoed in the response and logged with every server-side event. Generated by the server if omitted.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/memhq/add" \  -H "Content-Type: application/json" \  -d '{    "user_id": "usr_001",    "messages": [      {        "role": "user",        "content": "I prefer dark roast coffee."      }    ]  }'
{  "user_id": "usr_001",  "internal_user_id": "u_3a7e1c",  "thread_id": "th_88aa01",  "messages_stored": 1,  "memories_queued": 1}
POST
/v1/memhq/search
AuthorizationBearer <token>

Project API key. Issued via the dashboard. Pass in the Authorization header as Bearer mem_<key>. Keys are hashed at rest; the raw value is shown exactly once at creation.

In: header

Header Parameters

X-Correlation-Id?string

Client-supplied correlation id. Echoed in the response and logged with every server-side event. Generated by the server if omitted.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/memhq/search" \  -H "Content-Type: application/json" \  -d '{    "query": "dark roast",    "user_id": "usr_001",    "limit": 5  }'
{  "results": [    {      "id": "mem_xyz789",      "content": "User prefers dark roast coffee.",      "type": "PREFERENCE",      "score": 0.81,      "confidence": 0.92    }  ],  "total": 1,  "latency_ms": 142,  "query": "dark roast"}
POST
/v1/memhq/ask
AuthorizationBearer <token>

Project API key. Issued via the dashboard. Pass in the Authorization header as Bearer mem_<key>. Keys are hashed at rest; the raw value is shown exactly once at creation.

In: header

Header Parameters

X-Correlation-Id?string

Client-supplied correlation id. Echoed in the response and logged with every server-side event. Generated by the server if omitted.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/memhq/ask" \  -H "Content-Type: application/json" \  -d '{    "question": "What kind of coffee does this user like?",    "user_id": "usr_001"  }'
{  "answer": "The user prefers dark roast coffee.",  "citations": [    {      "id": "mem_xyz789",      "content": "User prefers dark roast coffee.",      "type": "PREFERENCE"    }  ],  "question_mode": "factoid",  "refused": false,  "latency_ms": 538}
GET
/v1/dashboard/projects

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Response Body

application/json

application/json

curl -X GET "https://example.com/v1/dashboard/projects"
{  "projects": [    {      "id": "prj_abc123",      "tag": "acme-prod",      "name": "Acme Production",      "description": "Production memory store.",      "region": "us-east-1",      "plan": "pro",      "createdAt": "2026-04-12T09:00:00Z",      "stats": {        "memories": 4821,        "chunks": 1932,        "apiKeys": 3,        "users": 412      }    }  ]}
POST
/v1/dashboard/projects

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X POST "https://example.com/v1/dashboard/projects" \  -H "Content-Type: application/json" \  -d '{    "tag": "acme-prod",    "name": "Acme Production",    "description": "Production memory store."  }'
{  "id": "string",  "tag": "string",  "name": "string",  "description": "string",  "apiKey": "string",  "apiKeyHint": "string",  "createdAt": "2019-08-24T14:15:22Z"}
GET
/v1/dashboard/projects/{id}

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Path Parameters

id*string

Response Body

application/json

application/json

curl -X GET "https://example.com/v1/dashboard/projects/string"
{  "id": "string",  "tag": "string",  "name": "string",  "description": "string",  "region": "string",  "plan": "string",  "createdAt": "2019-08-24T14:15:22Z",  "stats": {    "memories": 0,    "chunks": 0,    "apiKeys": 0,    "users": 0  }}
PATCH
/v1/dashboard/projects/{id}

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Properties1 <= properties

Response Body

application/json

application/json

application/json

application/json

curl -X PATCH "https://example.com/v1/dashboard/projects/string" \  -H "Content-Type: application/json" \  -d '{    "name": "Acme Production (EU)"  }'
{  "id": "string",  "tag": "string",  "name": "string",  "description": "string",  "region": "string",  "plan": "string",  "createdAt": "2019-08-24T14:15:22Z",  "stats": {    "memories": 0,    "chunks": 0,    "apiKeys": 0,    "users": 0  }}
DELETE
/v1/dashboard/projects/{id}

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Path Parameters

id*string

Response Body

application/json

application/json

curl -X DELETE "https://example.com/v1/dashboard/projects/string"
{  "deleted": true,  "id": "string"}
GET
/v1/dashboard/projects/{id}/api-keys

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Path Parameters

id*string

Response Body

application/json

application/json

curl -X GET "https://example.com/v1/dashboard/projects/string/api-keys"
{  "apiKeys": [    {      "id": "string",      "name": "string",      "scope": "admin",      "lastUsedAt": "2019-08-24T14:15:22Z",      "expiresAt": "2019-08-24T14:15:22Z",      "createdAt": "2019-08-24T14:15:22Z"    }  ]}
POST
/v1/dashboard/projects/{id}/api-keys

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/v1/dashboard/projects/string/api-keys" \  -H "Content-Type: application/json" \  -d '{    "name": "ci-worker",    "scope": "writer"  }'
{  "id": "string",  "name": "string",  "scope": "admin",  "apiKey": "string",  "createdAt": "2019-08-24T14:15:22Z"}
DELETE
/v1/dashboard/projects/{id}/api-keys/{keyId}

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Path Parameters

id*string
keyId*string

Response Body

application/json

application/json

curl -X DELETE "https://example.com/v1/dashboard/projects/string/api-keys/string"
{  "deleted": true,  "id": "string"}
GET
/v1/dashboard/projects/{id}/usage

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Path Parameters

id*string

Response Body

application/json

application/json

curl -X GET "https://example.com/v1/dashboard/projects/string/usage"
{  "period": "string",  "project": {    "id": "string",    "memories": 0,    "ingests": 0,    "chunks": 0  },  "entitlements": {    "plan": "string",    "ingestLimit": 0,    "retrievalLimit": 0,    "currentPeriodEnd": "2019-08-24T14:15:22Z"  },  "recentJobs": [    {      "id": "string",      "status": "pending",      "sourceType": "string",      "chunksCreated": 0,      "memoriesCreated": 0,      "edgesCreated": 0,      "createdAt": "2019-08-24T14:15:22Z",      "startedAt": "2019-08-24T14:15:22Z",      "finishedAt": "2019-08-24T14:15:22Z",      "errorMessage": "string"    }  ]}
GET
/v1/dashboard/usage

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Response Body

application/json

curl -X GET "https://example.com/v1/dashboard/usage"
{  "organizationId": "string",  "period": "string",  "current": {    "organizationId": "string",    "period": "string",    "memoriesIngested": 0,    "retrievalCalls": 0,    "extractionCalls": 0  },  "history": [    {      "organizationId": "string",      "period": "string",      "memoriesIngested": 0,      "retrievalCalls": 0,      "extractionCalls": 0    }  ]}
GET
/v1/dashboard/subscription

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Response Body

application/json

curl -X GET "https://example.com/v1/dashboard/subscription"
{  "subscription": {    "id": "string",    "organizationId": "string",    "planCode": "string",    "status": "active",    "currentPeriodEnd": "2019-08-24T14:15:22Z",    "cancelAtPeriodEnd": true,    "trialEnd": "2019-08-24T14:15:22Z"  }}
POST
/v1/dashboard/billing/checkout

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/dashboard/billing/checkout" \  -H "Content-Type: application/json" \  -d '{    "planCode": "startup",    "billingCycle": "monthly",    "successUrl": "https://memhq.ai/app/billing?success=1",    "cancelUrl": "https://memhq.ai/app/billing?cancel=1"  }'
{  "url": "http://example.com",  "sessionId": "string"}
POST
/v1/dashboard/billing/portal

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/v1/dashboard/billing/portal" \  -H "Content-Type: application/json" \  -d '{    "returnUrl": "https://app.memhq.ai/billing"  }'
{  "url": "http://example.com"}
GET
/v1/dashboard/billing/subscription

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Response Body

application/json

curl -X GET "https://example.com/v1/dashboard/billing/subscription"
{  "organizationId": "string",  "plan": "string",  "status": "string",  "currentPeriodEnd": "2019-08-24T14:15:22Z",  "cancelAtPeriodEnd": true,  "trialEnd": "2019-08-24T14:15:22Z",  "usageThisPeriod": {    "period": "string",    "memoriesIngested": 0,    "extractionCalls": 0  }}
POST
/v1/dashboard/ingest

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/v1/dashboard/ingest" \  -H "Content-Type: application/json" \  -d '{    "projectId": "prj_abc123",    "content": "The user upgraded to the annual plan today."  }'
{  "project": {    "id": "string",    "tag": "string",    "name": "string"  },  "jobId": "string",  "status": "string"}
POST
/v1/dashboard/search

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/v1/dashboard/search" \  -H "Content-Type: application/json" \  -d '{    "query": "string"  }'
{  "project": {    "id": "string",    "tag": "string",    "name": "string"  },  "query": "string",  "latencyMs": 0,  "count": 0,  "results": [    {      "id": "string",      "content": "string",      "type": "FACT",      "score": 0.1,      "confidence": 0.1    }  ]}
POST
/v1/dashboard/ask

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/v1/dashboard/ask" \  -H "Content-Type: application/json" \  -d '{    "question": "string"  }'
{  "project": {    "id": "string",    "tag": "string",    "name": "string"  },  "latencyMs": 0,  "answer": "string",  "citations": [    {      "id": "string",      "content": "string",      "type": "string"    }  ]}
GET
/v1/dashboard/memories

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Query Parameters

projectId?string

Project id to scope the query to. When omitted, the most-recently-created project in the active organization is used.

q?string

Case-insensitive substring filter on memory content.

type?string

Value in

  • "FACT"
  • "EVENT"
  • "PREFERENCE"
  • "DECISION"
  • "STATE"
  • "RELATIONSHIP"
  • "BELIEF"
  • "SKILL"
  • "GOAL"
take?integer

Maximum number of rows to return (page size).

Range1 <= value <= 100
Default25
skip?integer

Number of rows to skip (offset pagination).

Range0 <= value
Default0

Response Body

application/json

curl -X GET "https://example.com/v1/dashboard/memories"
{  "project": {    "id": "string",    "tag": "string",    "name": "string"  },  "memories": [    {      "id": "string",      "type": "FACT",      "content": "string",      "confidence": 0.1,      "isActive": true,      "supersededBy": "string",      "createdAt": "2019-08-24T14:15:22Z",      "updatedAt": "2019-08-24T14:15:22Z",      "validFrom": "2019-08-24T14:15:22Z",      "validUntil": "2019-08-24T14:15:22Z",      "documentDate": "2019-08-24T14:15:22Z",      "graph": {        "id": "string",        "kind": "GROUP",        "groupName": "string",        "userId": "string"      }    }  ],  "total": 0,  "typeCounts": [    {      "type": "string",      "count": 0    }  ]}
GET
/v1/dashboard/memories/{id}

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Path Parameters

id*string

Response Body

application/json

application/json

curl -X GET "https://example.com/v1/dashboard/memories/string"
{}
GET
/v1/dashboard/users

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Query Parameters

projectId?string

Project id to scope the query to. When omitted, the most-recently-created project in the active organization is used.

q?string

Search filter against externalId, first name, last name, or email (case-insensitive substring).

take?integer

Maximum number of rows to return (page size).

Range1 <= value <= 100
Default25

Response Body

application/json

curl -X GET "https://example.com/v1/dashboard/users"
{  "project": {    "id": "string",    "tag": "string",    "name": "string"  },  "users": [    {      "id": "string",      "externalId": "string",      "firstName": "string",      "lastName": "string",      "email": "string",      "createdAt": "2019-08-24T14:15:22Z",      "updatedAt": "2019-08-24T14:15:22Z",      "threadCount": 0,      "memoryCount": 0    }  ],  "total": 0,  "active30d": 0}
GET
/v1/dashboard/users/{id}

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Path Parameters

id*string

Response Body

application/json

application/json

curl -X GET "https://example.com/v1/dashboard/users/string"
{}
GET
/v1/dashboard/threads

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Query Parameters

projectId?string

Project id to scope the query to. When omitted, the most-recently-created project in the active organization is used.

take?integer

Maximum number of rows to return (page size).

Range1 <= value <= 100
Default25

Response Body

application/json

curl -X GET "https://example.com/v1/dashboard/threads"
{  "project": {    "id": "string",    "tag": "string",    "name": "string"  },  "threads": [    {      "id": "string",      "name": "string",      "createdAt": "2019-08-24T14:15:22Z",      "updatedAt": "2019-08-24T14:15:22Z",      "user": {        "id": "string",        "externalId": "string",        "firstName": "string",        "lastName": "string"      },      "messageCount": 0,      "lastMessage": {        "role": "string",        "content": "string",        "createdAt": "2019-08-24T14:15:22Z"      }    }  ],  "total": 0,  "active24h": 0,  "ownerCount": 0}
GET
/v1/dashboard/threads/{id}

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Path Parameters

id*string

Response Body

application/json

application/json

curl -X GET "https://example.com/v1/dashboard/threads/string"
{}
GET
/v1/dashboard/entities

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Query Parameters

projectId?string

Project id to scope the query to. When omitted, the most-recently-created project in the active organization is used.

q?string
take?integer

Maximum number of rows to return (page size).

Range1 <= value <= 100
Default25

Response Body

application/json

curl -X GET "https://example.com/v1/dashboard/entities"
{  "project": {    "id": "string",    "tag": "string",    "name": "string"  },  "entities": [    {      "id": "string",      "name": "string",      "type": "string",      "createdAt": "2019-08-24T14:15:22Z",      "relationCount": 0    }  ],  "totals": {    "entities": 0,    "relations": 0  }}
GET
/v1/dashboard/entities/{id}

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Path Parameters

id*string

Response Body

application/json

application/json

curl -X GET "https://example.com/v1/dashboard/entities/string"
{}
GET
/v1/dashboard/groups

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Query Parameters

projectId?string

Project id to scope the query to. When omitted, the most-recently-created project in the active organization is used.

Response Body

application/json

curl -X GET "https://example.com/v1/dashboard/groups"
{  "project": {    "id": "string",    "tag": "string",    "name": "string"  },  "groups": [    {      "id": "string",      "name": "string",      "description": "string",      "createdAt": "2019-08-24T14:15:22Z",      "memberCount": 0,      "memoryCount": 0    }  ],  "total": 0,  "totalAcls": 0}
GET
/v1/dashboard/groups/{id}

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Path Parameters

id*string

Response Body

application/json

application/json

curl -X GET "https://example.com/v1/dashboard/groups/string"
{}
GET
/v1/dashboard/jobs

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Query Parameters

projectId?string

Project id to scope the query to. When omitted, the most-recently-created project in the active organization is used.

status?string

Value in

  • "PENDING"
  • "RUNNING"
  • "DONE"
  • "FAILED"
take?integer

Maximum number of rows to return (page size).

Range1 <= value <= 100
Default25

Response Body

application/json

curl -X GET "https://example.com/v1/dashboard/jobs"
{}
GET
/v1/dashboard/jobs/{id}

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Path Parameters

id*string

Response Body

application/json

application/json

curl -X GET "https://example.com/v1/dashboard/jobs/string"
{}
POST
/v1/dashboard/jobs/{id}/retry

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Path Parameters

id*string

Response Body

application/json

application/json

application/json

curl -X POST "https://example.com/v1/dashboard/jobs/string/retry"
{  "originalJobId": "string",  "newJobId": "string",  "status": "string"}
GET
/v1/dashboard/graph

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Query Parameters

projectId?string

Project id to scope the query to. When omitted, the most-recently-created project in the active organization is used.

limit?integer

Maximum number of results to return.

Range1 <= value <= 200
Default50

Response Body

application/json

curl -X GET "https://example.com/v1/dashboard/graph"
{}
GET
/v1/dashboard/conflicts

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Query Parameters

projectId?string

Project id to scope the query to. When omitted, the most-recently-created project in the active organization is used.

open?string

When true, only unresolved conflicts. When false, only resolved.

Value in

  • "true"
  • "false"

Response Body

application/json

curl -X GET "https://example.com/v1/dashboard/conflicts"
{}
GET
/v1/dashboard/conflicts/{id}

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Path Parameters

id*string

Response Body

application/json

application/json

curl -X GET "https://example.com/v1/dashboard/conflicts/string"
{}
POST
/v1/dashboard/conflicts/{id}/resolve

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X POST "https://example.com/v1/dashboard/conflicts/string/resolve" \  -H "Content-Type: application/json" \  -d '{    "action": "confirm"  }'
{}
GET
/v1/dashboard/audit

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Query Parameters

projectId?string

Project id to scope the query to. When omitted, the most-recently-created project in the active organization is used.

Response Body

application/json

curl -X GET "https://example.com/v1/dashboard/audit"
{}
GET
/v1/dashboard/audit/{id}

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Path Parameters

id*string

Response Body

application/json

application/json

curl -X GET "https://example.com/v1/dashboard/audit/string"
{}
POST
/v1/dashboard/audit/verify

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Query Parameters

projectId?string

Project id to scope the query to. When omitted, the most-recently-created project in the active organization is used.

Response Body

application/json

curl -X POST "https://example.com/v1/dashboard/audit/verify"
{}
GET
/v1/dashboard/timeline

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Query Parameters

projectId?string

Project id to scope the query to. When omitted, the most-recently-created project in the active organization is used.

take?integer

Maximum number of rows to return (page size).

Range1 <= value <= 100
Default25

Response Body

application/json

curl -X GET "https://example.com/v1/dashboard/timeline"
{}
GET
/v1/dashboard/observability

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Response Body

application/json

curl -X GET "https://example.com/v1/dashboard/observability"
{}
GET
/v1/dashboard/analytics

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Response Body

application/json

curl -X GET "https://example.com/v1/dashboard/analytics"
{}
GET
/v1/dashboard/ontology

Authorization

ClerkJWT
AuthorizationBearer <token>

Clerk-issued JWT containing the calling user's account id and the active organization id. Used for every /v1/dashboard/* endpoint.

In: header

Query Parameters

projectId?string

Project id to scope the query to. When omitted, the most-recently-created project in the active organization is used.

Response Body

application/json

curl -X GET "https://example.com/v1/dashboard/ontology"
{}
GET
/v1/billing/plans

Response Body

application/json

curl -X GET "https://example.com/v1/billing/plans"
{  "plans": [    {      "code": "string",      "displayName": "string",      "priceMonthly": 0,      "limits": {        "ingestPerMonth": 0,        "retrievalPerMonth": 0      }    }  ]}
POST
/v1/connectors/webhook/ingest
AuthorizationBearer <token>

Project API key. Issued via the dashboard. Pass in the Authorization header as Bearer mem_<key>. Keys are hashed at rest; the raw value is shown exactly once at creation.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X POST "https://example.com/v1/connectors/webhook/ingest" \  -H "Content-Type: application/json" \  -d '{    "content": "string",    "signature": "string"  }'
{  "status": "string",  "jobId": "string"}
POST
/v1/webhooks/clerk

Authorization

SvixSignature
svix-signature<token>

Clerk webhook signature. The svix-id, svix-timestamp, and svix-signature headers together authenticate the request. Timestamps older than five minutes are rejected to defeat replay.

In: header

Header Parameters

svix-id*string
svix-timestamp*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Raw Clerk event payload.

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/webhooks/clerk" \  -H "svix-id: string" \  -H "svix-timestamp: string" \  -H "Content-Type: application/json" \  -d '{}'
{  "received": true,  "type": "string",  "idempotent": true}
POST
/v1/webhooks/stripe

Authorization

StripeSignature
Stripe-Signature<token>

Stripe-issued HMAC signature over the raw request body, of the form t=<unix>,v1=<hex>. Verified against STRIPE_WEBHOOK_SECRET.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Raw Stripe event payload.

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/webhooks/stripe" \  -H "Content-Type: application/json" \  -d '{}'
{  "received": true,  "type": "string",  "idempotent": true}
GET
/v1/health

Response Body

application/json

curl -X GET "https://example.com/v1/health"
{  "status": "ok",  "version": "1.0.0",  "timestamp": "2026-05-29T12:00:00Z",  "plugins": {    "connectors": [      "webhook"    ],    "filters": [      "pii-redactor"    ],    "auth": "clerk"  }}