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

# Introduction

> How VerisecID hosted KYC works and how to integrate it

## What is a hosted KYC session?

A hosted session is a short‑lived record that gives you a `verificationUrl` to send users through a secure identity verification flow. You create the session with your public API key and optionally include a `redirectUrl` and `metadata` to track your users.

<Steps>
  <Step title="Create a session">
    POST `/v1/kyc/sessions` with your Bearer public API key. Response includes `sessionId` and `verificationUrl`.
  </Step>

  <Step title="Send user to verificationUrl">
    The hosted UI collects document and facial biometrics securely.
  </Step>

  <Step title="Retrieve the session">
    GET `/v1/kyc/sessions/{sessionId}` to check ownership and status.
  </Step>

  <Step title="Handle results">
    The hosted UI triggers a server action to produce a verdict. Store outcomes in your backend if needed.
  </Step>
</Steps>

## Authentication

Use your public API key in the Authorization header. Public keys map to workspaces in Firestore under `workspaces.apiPublicKey`.

```http theme={null}
Authorization: Bearer pb-YourPublicKey
```

## Hosts and security

Requests are served only on allowed hosts: `api.verisecid.com`, `localhost`, `127.0.0.1`. Override with `API_ALLOWED_HOSTS` (comma‑separated). Disallowed hosts return `404` with `{ "error": "invalid_host" }`.

## Endpoints

* Create session: `POST /v1/kyc/sessions`
* Get session: `GET /v1/kyc/sessions/{sessionId}`

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/quickstart">
    Understand the flow and see concrete examples.
  </Card>

  <Card title="Development" icon="wrench" href="/development">
    Hosts, auth, environment variables, and lifecycle.
  </Card>

  <Card title="API reference" icon="terminal" href="/api-reference/introduction">
    Endpoint docs and examples.
  </Card>
</CardGroup>
