Skip to main content
The Unpod REST API manages platform resources: spaces, agents, tasks, runs, call logs, telephony (bridges, numbers, providers), and billing. This page states the conventions once; the endpoint pages in the sidebar assume them.
Building a voice agent in Python? You likely want the Speech Stack instead - the unpod SDK wraps provisioning and live-call handling. The REST API is for direct integrations and non-Python stacks.

Base URL

https://unpod.ai/api/v2/platform
All endpoint paths in this reference are relative to it.

Authentication

Every request carries an API token in the Authorization header using the Token scheme:
Authorization: Token a1b2c3d4e5f6g7h8i9j0...
Generate tokens from the Unpod Dashboard - see Authentication for the step-by-step, space-token scoping, and error responses.
curl -X GET "https://unpod.ai/api/v2/platform/telephony/bridges/" \
  -H "Authorization: Token $UNPOD_TOKEN"

Rate limiting

Responses include rate-limit headers; exceeding your limit returns 429 Too Many Requests:
HeaderMeaning
X-RateLimit-LimitMax requests in the current window
X-RateLimit-RemainingRequests left in the window
X-RateLimit-ResetUnix timestamp when the window resets
Retry-AfterSeconds to wait (only on 429)
Handle 429s with exponential backoff, honoring Retry-After. Cache reads and batch writes where you can. Current limits depend on your plan - check the dashboard.

Errors

The API uses standard HTTP status codes. Error bodies are JSON with a machine-readable code and a human-readable message:
{
  "error": {
    "code": "rate_limit_exceeded",
    "message": "Rate limit exceeded. Please try again in 60 seconds."
  }
}
Common cases: 401 - token missing, expired, or access denied (see Authentication); 404 - resource not found or outside your space; 429 - rate limited.

Start here

API Quickstart

First authenticated requests against bridges, call logs, and providers.

Authentication

Tokens, space scoping, and auth errors in detail.