Skip to content
TriedDocs
Overview

API overview

Base URL, authentication, Retell compatibility, request and response conventions, and an index of every endpoint.

The Tried REST API manages agents, phone numbers, calls, chats, knowledge bases and everything else you can do in the dashboard. Paths and payloads follow Retell's API, so code written for Retell runs against Tried after you change the base URL and the key.

Base URL#

https://api.tried.com.au

All requests use HTTPS. Request and response bodies are JSON (Content-Type: application/json), except file uploads, which use multipart/form-data, and a few downloads.

Authentication#

Send a secret API key as a bearer token on every request:

curl https://api.tried.com.au/v2/list-agents \
  -H "Authorization: Bearer $TRIED_API_KEY"

Create keys under Settings, API Keys in the dashboard. Keys can be limited by scope, IP address and rate. Browsers use public keys instead. See Authentication.

Using the Retell SDKs#

The Retell Node and Python SDKs accept a base URL. Point it at Tried and use a Tried key:

import Retell from "retell-sdk";

const client = new Retell({
  apiKey: process.env.TRIED_API_KEY!,
  baseURL: "https://api.tried.com.au",
});

const call = await client.call.createPhoneCall({
  from_number: "+61291234567",
  to_number: "+61412345678",
});
import os
from retell import Retell

client = Retell(
    api_key=os.environ["TRIED_API_KEY"],
    base_url="https://api.tried.com.au",
)

call = client.call.create_phone_call(
    from_number="+61291234567",
    to_number="+61412345678",
)

Things to know when you switch:

  • Tried documents its own fields on each endpoint page. Fields Retell has and Tried does not are dropped from request bodies without an error, so check the page for any field you rely on.
  • Webhooks are signed with x-tried-signature and also with x-retell-signature, so existing Retell verification code keeps working. See Webhooks.
  • For browser web calls, the @tried/web-sdk client mirrors Retell's RetellWebClient (startCall({ accessToken }), stopCall(), mute(), the same events). Pass the access_token and livekit_url from Create web call.
  • Endpoints that Retell does not have (for example alerts and analytics dashboards) have no method in the Retell SDKs. Call them over plain HTTP with the same header.

Path versions#

Paths match Retell's, including its version prefixes. Where Retell uses /v2/ or /v3/, Tried serves the same path, and for most of them it also serves the other form as an alias:

Canonical path Also served at
POST /v2/create-phone-call POST /create-phone-call
POST /v3/create-web-call POST /v2/create-web-call
POST /v3/list-calls POST /v2/list-calls
GET /v2/get-call/{call_id} GET /get-call/{call_id}
POST /v2/register-phone-call POST /register-phone-call
GET /v2/list-agents GET /list-agents
GET /v2/list-retell-llms GET /list-retell-llms
GET /v2/list-conversation-flows GET /list-conversation-flows
GET /v2/list-phone-numbers GET /list-phone-numbers

Use the canonical path in new code. Version references on an agent (agent_version, override_agent_version) and environment tags are resolved on the canonical create-call paths.

There is no API version header. The version is part of the path.

Requests#

  • Field names are snake_case.
  • Validation. Every body is checked against a schema. Invalid values return 400 with the failing field named, for example to_number: Required.
  • Unknown fields are dropped, not rejected.
  • Server-controlled fields such as IDs, version, is_published, timestamps and costs are never read from the body.
  • Size. JSON bodies up to 25 MB. Knowledge base files up to 50 MB each and 25 per request.
  • Phone numbers are E.164 strings, such as +61291234567 or +14155550123. A phone number is its own ID in paths, for example /get-phone-number/+61291234567 (URL-encode the + as %2B if your client does not).
  • Idempotency. POST /v2/create-phone-call accepts an idempotency_key (up to 200 characters). A repeat with the same key within 1 hour returns the original call instead of dialling again.

