Skip to content

Quick Start ​

Get up and running with the SendAPI platform in under 5 minutes.

By the end of this guide, you will have created a SendAPI account, verified your email, obtained an API key, and successfully dispatched your first message.

1. Create your account ​

First, sign up for a free SendAPI account. New accounts get a 3-day free trial — no credit card required. Trial quotas: 100 emails, $0.15 of SMS credit (~10 messages), and one WhatsApp session.

2. Verify your email ​

Check your inbox for a verification email and click the link. All send endpoints are gated behind email verification — without it, you'll get 403 email_not_verified on every request. The 3-day trial countdown starts the moment you verify.

If you didn't receive the email, request a new one from the dashboard under Account → Verify Email.

3. Obtain your API Key ​

Once logged in to the dashboard:

  1. Navigate to API Keys in the sidebar.
  2. Click Create Key.
  3. Name your key (e.g., Production Key).
  4. Copy the generated sk_live_... key.

Secure your key

For security reasons, you will only be able to see the secret key once. If you lose it, you will need to revoke it and generate a new one. Store it securely in your .env file.

4. Make your first request ​

You can interact with the SendAPI using our official SDKs or via any standard HTTP client. For this quick start, we will use cURL to send a test SMS message.

Open your terminal and run the following command, replacing YOUR_API_KEY with the key you just generated, and YOUR_PHONE_NUMBER with your mobile device number (in E.164 format, e.g., +1234567890).

bash
curl -X POST https://sendapi.co/v1/sms/send \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: my-unique-request-uuid-1234" \
  -d '{
    "to": "YOUR_PHONE_NUMBER",
    "content": "Hello from my first SendAPI request! 🚀"
  }'

Use an Idempotency Key in Production

The Idempotency-Key header ensures that if a network error occurs and you retry your HTTP request, we won't charge you twice or send the message twice. Read more about Idempotency →

Inspecting the response ​

A successful request returns HTTP 200 OK with the message details:

json
{
  "success": true,
  "data": {
    "id": 32,
    "to": "+1234567890",
    "segments": 1,
    "cost": "$0.0250",
    "region": "United States",
    "status": "queued",
    "provider": "telnyx",
    "external_id": "40319d98-8ece-401e-9add-94b696939751",
    "sms_credit_balance": "$0.1250",
    "created_at": "2026-03-09T14:30:00.000000Z"
  },
  "meta": {
    "request_id": "44b5b9cb-6139-47f8-bbc0-e496b0c72ac6",
    "timestamp": "2026-03-09T14:30:00.052104Z"
  }
}

Congratulations! You have successfully integrated SendAPI.

Next Steps ​

Now that you understand the basics of authentication and request structure, you can explore the specific channel APIs:

Released under the MIT License.