Developers
The whole platform, programmatically.
A clean REST API to send across every channel, sync contacts, and stream delivery events, with scoped tokens and signed webhooks.
API at a glance
- Standard
- A JSON:API-compliant REST API, described by OpenAPI 3.1.
- Base URL
- https://app.texttango.com/api/v2
- Auth
- Bearer token. Authorization: Bearer {YOUR_AUTH_KEY}
- Responses
- JSON:API envelope: { "data": { "type", "id", "attributes", "relationships" } }
- Client libraries
- cURL / Shell, Node.js, PHP, Python, Ruby, & more
The live reference is interactive, with a downloadable OpenAPI document.
Send a campaign
curl https://app.texttango.com/api/v2/campaigns \
-H "Authorization: Bearer {YOUR_AUTH_KEY}" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"from": "TTango",
"campaign_name": "Order updates",
"body": "Hi {first_name}, your order is ready for pickup!",
"to": ["+233501234567", "+233541234567"]
}'
const res = await fetch("https://app.texttango.com/api/v2/campaigns", {
method: "POST",
headers: {
Authorization: "Bearer {YOUR_AUTH_KEY}",
"Content-Type": "application/json",
Accept: "application/json",
},
body: JSON.stringify({
from: "TTango",
campaign_name: "Order updates",
body: "Hi {first_name}, your order is ready for pickup!",
to: ["+233501234567", "+233541234567"],
}),
});
const { data } = await res.json();
console.log(data.id);
$response = Http::withToken('{YOUR_AUTH_KEY}')
->acceptJson()
->post('https://app.texttango.com/api/v2/campaigns', [
'from' => 'TTango',
'campaign_name' => 'Order updates',
'body' => 'Hi {first_name}, your order is ready for pickup!',
'to' => ['+233501234567', '+233541234567'],
]);
$campaign = $response->json('data');
Capabilities
Everything the dashboard does, over the wire.
Scoped access tokens
Scoped tokens with per-resource abilities like sms:send, voice:read, contacts:write, plus per-token rate limits.
Webhooks
Subscribe to delivery events with signed payloads, plus a delivery audit log with retries.
Transactional send
A low-latency single-SMS path for OTPs and time-critical alerts.
Full v2 REST API
Campaigns, contacts, templates, sender IDs, wallet/transactions (read), and analytics, all cursor-paginated.
Automation enrollment
Enroll a contact into a workflow directly via the API.
Delivery audit log
Every webhook attempt and delivery event, recorded and replayable.
Read the full API reference
Interactive docs, every endpoint, and a downloadable OpenAPI document.