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

# Quickstart

> Send your first message in under 5 minutes

# Quickstart

## Step 1: Create an Account

Sign up at [orbit.devotel.io/signup](https://orbit.devotel.io/signup). The
dashboard will route you to your locale-preferred URL automatically. No
credit card required — verifying your email is all it takes to unlock the
sandbox in the next step.

## Step 2: Get a Sandbox API Key

Navigate to **Settings > API Keys**, create a new key, and set its mode to
**Test**. Sandbox keys are prefixed `dv_test_sk_`, work immediately with no
KYC or approval step, and cost **\$0** — every sandbox send is simulated
in-house and never reaches a real carrier or touches Stripe. Keep the key
server-side only.

(Live keys are prefixed `dv_live_sk_` and bill real traffic — see
[Step 5: Go Live](#step-5-go-live) once you're ready for production
numbers.)

## Step 3: Send Your First Message (Sandbox)

The same `/messages/<channel>` endpoint shape works across SMS,
WhatsApp, Email, RCS, Viber, and the other messaging channels — pick the
channel you're integrating first. Voice is separate: place calls with
`POST /voice/calls` (see the Voice example below). Use your `dv_test_sk_`
key from Step 2 as `$ORBIT_API_KEY` below — the send is free and instant,
with no live traffic risk.

### SMS

```bash theme={null}
curl -X POST https://api.orbit.devotel.io/api/v1/messages/sms \
  -H "X-API-Key: $ORBIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+14155552671",
    "from": "+14155551234",
    "body": "Hello from Orbit!"
  }'
```

### WhatsApp

```bash theme={null}
curl -X POST https://api.orbit.devotel.io/api/v1/messages/whatsapp \
  -H "X-API-Key: $ORBIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+14155552671",
    "type": "template",
    "template": {
      "name": "hello_world",
      "language": { "code": "en" }
    }
  }'
```

### Email

```bash theme={null}
curl -X POST https://api.orbit.devotel.io/api/v1/messages/email \
  -H "X-API-Key: $ORBIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "user@example.com",
    "from": "hello@yourdomain.com",
    "subject": "Welcome",
    "html": "<h1>Welcome to Acme</h1>"
  }'
```

### Voice

```bash theme={null}
curl -X POST https://api.orbit.devotel.io/api/v1/voice/calls \
  -H "X-API-Key: $ORBIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+14155552671",
    "from": "+14155551234",
    "agent_id": "agt_support_bot"
  }'
```

> Starting from zero with voice? Walk through the dedicated
> [Voice Quickstart](/voice/quickstart) — it covers provisioning a
> number, configuring an agent with a system prompt, browser-mic
> testing, and SSE event subscription, all in under 5 minutes.

> Replace `$ORBIT_API_KEY` with the key from Step 2 (or export it in
> your shell). Don't paste your key directly into shared snippets.

## Step 4: Check the Response

```json theme={null}
{
  "data": {
    "id": "msg_abc123",
    "status": "queued",
    "channel": "sms"
  },
  "meta": {
    "request_id": "req_xyz789",
    "timestamp": "2026-03-08T00:00:00Z"
  }
}
```

Congratulations — you've sent your first message with Orbit, for free, in
under 5 minutes. A sandbox send keeps its honest `test_sent` status rather
than being promoted to `delivered`/`failed` — to trigger a specific
delivery-receipt outcome (delivered, undelivered, expired, and 7 others)
on demand, send to a recipient number with the matching trailing digit;
see [Sandbox Magic Numbers](/sandbox/magic-numbers). Hook a delivery
webhook next: see [Webhooks](/webhooks/overview).

## Step 5: Go Live

Sandbox traffic never reaches a real carrier, so it's the fastest way to
build and test your integration — but going live requires two more
things:

1. **KYC verification.** Submit your business documents under
   **Settings > KYC**. Once an admin approves your organization, your
   **$5 trial credit** is released and your account can send real,
   billable traffic. Until then your live balance is **$0** — SMS (US or
   international), WhatsApp, and voice all draw on the same trial credit
   and all require approved KYC first.
2. **10DLC registration for US SMS.** Sending SMS to US numbers over live
   traffic also requires a 10DLC brand + campaign registration — a
   further compliance step layered on top of KYC, not a substitute for
   it. See [Sender ID Registration](/compliance/sender-id-registration).

Once KYC is approved, mint a live key (prefix `dv_live_sk_`) under
**Settings > API Keys** and swap it in for the `dv_test_sk_` key you used
above — the request shape doesn't change.
