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

> ## Agent Instructions
> For chatbots and coding agents, start at /guides/ai-agents.
> Hosted MCP: POST https://api.robase.dev/mcp (Streamable HTTP). Auth: Authorization: Bearer robe_… or robe_agent_….
> Phase 1 tools: get_pricing, send_otp, verify_otp, get_otp, send_sms, get_sms. No payment or top-up tools.
> Call get_pricing; treat listed:true as marketed markets (NG, GH, KE, ZA, GB, BJ, CI, US). Do not invent countries or delivery percentages.
> Prefer OTP-shaped tests such as "Your Robase test OTP is 123456". Do not send Hello or Good morning as tests. Match errors on error.type.

# Quickstart

> Send your first OTP or transactional SMS in a few minutes.

Create an account, grab a key, send a code. Dashboard test sends are **live traffic** — they spend credits and reach a real phone. There is no simulator key prefix.

<Steps>
  <Step title="Create an account">
    Sign up at [robase.dev/signup](https://robase.dev/signup) with Google, GitHub, or email. Verify the address if you used email, then you land on the dashboard.
  </Step>

  <Step title="Create an API key">
    Open **API keys** and create a key. The full token is shown once. It starts with `robe_` followed by 64 hex characters.

    Store it as `ROBASE_API_KEY`. After the first view you only see the prefix.
  </Step>

  <Step title="Install an SDK (optional)">
    <CodeGroup>
      ```bash Node theme={null}
      npm install @robasedev/sdk
      ```

      ```bash Go theme={null}
      go get github.com/mantissatech/robase-sdk-go
      ```

      ```bash PHP theme={null}
      composer require robase/sdk
      ```
    </CodeGroup>

    Prefer curl? Skip this step.
  </Step>

  <Step title="Send an OTP">
    <CodeGroup>
      ```bash curl theme={null}
      curl -X POST https://api.robase.dev/v1/otp/send \
        -H "Authorization: Bearer robe_your_api_key" \
        -H "Content-Type: application/json" \
        -d '{"phone_number":"+2348012345678","code_length":6,"ttl_seconds":600}'
      ```

      ```ts Node theme={null}
      import { Robase } from "@robasedev/sdk";

      const robase = new Robase({ apiKey: process.env.ROBASE_API_KEY });
      const sent = await robase.otp.send({ phone_number: "+2348012345678" });
      ```

      ```go Go theme={null}
      import robase "github.com/mantissatech/robase-sdk-go"

      client, err := robase.New(os.Getenv("ROBASE_API_KEY"))
      sent, err := client.OTP.Send(ctx, robase.SendOTPParams{
          PhoneNumber: "+2348012345678",
      })
      ```

      ```php PHP theme={null}
      $robase = new Robase\Client(getenv('ROBASE_API_KEY'));
      $sent = $robase->otp->send('+2348012345678');
      ```
    </CodeGroup>

    A successful send returns `status: "pending"`. Delivery is asynchronous. Poll `GET /v1/otp/{id}` or subscribe to `otp.sent` / `otp.failed` webhooks.
  </Step>

  <Step title="Verify the code">
    ```bash theme={null}
    curl -X POST https://api.robase.dev/v1/otp/verify \
      -H "Authorization: Bearer robe_your_api_key" \
      -H "Content-Type: application/json" \
      -d '{"otp_id":"uuid-from-send","code":"123456"}'
    ```

    A wrong code with attempts remaining is **200** with `valid: false`. Terminal states (expired, already verified, attempts exhausted) return **409**.
  </Step>
</Steps>

## Send a transactional SMS

Same key, same routing:

```bash theme={null}
curl -X POST https://api.robase.dev/v1/sms/send \
  -H "Authorization: Bearer robe_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"phone_number":"+2348012345678","message":"Your order #12345 has shipped."}'
```

## Top up

New accounts get trial credits. After that, **Billing** in the dashboard (Paystack or Flutterwave). Nigeria is 1 credit → ₦6/message.

## What to read next

<CardGroup cols={2}>
  <Card title="Authentication" href="/concepts/authentication">
    Bearer keys, `robe_` prefix, no test-mode key scheme.
  </Card>

  <Card title="Webhooks" href="/concepts/webhooks">
    Delivery events signed with `X-Robase-Signature`.
  </Card>

  <Card title="OTP guide" href="/guides/otp-verification">
    Length, TTL, language, and verify semantics.
  </Card>

  <Card title="Transactional SMS" href="/guides/transactional-sms">
    Segments, anti-spam, and status polling.
  </Card>
</CardGroup>


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