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.
Connecting tools you already use?
Explore direct connections, the WordPress plugin and API workflows for Zapier, Make and n8n.
Read the full API reference
Interactive docs, every endpoint, and a downloadable OpenAPI document.