Skip to content

API Reference

Welcome to the Rymi Voice API. Build, deploy, and manage AI-powered voice agents through REST endpoints under /v1.

Base URL

https://api.rymi.live

All endpoints are prefixed with /v1. For example, https://api.rymi.live/v1/agents.

Authentication

Rymi uses Bearer token authentication via the Authorization header.

bash
curl https://api.rymi.live/v1/agents \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"
HeaderValue
AuthorizationBearer <YOUR_API_KEY>
Content-Typeapplication/json

Key Types

Key TypePrefixUse Case
Secret Keyrymi_Full management API access. Use only on your backend
Publishable Keysb_publishable_Frontend-safe, scoped to call creation flows

TIP

Legacy rymi_pk_ publishable keys remain accepted, but new keys use the sb_publishable_ format. Refer to Publishable Keys for scope details.

Rate Limits

The API enforces tenant, API-key, and IP-based rate limits. Limits vary by plan and may be tightened on specific flows such as public demo phone calls created with publishable keys.

PlanRequests / minConcurrent CallsBurst Allowance
Free6015 requests
Go3001025 requests
Plus1,00050100 requests
CustomUnlimitedCustomCustom

When a rate limit is exceeded, the API returns 429 Too Many Requests with a Retry-After header indicating how many seconds to wait before retrying.

Pagination

List endpoints return paginated responses. Most resources use limit plus offset. Call history also supports cursor-based pagination.

bash
curl "https://api.rymi.live/v1/agents?limit=10&offset=20" \
  -H "Authorization: Bearer YOUR_API_KEY"
ParameterTypeDefaultDescription
limitinteger50Maximum number of records to return (max 200)
offsetinteger0Number of records to skip before starting to collect the result set

Calls additionally accept:

ParameterTypeDefaultDescription
cursorstringResume from a previous call ID when traversing call history
statusstringFilter calls by status: queued, ringing, in_progress, completed, or failed

Example paginated response:

json
{
  "agents": [ ... ],
  "total": 142,
  "limit": 10,
  "offset": 20
}

Error Format

All errors return a JSON body with at least an error field:

json
{
  "error": "Human-readable error message"
}

Write endpoints may include additional context:

json
{
  "error": "Insufficient credits to start this call",
  "code": "insufficient_credits",
  "detail": "tenant_balance_exhausted"
}

HTTP Status Codes

CodeMeaning
200Success
201Resource created
202Accepted — queued for async processing
400Bad request or validation error
401Missing or invalid API key
402Insufficient credits
403Authenticated but not allowed for this token scope
404Resource not found
409Conflict with current resource state
429Rate limit exceeded — retry after the Retry-After header value
500Internal server error
502Upstream provider error (e.g., telephony or voice provider failure)

API Surface

These are the public APIs available for self-serve users. Admin routes, internal queue dashboards, and carrier number purchase/search APIs are intentionally excluded.

AreaEndpointsDescription
AgentsGET POST PUT DELETE /v1/agents, GET /v1/agents/:id/calls, POST /v1/agents/generate, GET /v1/agents/llm-optionsCore configuration for voice personas, provider routing, prompt/playbook structure, and agent roles
CallsPOST /v1/calls, GET /v1/calls, GET /v1/calls/active, GET /v1/calls/:id, POST /v1/calls/:id/participants, POST /v1/calls/:id/end, GET /v1/calls/:id/events, GET /v1/calls/:id/summary, GET /v1/calls/:id/transcript, GET /v1/calls/:id/recording, POST /v1/calls/:id/reprocess, GET /v1/calls/queue/statsWebRTC and PSTN call lifecycle, post-call inspection, and queue monitoring
Queue & FanoutPOST /v1/calls/batchHigh-throughput outbound dialing for up to 500 PSTN recipients per request
NumbersPOST /v1/numbers, GET /v1/numbers, POST /v1/numbers/:number/attach, DELETE /v1/numbers/:numberBYOC phone number registration and agent assignment
TelephonyPOST /v1/telephony/connect, POST /v1/telephony/disconnect, GET /v1/telephony/status, GET /v1/telephony/numbersCarrier abstraction for Plivo, Twilio, and Vonage
Voice ProvidersGET POST /v1/voice-providers/elevenlabs/*BYO premium voice catalog via ElevenLabs integration
Publishable KeysGET POST DELETE /v1/keys/publishableFrontend-safe, scoped keys for SDK call creation
Realtime TokensPOST /v1/realtime/token, POST /v1/webrtc/tokenWebRTC session tokens backed by LiveKit
WebhooksPOST GET PATCH DELETE /v1/webhooksEvent delivery for transcripts, post-call intelligence, and automation hooks
CompliancePOST GET DELETE /v1/dnc, POST /v1/dnc/batch, POST /v1/dnc/checkDo-Not-Call registry with bulk import and pre-flight checks
AnalyticsGET /v1/analytics/spendUsage, spend, call-quality, and agent performance reporting
NotificationsGET /v1/notifications, PUT /v1/notifications/read-all, PUT /v1/notifications/:id/read, GET PUT /v1/notifications/preferencesIn-app notification feed and delivery preferences
LanguagesGET /v1/languagesSupported language catalog for agent configuration
AuthGET /v1/auth/me, POST /v1/auth/regenerate-keyAccount profile and secret key rotation

Client Libraries

LibraryDescription
Browser SDKAdd AI voice to any website with @rymi/web
React SDKReact provider and hooks with @rymi/react
Node.js SDKServer-side SDK with @rymi/node
Python SDKServer-side SDK with rymi