> ## 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.

# Quickstart

> Send your first SMS in 60 seconds.

This guide walks you end-to-end: create an account, grab a key, send a message, see it arrive.

<Steps>
  <Step title="Create an account">
    Sign up at [app.robase.dev](https://app.robase.dev) with Google or email. Your first team + project are created automatically and you land on the dashboard.
  </Step>

  <Step title="Grab a test API key">
    In the dashboard, open **API keys** and click **Create key**. Tick the **test mode** checkbox — test keys (`rb_test_*`) route to a simulator that doesn't cost anything and returns realistic delivery reports.

    <Warning>
      Copy the key now. We show the full token exactly once; after that you only see the prefix.
    </Warning>
  </Step>

  <Step title="Install the SDK">
    <CodeGroup>
      ```bash npm theme={null}
      npm install @robase/node
      ```

      ```bash pip theme={null}
      pip install robase
      ```

      ```bash go theme={null}
      go get github.com/robase/robase-go
      ```
    </CodeGroup>

    Prefer cURL? Skip this step — every example below has a cURL variant.
  </Step>

  <Step title="Send your first SMS">
    Use a magic test number so you get a realistic delivery receipt back:

    <Snippet file="send-first-sms.mdx" />

    You'll get back an `id`, `status: "queued"`, and the `cost` (0 for test keys). Within \~100 ms the message moves to `delivered` and fires the `sms.delivered` webhook if you've registered one.
  </Step>

  <Step title="Check delivery in the dashboard">
    Open the **SMS** tab in the project. The message appears in the live log with a green **delivered** pill. Click it for the full timeline: `queued → sent → delivered`.
  </Step>

  <Step title="Graduate to live mode">
    When you're ready to send to real numbers:

    1. Create a **live** key (leave the test checkbox unticked).
    2. Register a **sender ID** (e.g. `SHUTTLERS`) from the SMS page. NCC requires a registered entity + use case for Nigeria.
    3. Top up your wallet via **Billing → Add credit** (Paystack / Flutterwave).
    4. Switch your code to use the `rb_live_*` key.

    That's it. Everything else — idempotency, retries, webhooks — keeps working the same way.
  </Step>
</Steps>

## What to read next

<CardGroup cols={2}>
  <Card title="SMS sending" icon="message" href="/sms/sending">
    Full send API reference with templates, batching, scheduling.
  </Card>

  <Card title="Webhooks" icon="webhook" href="/concepts/webhooks">
    Get notified the instant a message delivers or fails.
  </Card>

  <Card title="Error handling" icon="triangle-exclamation" href="/concepts/errors">
    Every error code, what it means, and how to fix it.
  </Card>

  <Card title="Test mode" icon="flask" href="/sms/test-mode">
    Magic numbers for every delivery scenario — delivered, failed, slow, DND.
  </Card>
</CardGroup>
