Skip to main content
Returns a paginated list of applications belonging to the organization associated with your API key, including accepted document metadata and presigned download URLs.
GET /api/external/applications

Authentication

Requires an API key with applications:read scope.
Authorization: Bearer klara_{client_id}.{secret}

Query parameters

status
string
Filter by application status. One of: created, sent, in_progress, submitted, review, approved, rejected.
limit
integer
default:"50"
Number of results per page. Min 1, max 100.
cursor
string
Pagination cursor returned as next_cursor from a previous response.

Response

Returns 200 OK with a paginated list.
applications
array
List of application summaries.
has_more
boolean
Whether more results are available.
next_cursor
string | null
Pass as the cursor query parameter to fetch the next page. null when there are no more results.

Examples

List all submitted applications

curl "https://app.klara-ai.com/api/external/applications?status=submitted&limit=10" \
  -H "Authorization: Bearer klara_abc123def456.your-secret-here"
Response:
{
  "applications": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "config_id": "kyc-standard",
      "status": "submitted",
      "company_name": "Acme Financial Ltd",
      "primary_contact": {
        "email": "sophie@acmefinancial.co.uk",
        "name": "Sophie Mitchell"
      },
      "documents": [
        {
          "id": "770e8400-e29b-41d4-a716-446655440002",
          "field_id": "bank_statement",
          "file_name": "acme-bank-statement-dec-2025.pdf",
          "status": "accepted",
          "download_url": "https://s3.amazonaws.com/..."
        },
        {
          "id": "880e8400-e29b-41d4-a716-446655440003",
          "field_id": "certificate_of_incorporation",
          "file_name": "acme-cert-incorporation.pdf",
          "status": "accepted",
          "download_url": "https://s3.amazonaws.com/..."
        }
      ],
      "created_at": "2026-01-15T10:30:00.000Z",
      "updated_at": "2026-01-16T14:20:00.000Z",
      "submitted_at": "2026-01-16T14:20:00.000Z"
    },
    {
      "id": "661f9511-f3ac-52e5-b827-557766551111",
      "config_id": "kyc-standard",
      "status": "in_progress",
      "company_name": "Bright Ventures Ltd",
      "primary_contact": {
        "email": "james@brightventures.io",
        "name": "James Okafor"
      },
      "documents": [],
      "created_at": "2026-01-14T08:15:00.000Z",
      "updated_at": "2026-01-14T09:45:00.000Z",
      "submitted_at": null
    }
  ],
  "has_more": true,
  "next_cursor": "2026-01-14T08:15:00.000Z|661f9511-f3ac-52e5-b827-557766551111"
}

Paginating through results

let cursor = null;

do {
  const url = new URL('https://app.klara-ai.com/api/external/applications');
  url.searchParams.set('limit', '50');
  if (cursor) url.searchParams.set('cursor', cursor);

  const res = await fetch(url, {
    headers: { 'Authorization': 'Bearer klara_abc123def456.your-secret-here' }
  });
  const page = await res.json();

  for (const app of page.applications) {
    // Process each application
  }

  cursor = page.next_cursor;
} while (cursor);

Errors

StatusErrorCause
401Invalid API keyAPI key is invalid, expired, or inactive
401API key missing required scopes: applications:readKey lacks the required scope
500Internal server errorAn unexpected error occurred