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

# API reference & spec

> Where to find every endpoint. Browse it, try it, or generate a client.

The pages under **SDK and API** walk through the core flow (`initialize` and `confirmations`) with full context. For the **complete** list of endpoints, use the reference surfaces below.

<CardGroup cols={2}>
  <Card title="API Reference tab" icon="book" href="/api-reference">
    The full, interactive endpoint reference, right here in the docs. Every operation with request and response shapes. Start here.
  </Card>

  <Card title="Swagger UI" icon="flask" href="https://trust.verifyyou.com/docs">
    Browse every operation and **try it out** against the live API. Each endpoint deep-links, e.g. `…/docs#/Verification%20Flow/external-initialize`.
  </Card>

  <Card title="openapi.json" icon="file-code" href="https://trust.verifyyou.com/openapi.json">
    The raw spec, served by the live API. Point your codegen at this URL to generate a client.
  </Card>
</CardGroup>

## Environments

The same paths are served everywhere. Test and live are not separate hosts; the mode comes from the key you authenticate with:

| Mode           | Base URL                      | Keys                      |
| -------------- | ----------------------------- | ------------------------- |
| Production     | `https://trust.verifyyou.com` | `pk_live_…` / `sk_live_…` |
| Sandbox / test | `https://trust.verifyyou.com` | `pk_test_…` / `sk_test_…` |

Not sure a key is wired correctly? `POST /v3/keys/test` with any key returns `{ valid, key_type, is_test }` and is safe to use as a setup check or healthcheck.

## Generate a client

```bash theme={null}
npx @hey-api/openapi-ts \
  -i https://trust.verifyyou.com/openapi.json \
  -o src/verifyyou
```

<Note>
  Prefer not to generate anything? The official SDK
  ([`@verifyyou-sdk/client`](/v3/sdk/init)) already wraps the browser side of
  these endpoints. Your backend only needs two plain HTTP calls: confirm and,
  optionally, lock.
</Note>
