> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sahlfinancial.com/llms.txt
> Use this file to discover all available pages before exploring further.

# API reference

> Six endpoints under /v1/kyc, one bearer key, one host, a playground on every page.

Base URL: `https://app.sahlfinancial.com/api`. Every call sends `Authorization: Bearer <API key>`.

| Endpoint | Scope | Guide |
| - | - | - |
| `POST /v1/kyc/extract` | `kyc:extract` | [Read documents](/guides/ocr-documents) |
| `POST /v1/kyc/verify` | `kyc:verify` | [Verify a profile](/guides/verification) |
| `POST /v1/kyc/assess` | `kyc:verify` | [Risk assessment](/guides/risk-assessment) |
| `POST /v1/kyc/eid` | `kyc:eid` | [eID check](/guides/eid) |
| `GET /v1/kyc/eid/{key}` | `kyc:eid` | [eID check](/guides/eid) |
| `GET /v1/kyc/eid/{key}/report` | `kyc:eid` | [eID check](/guides/eid) |

The pages that follow are generated from `openapi.json`. Each has a **Try it** panel that runs the request from your browser with your own key. Paste only the key, without `Bearer`. Do not paste a key you use in production. The step-by-step is on [Test in the sandbox](/test-in-sandbox).

<Note>
  This is the **Partner API**: the routes a partner API key can call. The routes the console calls with a login session are in the separate [Console API](/console-api/overview) reference. They are not available with an API key.
</Note>

Why six: these are every route a key can call in the newest Sahl API code (checked on 2026-10-07). The console does more, with a session instead of a key: see [Console features](/console-features) and [Coverage](/coverage).

## Conventions

| Item | Rule |
| - | - |
| Format | JSON in and out. `/extract` takes `multipart/form-data`. The PDF report is `application/pdf`. |
| Dates | `YYYY-MM-DD`. Times are ISO 8601. |
| Strings | Field values read from documents are strings. |
| `environment` | `sandbox` (default) or `production`. |
| `reference` | Your id for the client, 1 to 64 characters of `A-Z a-z 0-9 _ . : -`. |
| Request id | Every response has `X-Request-ID`. Send your own to correlate. |
| Errors | Three body shapes. See [Errors](/errors). |
| Versioning | The version is in the OpenAPI file (`0.2.0`). The path has no version prefix beyond `/v1`. |

## Downloads

The OpenAPI file is at [/openapi.json](/openapi.json). A Postman collection and environment generated from it are described on [Postman](/postman).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.