Responses#

  • Objects are returned as JSON with snake_case fields. Create endpoints return 201. Most deletes return 204 with no body.
  • Timestamps are integers in Unix epoch milliseconds, such as start_timestamp: 1760832000000. Durations end in _ms.
  • Errors return { "status": <code>, "message": "<text>" }. See Errors.

IDs#

IDs are a type prefix and 24 random hex characters:

Object Prefix Example
Agent agent_ agent_5f1e2d3c4b5a69788796a5b4
Response engine (LLM) llm_ llm_0a1b2c3d4e5f60718293a4b5
Conversation flow conversation_flow_ conversation_flow_9e8d7c6b5a4938271605f4e3
Call call_ call_3c4d5e6f708192a3b4c5d6e7
Knowledge base knowledge_base_ knowledge_base_1a2b3c4d5e6f708192a3b4c5
Knowledge base source source_ source_6f708192a3b4c5d6e7f80910
Batch call batch_call_ batch_call_7d8e9f0a1b2c3d4e5f607182
Contact contact_ contact_2b3c4d5e6f708192a3b4c5d6
Test case test_case_ test_case_4e5f60718293a4b5c6d7e8f9
Batch test batch_test_ batch_test_5f60718293a4b5c6d7e8f90a
Test run test_run_ test_run_60718293a4b5c6d7e8f90a1b
Alert rule alert_ alert_718293a4b5c6d7e8f90a1b2c
QA cohort qa_cohort_ qa_cohort_8293a4b5c6d7e8f90a1b2c3d
API key key_ key_93a4b5c6d7e8f90a1b2c3d4e
Workspace ws_ ws_a4b5c6d7e8f90a1b2c3d4e5f

The secret value of an API key is longer (key_ and 48 hex characters) than its api_key_id. An ID from another workspace returns 404.

Pagination#

Most list endpoints return a JSON array, newest first, and take an optional limit query parameter (each page lists its default and maximum).

POST /v3/list-calls pages with a cursor, the same way as Retell:

  1. Send limit (1 to 1000, default 50) and sort_order (descending by default).
  2. Take the call_id of the last call in the response.
  3. Send it as pagination_key to get the next page. An unknown key returns 400 with Invalid pagination_key.

List contact conversations returns next_before. Pass it back as before for the next page.

Rate limits#

The default is 600 requests per minute per API key and 3000 per IP address. Responses carry x-ratelimit-* headers. See Rate limits.

Endpoints#

Every endpoint, grouped by resource. Each page has the request fields, an example in cURL, Node and Python, the response and the errors it returns.

Calls#

Endpoint Method and path
Create phone call POST /v2/create-phone-call
Create web call POST /v3/create-web-call
Register phone call POST /v2/register-phone-call
Get call GET /v2/get-call/{call_id}
List calls POST /v3/list-calls
Update call PATCH /v2/update-call/{call_id}
Update live call PATCH /update-live-call/{call_id}
Stop call POST /v2/stop-call/{call_id}
Delete call DELETE /v2/delete-call/{call_id}
Rerun call analysis POST /rerun-call-analysis/{call_id}
Backfill call analysis POST /backfill-call-analysis
Get call recording URL GET /get-call-recording-url/{call_id}
Remove call sensitive data POST /v2/remove-call-sensitive-data/{call_id}
Get unscrubbed call GET /v2/get-call-unscrubbed/{call_id}
Get call SIP trace GET /v2/get-call-sip-trace/{call_id}
Get call PCAP GET /get-call-pcap/{call_id}
Stream call GET /v2/calls/{call_id}/stream
Monitor call WebSocket GET /v2/calls/{call_id}/ws
Listen to call POST /v2/calls/{call_id}/listen
Take over call POST /v2/calls/{call_id}/take-over
Supervisor say POST /v2/calls/{call_id}/supervisor-say
List call viewers GET /v2/calls/{call_id}/viewers
Leave call POST /v2/calls/{call_id}/leave

Chats and SMS#

