Documentation
Build on the Tried API.
A REST API over HTTPS with JSON bodies. Everything the dashboard does, the API does too.
- Base URL
- https://api.tried.com.au
- Auth
- Bearer API key
- Format
- JSON, UTF-8
- Webhook signature
- x-tried-signature
Quickstart
Create an engine, an agent and a number. Then call the number from your phone.
# Build your agent in the dashboard first, then copy its ID.
# 1. Connect your own number over SIP and point it at the agent
curl -X POST https://api.tried.com.au/import-phone-number \
-H "Authorization: Bearer $TRIED_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"phone_number": "+61291234567",
"termination_uri": "sip.example-carrier.com.au",
"inbound_agents": [{ "agent_id": "agent_...", "weight": 1 }]
}'
# 2. Place an outbound call from that number
curl -X POST https://api.tried.com.au/v2/create-phone-call \
-H "Authorization: Bearer $TRIED_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"from_number": "+61291234567",
"to_number": "+61412555019",
"override_agent_id": "agent_..."
}'Prefer the dashboard? Log in and start from a template.
Authentication
Create API keys in Settings, API Keys. Send the key as a bearer token on every request. Keys are shown once and stored only as a hash, so keep yours in a secret manager.
API reference
The main endpoints, grouped by resource.
Agents
| POST | /create-agent | Create an agent from a response engine and a voice |
| GET | /get-agent/:agent_id | Fetch an agent, optionally at a version |
| GET | /v2/list-agents | List agents |
| PATCH | /update-agent/:agent_id | Update the draft |
| POST | /publish-agent-version/:agent_id | Publish the draft as a new version |
| GET | /list-agent-versions/:agent_id | List published versions |
Conversation flows
| POST | /create-conversation-flow | Create a flow with nodes and edges |
| PATCH | /update-conversation-flow/:id | Update a flow |
Calls
| POST | /v2/create-phone-call | Place an outbound call |
| POST | /v3/create-web-call | Start a browser call and get an access token |
| GET | /v2/get-call/:call_id | Fetch a call with transcript and analysis |
| POST | /v3/list-calls | List and filter calls |
| POST | /v2/stop-call/:call_id | End a live call |
| POST | /rerun-call-analysis/:call_id | Run post-call analysis again |
Numbers
| POST | /import-phone-number | Import a number over SIP |
| PATCH | /update-phone-number/:number | Set agents, weights, webhook and countries |
| GET | /v2/list-phone-numbers | List numbers |
Knowledge bases and batch calls
| POST | /create-knowledge-base | Create from URLs, files or text |
| POST | /add-knowledge-base-sources/:id | Add sources |
| POST | /create-batch-call | Start a batch from a list of recipients |
| GET | /list-batch-calls | List batches and progress |
Account
| GET | /get-concurrency | Current and maximum concurrent calls |
| GET | /list-voices | Available voices |
| GET | /agent-estimates/:agent_id | Cost and latency estimate for an agent |
Webhooks
Set a workspace webhook URL, or override it per agent. We POST call_started, call_ended and call_analyzed with a 10 second timeout and up to 3 retries.
- call_started200 · 146 ms
- call_ended200 · 212 ms
- call_analyzed200 · 188 ms
{
"event": "call_analyzed",
"call": {
"call_id": "call_bdefa21365a5",
"agent_id": "agent_aee5c1d2f0b7",
"call_type": "phone_call",
"from_number": "+61290001111",
"to_number": "+61280001234",
"duration_ms": 265000,
"disconnection_reason": "user_hangup",
"call_analysis": {
"call_summary": "Caller booked a check-up for Thursday at 10:30.",
"user_sentiment": "Positive",
"call_successful": true,
"custom_analysis_data": { "appointment_booked": true }
}
}
}Verifying signatures
Each request carries x-tried-signature: v=<ts>,d=<hex>. Compute HMAC-SHA256 over the raw body followed by the timestamp, using your webhook key, and compare in constant time. Reject timestamps more than five minutes old.
A full example is in the webhooks guide.
The full reference, with every endpoint and field, is at docs.tried.com.au. Questions? Email hello@tried.com.au with API questions and an engineer will answer.

Have you Tried it yet?
Create an account, pick a template and talk to your new receptionist in the browser. You only pay for the minutes you use.