Teloring API
The Teloring REST API gives your own systems the same reach an agent has in the console: conversations across every channel, the CRM behind them, the automations, the knowledge bases, the numbers, and — when you need it — a way to drop one of your users straight into a specific chat.
Base URL
https://api.teloring.com/v1
Every path in this reference is relative to that. There is no account id in any path: your access token already identifies the account, which is what makes it impossible for a credential to reach somebody else's data.
Getting started in four steps
- In the console, go to Settings → API and create a credential. Choose its scopes — each one unlocks a whole feature area — and copy the client secret. It is shown once and never again.
- Exchange the client id and secret for an access token:
POST /v1/oauth/token. Tokens last one hour. - Send the token as
Authorization: Bearer <access_token>on every request. - Call
GET /v1/oauth/introspectif anything is unexpected — it tells you which account you are on and exactly which scopes you hold.
What you should know before you build
- Server-side only. There are no CORS headers on this API by design. A token in browser JavaScript is a token in your page source.
- Scopes are checked live. Removing a scope in the console takes effect on the very next request, not when the token expires.
- Some calls cost money. Creating an agent takes a seat and may charge the card on file. WhatsApp templates, outbound SMS and signing links cost credits. Each of those endpoints says so.
- Rate limit: 600 requests per minute per credential; 20 per minute per IP on the token endpoint. Cache your token — you need one per hour, not one per request.
- IP restrictions apply here too. If the account has an IP allow-list
set under Settings → Security & login, it governs API calls exactly as it
governs sign-in. Calling from an address that is not on it answers
403withcode: ip_not_allowed— add your server's outbound IP there.
Errors
Every failure answers in the same shape, with a machine-readable code and
a request_id to quote if you need help:
{
"error": {
"type": "invalid_request_error",
"code": "missing_parameter",
"message": "'inbox_id' is required.",
"param": "inbox_id",
"request_id": "req_5f2a91c0e8b74d3a9c1e"
}
}
Authentication
- HTTP: Bearer Auth
Authorization: Bearer <access_token>, where the token came from
POST /v1/oauth/token. Tokens last one hour. A 401 with
code: invalid_token means fetch a new one.
Security Scheme Type: | http |
|---|---|
HTTP Authorization Scheme: | bearer |
Bearer format: | JWT |
License
Proprietary