Endpoint Method and path
Create chat POST /create-chat
Create chat completion POST /create-chat-completion
Get chat GET /get-chat/{chat_id}
List chats GET /list-chats
Update chat PATCH /update-chat/{chat_id}
End chat PATCH /end-chat/{chat_id}
Delete chat DELETE /delete-chat/{chat_id}
Rerun chat analysis POST /rerun-chat-analysis/{chat_id}
Agent playground completion POST /agent-playground-completion/{agent_id}
Agent playground simulation POST /agent-playground-simulation/{agent_id}
Create SMS chat POST /create-sms-chat
Get SMS chat GET /get-sms-chat/{chat_id}
End SMS chat POST /end-sms-chat/{chat_id}
List SMS chats GET /list-sms-chats
List SMS messages GET /list-sms-messages
Send SMS POST /send-sms
Simulate inbound SMS POST /sms-chats/{chat_id}/simulate-inbound

Voice agents#

Endpoint Method and path
Create agent POST /create-agent
Get agent GET /get-agent/{agent_id}
List agents GET /v2/list-agents
Update agent PATCH /update-agent/{agent_id}
Delete agent DELETE /delete-agent/{agent_id}
Publish agent version POST /publish-agent-version/{agent_id}
Create agent version POST /create-agent-version/{agent_id}
List agent versions GET /list-agent-versions/{agent_id}
List agent versions with tags GET /agent-versions/{agent_id}
Update agent version PATCH /agent-versions/{agent_id}/{version}
Delete agent version DELETE /agent-versions/{agent_id}/{version}
Compare agent versions GET /compare-agent-versions/{agent_id}
Resolve agent version GET /resolve-agent-version/{agent_id}
List agent tags GET /agents/{agent_id}/tags
Create agent tag POST /agents/{agent_id}/tags
Update agent tag PATCH /agents/{agent_id}/tags/{name}
Delete agent tag DELETE /agents/{agent_id}/tags/{name}
Repair agent POST /repair-agent/{agent_id}
Get agent estimates GET /agent-estimates/{agent_id}
Generate agent POST /generate-agent
List workflows GET /agents/{agent_id}/workflows
Update workflow PUT /agents/{agent_id}/workflows/{stage}
Test workflow POST /agents/{agent_id}/workflows/{stage}/test
List workflow runs GET /agents/{agent_id}/workflow-runs
List share links GET /agents/{agent_id}/share-links
Create share link POST /agents/{agent_id}/share-links
Delete share link DELETE /share-links/{id}
Agent copilot POST /agents/{agent_id}/copilot

Chat agents#

Endpoint Method and path
Create chat agent POST /create-chat-agent
Get chat agent GET /get-chat-agent/{chat_agent_id}
List chat agents GET /list-chat-agents
Update chat agent PATCH /update-chat-agent/{chat_agent_id}
Delete chat agent DELETE /delete-chat-agent/{chat_agent_id}
Publish chat agent POST /publish-chat-agent/{chat_agent_id}
Get chat agent versions GET /get-chat-agent-versions/{chat_agent_id}
Get chat agent version GET /get-chat-agent-version/{chat_agent_id}/{version}
Restore chat agent version POST /restore-chat-agent-version/{chat_agent_id}/{version}
Convert agent to chat POST /convert-agent-to-chat/{agent_id}

Response engines#

Endpoint Method and path
Create Retell LLM POST /create-retell-llm
Get Retell LLM GET /get-retell-llm/{llm_id}
List Retell LLMs GET /v2/list-retell-llms
Update Retell LLM PATCH /update-retell-llm/{llm_id}
Delete Retell LLM DELETE /delete-retell-llm/{llm_id}

Conversation flows#

Endpoint Method and path
Create conversation flow POST /create-conversation-flow
Get conversation flow GET /get-conversation-flow/{conversation_flow_id}
List conversation flows GET /v2/list-conversation-flows
Update conversation flow PATCH /update-conversation-flow/{conversation_flow_id}
Delete conversation flow DELETE /delete-conversation-flow/{conversation_flow_id}
Create flow component POST /create-conversation-flow-component
Get flow component GET /get-conversation-flow-component/{component_id}
List flow components GET /list-conversation-flow-components
Update flow component PATCH /update-conversation-flow-component/{component_id}
Delete flow component DELETE /delete-conversation-flow-component/{component_id}

