Skip to main content
🤖 LLM Friendly: This page is available in raw Markdown format for LLM consumption:overview.md|Get full documentation:llms.txt/llms-full.txt

REST API Overview

The Firetell REST API allows you to programmatically manage your cloud communications infrastructure.

Base URL

Each workspace has its own API domain:

https://{workspace_id}.firetell.app/api/v1

Replace {workspace_id} with your workspace's subdomain (found in ConsoleWorkspace SettingsGeneral).

All endpoints are relative to this base URL.

Request Format

  • All requests use HTTPS
  • Request bodies must be JSON with Content-Type: application/json
  • Authentication via Authorization header — ApiKey sk-... for Workspace API or Bearer <jwt> for Agent API (see Authentication)

Example Request

curl -X GET "https://{workspace_id}.firetell.app/api/v1/phone-numbers" \
-H "Authorization: ApiKey sk-YOUR_API_KEY" \
-H "Content-Type: application/json"

Response Format

All responses return JSON. Successful responses include a data field:

{
"data": [{
...
}],
"meta": {
"total": 100,
"page": 1,
"limit": 20,
"total_pages": 5
}
}

HTTP Status Codes

CodeDescription
200Success
201Resource created
400Bad request — invalid parameters
401Unauthorized — invalid or missing API key
403Forbidden — insufficient permissions
404Resource not found
429Rate limit exceeded
500Internal server error

Error Response Format

When a request fails validation (HTTP 400), the API returns a structured error body describing every invalid field:

{
"statusCode": 400,
"message": "name must not be empty",
"error": "Bad Request",
"errors": [
{
"field": "name",
"messages": ["name must not be empty", "name must be a string"]
},
{
"field": "address.city",
"messages": ["city must be a string"]
}
]
}
FieldTypeDescription
messagestringThe first validation message — convenient for simple error display
errorsarrayFull list of all invalid fields
errors[].fieldstringDot-notation path to the invalid field (e.g. address.city for nested objects)
errors[].messagesstring[]All constraint violation messages for that field
tip

Use errors to map validation feedback directly to form fields. The top-level message is kept for backward compatibility and quick display.

Pagination

List endpoints support pagination with the following query parameters:

ParameterTypeDefaultDescription
pagenumber1Page number
limitnumber20Items per page (max 100)
searchstringText search filter
sortstringSort field
orderstringdescSort order (asc or desc)

Rate Limiting

All API endpoints are rate-limited to protect the platform and ensure fair usage. Rate limits are enforced per minute using a fixed-window counter backed by Firetell servers.

Rate Limit Tiers

TierLimitEndpoints
Default100 req/minAll standard API endpoints
Auth10 req/min/auth/login, /auth/verify, /auth/refresh
Heavy30 req/minUpload, resource-intensive operations

Rate limits are applied per API Key when using API Key authentication, per agent IP when using agent JWT authentication (agent-api), or per client identifier when using client JWT authentication (client-api).

note

Need higher limits?

Enterprise customers can request custom rate limits. Contact us at enterprise@firetell.com with your workspace ID and use case.

Response Headers

Every response includes rate limit information:

HeaderDescription
X-RateLimit-LimitMaximum requests allowed in the window
X-RateLimit-RemainingRequests remaining in the current window
Retry-AfterSeconds to wait before retrying (only on 429)

Rate Limit Exceeded (429)

When the rate limit is exceeded, the API returns a 429 Too Many Requests response:

{
"statusCode": 429,
"message": "Rate limit exceeded. Please try again later.",
"retryAfter": 42
}
tip

Best Practices

  • Implement exponential backoff when receiving 429 responses
  • Cache responses to reduce API calls
  • Use webhooks instead of polling for real-time updates
  • Monitor the X-RateLimit-Remaining header to preemptively slow down

Available Resources

Workspace API

Management endpoints for workspace administrators. Authenticated via ApiKey.

ResourceDescription
Phone NumbersManage virtual phone numbers
CallInitiate and control calls
Call FlowsManage IVR call flows
ExtensionsManage internal extensions
SIP TrunksManage SIP trunk connections
SIP AccountsManage SIP accounts
TeamsManage agent teams
AgentsManage call center agents
Voice AgentsManage AI voice agents
AudiosManage audio files
WebhooksManage webhook endpoints

Agent API

Call center portal endpoints for agents. Authenticated via agent JWT (agent-api audience).

ResourceDescription
Roles & PermissionsTeam roles (member, leader, supervisor) & permission matrix
AuthenticationAgent login, JWT verify, token refresh & password recovery
AccountProfile, teams, avatar, devices & logout
Realtime EventsServer-Sent Events (SSE) stream for presence, queue & notifications
Outbound CallsInitiate outbound calls via REST & native WebSockets per-call
ContactsManage contacts — create, search, lookup & delete
Address BooksOrganize contacts into named address books
TeamsView teams, teammates, agent states & team management
Phone NumbersView phone numbers available to your teams
Call HistoryView calls you handled as an agent
Call SupervisionListen, whisper, barge (supervisor) & call transfer (all agents)

Enterprise Services

Need advanced capabilities beyond the standard platform? Firetell offers custom enterprise solutions:

ServiceDescription
Custom Rate LimitsHigher or tailored rate limits for your workload
Custom Base DomainUse your own domain instead of *.firetell.app (e.g., api.yourcompany.com)
Dedicated InfrastructureIsolated deployment for compliance and performance
Priority SupportDedicated technical support and SLA guarantees

To discuss enterprise requirements, contact us at enterprise@firetell.com.