Getting started
Everything lives under one base URL, takes one credential, and answers in one envelope.
| Base URL | https://api.account.telebroad.com/api/public/v1 |
| Credential | Authorization: Bearer … — an API key or an OAuth token |
| Success | {"data": …} |
| Error | {"error": {"type": …, "message": …}} — branch on type |
A browser session cannot reach this API. It accepts machine credentials only, which is why there is no CSRF story to worry about and nothing you can build against "being logged in".
1. Get a key
In the admin center, go to Integrations → API Keys and create one. Select only the scopes you need, pick an expiry, and copy the key — it is shown exactly once.
export TB_KEY=tbk_live_xxxxxxxxxxxxxxxxxxxxxxxx
2. Make a call
Listing your texting numbers is the safest first request: it needs one scope, returns something recognizable, and cannot spend money.
curl https://api.account.telebroad.com/api/public/v1/sms/lines \
-H "Authorization: Bearer $TB_KEY"
{
"data": [
{
"number": "12125550188",
"name": "Acme Support",
"userIds": [481920, 481925],
"bulkEnabled": false
}
]
}
If you get a 401, the key is wrong or expired. If you get a 403, the key is
real but wasn't given sms:read — see Errors, which
tells the two apart.
3. Send something
Every number from step 2 is a valid from. This spends money — one SMS at
your rate card's price.
curl -X POST https://api.account.telebroad.com/api/public/v1/sms/messages \
-H "Authorization: Bearer $TB_KEY" \
-H 'Content-Type: application/json' \
-d '{
"from": "12125550188",
"to": ["13475550123"],
"message": "Hello from the API."
}'
The response tells you what it cost, so you never have to wait for an invoice to find out:
{
"data": {
"from": "12125550188",
"billing": {"billed": true, "currency": "USD", "type": "sms", "units": 1, "totalPrice": 0.0025, "recipientCount": 1, "skippedCount": 0},
"messages": [{"id": 88214417, "to": ["13475550123"], "type": "sms", "status": "sent", "units": 1, "unitPrice": 0.0025, "price": 0.0025}],
"skipped": []
}
}
:::warning One recipient or many is not the same product
Two or more numbers in to creates a group thread — one conversation all
participants can see and reply into — billed once as MMS. It does not send
separate texts. For N independent messages, make N requests. See
SMS billing.
:::
Where to go next
| If you want to… | Go to |
|---|---|
| Try endpoints without writing code | Playground |
| Look up an endpoint's exact fields | Reference |
| Decide between a key and OAuth | Choosing a credential |
| Act on behalf of your users | OAuth 2.1 |
| Receive events instead of polling | Webhooks |
| Understand what you'll be charged | SMS billing |