Phone numbers#

Endpoint Method and path
Create phone number POST /create-phone-number
Import phone number POST /import-phone-number
Get phone number GET /get-phone-number/{n}
List phone numbers GET /v2/list-phone-numbers
Update phone number PATCH /update-phone-number/{n}
Delete phone number DELETE /delete-phone-number/{n}
Search phone numbers GET /search-phone-numbers
Provision phone number POST /provision-phone-number/{n}
Get SIP origination GET /sip-origination
Get number binding GET /phone-number-bindings/{n}
Update number binding PUT /phone-number-bindings/{n}
Test number connection POST /test-phone-number-connection/{n}
Create SIP trunk POST /create-sip-trunk
List SIP trunks GET /list-sip-trunks
Get SIP trunk GET /get-sip-trunk/{id}
Update SIP trunk PATCH /update-sip-trunk/{id}
Delete SIP trunk DELETE /delete-sip-trunk/{id}
Test SIP connection POST /test-sip-connection
Create branded caller ID POST /create-branded-caller-id
List branded caller IDs GET /list-branded-caller-ids
Refresh branded caller ID POST /refresh-branded-caller-id/{id}
Delete branded caller ID DELETE /delete-branded-caller-id/{id}
Create verified number POST /create-verified-number
List verified numbers GET /list-verified-numbers
Refresh verified number POST /refresh-verified-number/{id}
Delete verified number DELETE /delete-verified-number/{id}
List telephony operations GET /telephony/operations

Voices#

Endpoint Method and path
List voices GET /list-voices
Get voice GET /get-voice/{voice_id}
Clone voice POST /clone-voice
Search community voices GET /search-community-voice
Add community voice POST /add-community-voice
Get voice preview GET /voice-preview/{voice_id}

Knowledge bases#

Endpoint Method and path
Create knowledge base POST /create-knowledge-base
Get knowledge base GET /get-knowledge-base/{id}
List knowledge bases GET /list-knowledge-bases
Delete knowledge base DELETE /delete-knowledge-base/{id}
Add sources POST /add-knowledge-base-sources/{id}
Delete source DELETE /delete-knowledge-base-source/{id}/source/{source_id}
Get source content GET /get-knowledge-base-source-content/{id}/{source_id}
Crawl preview POST /knowledge-base-crawl-preview
Update knowledge base PATCH /update-knowledge-base/{id}
Refresh knowledge base POST /refresh-knowledge-base/{id}
List KB retrievals GET /kb-retrievals/{call_id}
Add synced source POST /add-knowledge-base-synced-source/{knowledge_base_id}
List syncs GET /list-knowledge-base-syncs/{knowledge_base_id}
Sync now POST /sync-knowledge-base-source/{sync_id}
Delete sync DELETE /delete-knowledge-base-sync/{sync_id}

Batch calls#

Endpoint Method and path
Create batch call POST /create-batch-call
List batch calls GET /list-batch-calls
Get batch call GET /get-batch-call/{id}
Start batch call POST /start-batch-call/{id}
Stop batch call POST /stop-batch-call/{id}
Delete batch call DELETE /delete-batch-call/{id}

Contacts#

