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

# OTP.ID: Multi-Channel OTP Delivery & Verification

> OTP.ID is a developer API for sending and verifying one-time passwords over WhatsApp, SMS, Email, Missed Call, and WhatsApp Inbound.

OTP.ID gives you a single API to send and verify one-time passwords across five delivery channels — WhatsApp, SMS, Email, Missed Call, and user-initiated WhatsApp Inbound. Integrate in minutes, handle verification server-side, and receive real-time webhooks when users confirm their identity.

<CardGroup cols={2}>
  <Card title="Quickstart" icon="bolt" href="/quickstart">
    Send your first OTP in under 5 minutes
  </Card>

  <Card title="Authentication" icon="key" href="/authentication">
    Get your API key and authenticate requests
  </Card>

  <Card title="API Reference" icon="code" href="/api-reference/request-otp">
    Explore all endpoints with request and response examples
  </Card>

  <Card title="Webhooks" icon="webhook" href="/guides/webhooks">
    Get notified instantly when an OTP is verified
  </Card>
</CardGroup>

## How it works

OTP.ID follows a simple request → verify flow. You call the API to create an OTP transaction, the platform delivers the code through your chosen channel, and then your app calls the verify endpoint when the user submits their code.

<Steps>
  <Step title="Get your API key">
    Sign in to the [OTP.ID dashboard](https://otp.id) and copy your API key from the settings page.
  </Step>

  <Step title="Send an OTP">
    Call `POST /v3/request` with a channel and destination. OTP.ID generates and delivers the code automatically.
  </Step>

  <Step title="Verify the code">
    When the user enters the code, call `POST /v3/verify` with the `otp_id` and the code they provided.
  </Step>

  <Step title="React to the result">
    Check `data.verified` in the response — `true` means success. Set up a webhook to receive an async notification as well.
  </Step>
</Steps>

## Explore by topic

<CardGroup cols={3}>
  <Card title="Channels" icon="satellite-dish" href="/concepts/channels">
    WhatsApp, SMS, Email, Missed Call, WhatsApp Inbound
  </Card>

  <Card title="OTP Lifecycle" icon="arrows-spin" href="/concepts/otp-lifecycle">
    Status flow from creation to verification
  </Card>

  <Card title="Billing" icon="credit-card" href="/concepts/billing">
    Prepaid balance and per-transaction pricing
  </Card>

  <Card title="Idempotency" icon="rotate" href="/guides/idempotency">
    Safe retries with external\_id
  </Card>

  <Card title="Error Codes" icon="triangle-exclamation" href="/reference/error-codes">
    Full catalogue of API error codes
  </Card>

  <Card title="Rate Limits" icon="gauge" href="/reference/rate-limits">
    Per-key and per-destination limits
  </Card>
</CardGroup>
