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

# Quickstart

> Generate API keys and send your first SMS with the UgaText API.

**1. Create an account**

Sign up at [ugatext.com](https://ugatext.com) and open your developer dashboard.

**2. Generate API keys**

In the dashboard, open **API & Webhooks** and generate a new API key. You receive a `Client-ID` (for example `uga_9f8e7d6c5b4a`) and a `Client-Secret` (for example `sk_live_98a7b6c5d4e3`).

You can also manage keys through the API with `POST /api/v1/auth/api-keys` and `GET /api/v1/auth/api-keys`.

> [!WARNING]
>
> Store your credentials in server environment variables. Never commit them to git or expose them in client-side code.

**3. Send a test SMS**

Send a message to the free sandbox number `+256700000000`. Sandbox messages are not billed.

```bash cURL theme={null}
curl -X POST https://ugatext.com/api/v1/sms/send \
  -H "Client-ID: YOUR_CLIENT_ID" \
  -H "Client-Secret: YOUR_CLIENT_SECRET" \
  -H "Idempotency-Key: 8f14e45f-ceea-467f-a8f1-4e45fceea67f" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+256700000000",
    "sender_id": "UGATEXT",
    "message": "Your verification code is 482913"
  }'
```

```javascript Node.js theme={null}
const response = await fetch("https://ugatext.com/api/v1/sms/send", {
  method: "POST",
  headers: {
    "Client-ID": process.env.UGATEXT_CLIENT_ID,
    "Client-Secret": process.env.UGATEXT_CLIENT_SECRET,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    to: "+256700000000",
    sender_id: "UGATEXT",
    message: "Your verification code is 482913",
  }),
});

console.log(await response.json());
```

```python Python theme={null}
import os
import requests

response = requests.post(
    "https://ugatext.com/api/v1/sms/send",
    headers={
        "Client-ID": os.environ["UGATEXT_CLIENT_ID"],
        "Client-Secret": os.environ["UGATEXT_CLIENT_SECRET"],
    },
    json={
        "to": "+256700000000",
        "sender_id": "UGATEXT",
        "message": "Your verification code is 482913",
    },
)

print(response.json())
```

A successful sandbox request returns:

```json Response theme={null}
{
  "success": true,
  "message_id": "msg_1760425200000_a1b2c3d4",
  "status": "queued",
  "recipient": "+256700000000",
  "sender_id": "UGATEXT",
  "segments": 1,
  "encoding": "GSM-7",
  "estimated_cost": 0,
  "cost_ugx": 0,
  "currency": "UGX",
  "mode": "sandbox"
}
```

**4. Track delivery**

Poll [message status](https://docs.ugatext.com/api-reference/overview.md) with the returned `message_id` to follow `queued` → `sent` → `delivered`, or set up [webhooks](https://docs.ugatext.com/webhooks.md) to receive delivery receipts automatically.

## Next steps

> **[Authentication](https://docs.ugatext.com/authentication.md)**
>
> Header formats, aliases, and security practices.

> **[Sandbox](https://docs.ugatext.com/sandbox.md)**
>
> Test your integration for free.


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