Endpoint Method and path
Create contact POST /create-contact
List contacts GET /list-contacts
Get contact GET /get-contact/{id}
Get contact by phone GET /get-contact-by-phone/{phone_number}
Update contact PATCH /update-contact/{id}
Delete contact DELETE /delete-contact/{id}
List contact conversations GET /list-contact-conversations/{id}
List contact fields GET /list-contact-fields
Import contacts POST /import-contacts
Create import job POST /create-contact-import-job
Get import job GET /get-contact-import-job/{id}
List import jobs GET /list-contact-import-jobs
Backfill contacts POST /backfill-contacts
Get field mappings GET /contact-field-mappings
Update field mappings PUT /contact-field-mappings
Get contact memory GET /contacts/{id}/memory
Update contact memory PUT /contacts/{id}/memory
Save call to memory POST /contacts/{id}/memory/save-call
Get memory settings GET /contact-memory-settings
Update memory settings PUT /contact-memory-settings

Testing#

Endpoint Method and path
Create test case POST /create-test-case-definition
List test cases GET /list-test-case-definitions
Get test case GET /get-test-case-definition/{id}
Update test case PATCH /update-test-case-definition/{id}
Delete test case DELETE /delete-test-case-definition/{id}
Create batch test POST /create-batch-test
List batch tests GET /list-batch-tests
Get batch test GET /get-batch-test/{id}
List test runs GET /list-test-runs
Get test run GET /get-test-run/{id}

Integrations#

Endpoint Method and path
List app types GET /list-app-types
Create app POST /create-app
List apps GET /list-apps
Get app GET /get-app/{id}
Update app PATCH /update-app/{id}
Delete app DELETE /delete-app/{id}
List app usages GET /list-app-usages/{id}
Test app auth POST /test-app-auth/{id}
Get app tool schema GET /get-app-tool-schema
Execute app action POST /apps/{id}/execute
Get CRM config GET /get-crm-config
Update CRM config PUT /update-crm-config/{provider}
Delete CRM config DELETE /delete-crm-config/{provider}
Get CRM schema GET /get-crm-schema/{provider}
Test CRM auth POST /test-crm-auth/{provider}
Run CRM sync job POST /run-crm-sync-job
Get CRM sync job GET /get-crm-sync-job/{id}
List CRM sync jobs GET /list-crm-sync-jobs
List OAuth providers GET /oauth/providers
Start OAuth POST /oauth/start
Refresh OAuth token POST /oauth/refresh

Account#

