Skip to main content
SenddDocumentation

Quickstart

Send your first SMS with a test key, then follow its status.

Before you start

Examples use $SENDD_API_URL for the API address and $SENDD_API_KEY for your key. The public API address is announced at launch.

Everything here works with a test key: test messages never reach a phone and are never charged.

1. Create a test API key

Sign in, open Developers, and create a key with mode test and the scopes messages:send and messages:read. The secret (sndd_test_...) is shown once: keep it in your secret store, never in source code.

2. Check the key

GET /v1/key answers with the key's organization, mode and scopes. Any valid key may call it.

Example · shell
curl "$SENDD_API_URL/v1/key" \
  -H "Authorization: Bearer $SENDD_API_KEY"

3. Send a message

POST /v1/messages with an X-Idempotency-Key. from must be a sender ID your organization may use (GET /v1/sender-ids).

The answer is 202 Accepted with the status accepted: Sendd recorded the message and held its price. It is not delivered yet.

Example · shell
curl -X POST "$SENDD_API_URL/v1/messages" \
  -H "Authorization: Bearer $SENDD_API_KEY" \
  -H "X-Idempotency-Key: order-1042-ready" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+255712345678",
    "from": "SENDD",
    "body": "Your order #1042 is ready for pickup.",
    "client_ref": "order-1042-ready"
  }'

4. Follow its status

GET /v1/messages/{id} returns the current status. Instead of polling, register a webhook endpoint and Sendd tells you when the status changes.

Example · shell
curl "$SENDD_API_URL/v1/messages/$MESSAGE_ID" \
  -H "Authorization: Bearer $SENDD_API_KEY"

5. Go live

Live keys (sndd_live_...) need an organization Sendd has verified, funds in the wallet and an approved sender ID. A live message's price is held from the wallet when it is accepted.

Next: Quickstart