---
title: "Discover source capabilities, qualification and availability"
method: GET
path: "/sources"
tags: ["Source discovery"]
---

# Discover source capabilities, qualification and availability

`GET /sources`

## Request

- Base URL: `https://www.sanctionskit.com/api/v1`
- URL: `https://www.sanctionskit.com/api/v1/sources`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/sanctionskit/apis/sanctionskit-api/docs/sources/get.ts> (a function with typed inputs; its response is checked against the schema)

Required API key scope: sources:read.

This GET operation has no path parameters, query parameters or request body. Send your bearer API key with sources:read. The returned source IDs are used in screening and monitor request bodies; they are not parameters to this discovery endpoint.

## Response `200`

Successful response. JSON object with the required data key. All properties marked required are present, including keys whose value may be null. Unmarked properties can be omitted; clients should tolerate additional response properties.

- object
  - `data` object[], required
    - `id` string, required
    - `name` string, required
    - `authority` string, required
    - `availability` 'available' | 'disabled', required
    - `capabilities` string[], required
    - `category` 'financial_sanctions' | 'export_control' | 'debarment' | 'regulatory_enforcement' | 'public_office' | 'reference' | 'other' | 'mixed', required
    - `rightsStatus` 'approved' | 'review_required' | 'restricted', required
    - `jurisdiction` string
    - `homepage` string
    - `downloadUrl` string
    - `format` string
    - `attribution` string
    - `termsUrl` string
    - `disabledReason` string
    - `refreshHours` integer
    - `parserVersion` string
    - `fresh` boolean
    - `qualification` object
      - `implemented` boolean, required
      - `fixtureTested` boolean, required
      - `liveFetchTested` boolean, required
      - `rightsApproved` boolean, required
      - `activated` boolean, required
      - `liveFetchedAt` string, date-time
      - `blockers` string[], required
    - `currentVersion` object, nullable
      - `source_id` string, required
      - `id` string, required
      - `retrieved_at` string, date-time, required
      - `last_checked_at` string, date-time, nullable
      - `published_at` string, date-time, nullable
      - `status` string, required
      - `rights_approved` boolean, required
    - `lastImport` object, nullable
      - `source_id` string, required
      - `id` string, required
      - `retrieved_at` string, date-time, required
      - `last_checked_at` string, date-time, nullable
      - `published_at` string, date-time, nullable
      - `status` string, required
      - `rights_approved` boolean, required

## Other responses

- `400`: **invalid_request** — Correct the request fields, resource identifiers, JSON body or query parameters before retrying.
- `401`: **authentication_required** — Send Authorization: Bearer with a valid API key. An omitted header can produce authentication_required; invalid supplied credentials produce invalid_api_key. **invalid_api_key** — Use an active key for the intended environment.
- `403`: **permission_denied** — Ask an organization owner to grant the required role or API-key scope. **insufficient_scope** — Use a key with the scope stated in this operation.
- `405`: **method_not_allowed** — Use a method in the Allow response header. OPTIONS lists supported methods; HEAD follows GET authorization and returns no body.
- `413`: **response_too_large** — Reduce the requested page size or use the documented segmented case archive. No evidence is silently truncated.
- `429`: **rate_limited** — Wait for the request window to reset and retry with backoff.
- `500`: **internal_error** — Retry with backoff. For writes reuse the same idempotency key and identical input; include requestId when contacting support.
- `503`: **temporarily_unavailable** — Honor Retry-After when present and retry with bounded backoff. Follow this endpoint’s retry contract; preserve the same key and input for idempotent writes. Contact support with requestId if the failure persists.

---

[API](https://skmtc.dev/sanctionskit/apis/sanctionskit-api.md) - [All operations](https://skmtc.dev/sanctionskit/apis/sanctionskit-api/llms.txt) - [OpenAPI document](https://skmtc.dev/sanctionskit/apis/sanctionskit-api/revisions/ee35d211051a?raw)