Endpoint Method and path
Get concurrency GET /get-concurrency
Get concurrency settings GET /get-concurrency-settings
Update concurrency settings PATCH /update-concurrency-settings
Get concurrency billing GET /concurrency-billing
Charge concurrency billing POST /concurrency-billing/charge
Get API key info GET /get-api-key-info
List API keys GET /api-keys
Create API key POST /api-keys
Update API key PATCH /api-keys/{id}
Delete API key DELETE /api-keys/{id}
List public keys GET /public-keys
Create public key POST /public-keys
Update public key PATCH /public-keys/{id}
Delete public key DELETE /public-keys/{id}
Create export POST /exports
List exports GET /exports
Get export GET /exports/{id}
Download export GET /exports/{id}/download
Create asset POST /create-asset
List assets GET /list-assets
Get asset GET /get-asset/{asset_id}
Delete asset DELETE /delete-asset/{asset_id}
List webhook deliveries GET /webhook-deliveries
Test webhook POST /workspace/test-webhook
Get egress IPs GET /workspace/egress
List audit log GET /audit-log
Delete phone number data POST /privacy/delete-phone-number
Run retention purge POST /privacy/run-retention
Get call privacy GET /privacy/call/{call_id}
Get KYC status GET /kyc
Submit KYC POST /kyc
Get workspace GET /workspace
Update workspace PATCH /workspace
Get workspace settings GET /workspace/settings
Update workspace settings PATCH /workspace/settings
Get reliability GET /workspace/reliability
Update reliability PUT /workspace/reliability
Get account status GET /account-status
List members GET /workspace/members
Add member POST /workspace/members
Update member PATCH /workspace/members/{id}
Remove member DELETE /workspace/members/{id}
List invites GET /workspace/invites
Create invite POST /workspace/invites
Delete invite DELETE /workspace/invites/{id}
Leave workspace POST /workspace/leave
Delete workspace POST /workspace/delete
Transfer workspace POST /workspace/transfer
Get SSO config GET /workspace/sso
Update SSO config PUT /workspace/sso
Delete SSO config DELETE /workspace/sso
Get SAML config GET /workspace/saml
Update SAML config PUT /workspace/saml
Delete SAML config DELETE /workspace/saml
Get SCIM config GET /workspace/scim
Create SCIM token POST /workspace/scim-token
Delete SCIM token DELETE /workspace/scim-token
SCIM 2.0 endpoints GET /scim/v2/Users
Get billing GET /billing
Add credits POST /billing/add-credits
Get billing settings GET /billing/settings
Update billing settings PATCH /billing/settings
Check billing POST /billing/check
Create checkout POST /billing/checkout
List invoices GET /billing/invoices
Create usage invoice POST /billing/invoices/usage
Get invoice HTML GET /billing/invoices/{id}/html
Get billing usage GET /billing/usage
List payment methods GET /billing/payment-methods
Create setup intent POST /billing/payment-methods/setup-intent
Set default card POST /billing/payment-methods/default
Delete payment method DELETE /billing/payment-methods/{id}
Create checkout session POST /billing/checkout-session
Create portal session POST /billing/portal
Get platform usage GET /billing/platform-usage
List alert metrics GET /alerts/metrics
Create alert POST /alerts
List alerts GET /alerts
Get alert GET /alerts/{id}
Update alert PATCH /alerts/{id}
Delete alert DELETE /alerts/{id}
Evaluate alert POST /alerts/{id}/evaluate
Test alert POST /alerts/{id}/test
List alert events GET /alert-events
Get analytics summary GET /analytics/summary
Query analytics POST /analytics/query
List dashboards GET /dashboards
Create dashboard POST /dashboards
Update dashboard PUT /dashboards/{id}
Delete dashboard DELETE /dashboards/{id}
Create QA cohort POST /qa/cohorts
List QA cohorts GET /qa/cohorts
Get QA cohort GET /qa/cohorts/{id}
Update QA cohort PATCH /qa/cohorts/{id}
Delete QA cohort DELETE /qa/cohorts/{id}
Run QA cohort POST /qa/cohorts/{id}/run
Get QA cohort overview GET /qa/cohorts/{id}/overview
List QA cohort results GET /qa/cohorts/{id}/results
Get QA result GET /qa/results/{id}
Update QA result PATCH /qa/results/{id}
Update WER corrections PUT /qa/results/{id}/wer-corrections
Calibrate QA cohort POST /qa/cohorts/{id}/calibrate
List top questions GET /qa/cohorts/{id}/top-questions
List QA metrics GET /qa/metrics
Get QA usage GET /qa/usage
Get Conductor credits GET /conductor/credits
List Conductor ledger GET /conductor/ledger
Get Conductor capabilities GET /conductor/capabilities
Get Conductor walkthrough GET /conductor/walkthrough
Create Conductor session POST /conductor/sessions
List Conductor sessions GET /conductor/sessions
Get Conductor session GET /conductor/sessions/{id}
Delete Conductor session DELETE /conductor/sessions/{id}
Set Conductor attachments PUT /conductor/sessions/{id}/attachments
Send Conductor message POST /conductor/sessions/{id}/messages

Realtime and SDK#

Endpoint Method and path
Get MCP tools GET /get-mcp-tools/{agent_id}
Test custom LLM connection POST /test-custom-llm-connection

Public endpoints#

Endpoint Method and path
Start widget chat POST /public/chat/start
Send widget message POST /public/chat/{chat_id}/message
End widget chat POST /public/chat/{chat_id}/end
Get share link GET /public/share/{token}
Share link web call POST /public/share/{token}/web-call
Share link chat POST /public/share/{token}/chat
Get public call log GET /public/calls/{call_id}/log
Get public KB retrievals GET /public/calls/{call_id}/kb-retrievals
Get public asset GET /public/assets/{asset_id}
Widget script GET /widget.js