API Documentation

Access your AI readiness assessments and reports programmatically using the Curble API v1.

Authentication

All API requests require a Bearer token. Create an API key from your dashboard.

curl -H "Authorization: Bearer ck_live_your_key_here" \
  https://curble.com/api/v1/assessments

Base URL

https://curble.com/api/v1

Rate Limits

Default: 100 requests per minute per API key. Rate limit headers are included in every response.

Endpoints

GET/api/v1/assessments

List all your assessments with pagination and filtering.

Parameters

statusstringFilter by status (PENDING, IN_PROGRESS, SUBMITTED, ANALYZING, COMPLETED, FAILED)
limitnumberResults per page (max 100, default 20)
offsetnumberPagination offset (default 0)

Response

{
  "data": [
    {
      "id": "clx...",
      "email": "user@company.com",
      "name": "Jane Smith",
      "company": "Acme Corp",
      "industry": "Technology",
      "companySize": "MEDIUM",
      "tier": "QUICK_SCAN",
      "status": "COMPLETED",
      "scores": { "overall": 62, "dimensions": [...] },
      "startedAt": "2026-04-01T...",
      "completedAt": "2026-04-01T..."
    }
  ],
  "pagination": { "total": 5, "limit": 20, "offset": 0, "hasMore": false }
}
GET/api/v1/reports

List all generated reports for your assessments.

Parameters

assessmentIdstringFilter by assessment ID
limitnumberResults per page (max 100, default 20)
offsetnumberPagination offset (default 0)

Response

{
  "data": [
    {
      "id": "clx...",
      "assessmentId": "clx...",
      "title": "AI Readiness Report",
      "content": { ... },
      "createdAt": "2026-04-01T..."
    }
  ],
  "pagination": { "total": 1, "limit": 20, "offset": 0, "hasMore": false }
}
GET/api/v1/keys

List your active API keys (requires session auth).

Response

{
  "data": [
    {
      "id": "clx...",
      "name": "Production",
      "keyPrefix": "ck_live_abcd1234",
      "scopes": ["read", "write"],
      "lastUsedAt": "2026-04-01T...",
      "createdAt": "2026-04-01T..."
    }
  ]
}
POST/api/v1/keys

Create a new API key (requires session auth).

Parameters

namestringKey name (required)
scopesstring[]Permissions: ["read"], ["read", "write"]
expiresInDaysnumberAuto-expire after N days (1-365)

Response

{
  "data": {
    "id": "clx...",
    "name": "My Key",
    "key": "ck_live_abc123...",
    "keyPrefix": "ck_live_abc12345",
    "scopes": ["read", "write"]
  },
  "warning": "Save this API key now. It cannot be retrieved again."
}

Error Codes

CodeMeaning
400Bad request — invalid parameters
401Unauthorized — missing or invalid API key
404Resource not found
429Rate limit exceeded
500Internal server error

Ready to integrate?

Create an API key from your dashboard and start building.