One endpoint. Agents that act.
Send a message and a customer id. Get back the agent's reply, the action it wants to take, the confirmation it needs, and, once confirmed, the result. Streaming, rich reply blocks and webhooks included.
A message in, an action out
Pass the user, their message, and the tools available. The API detects intent, extracts parameters, grounds against real data, and tells you whether confirmation is required, so you never execute the wrong thing.
One call, a structured financial action.
A message in, a validated intent out, with confirmation controls built in.
const res = await twelve.chat({
message: "Send ₦50,000 to Sarah",
customerId: userId,
}){
"intent": "transfer",
"message": "₦50,000 to SARAH OKAFOR. Confirm to send.",
"pendingConfirmation": {
"tool": "transfer_funds",
"arguments": { "amount": 50000 }
},
"continuation": "enc.a91x"
}API highlights
Structured intents
Typed, validated output, not free-form text.
Confirmation controls
The API flags sensitive actions so you can require approval.
Bring your own rails
Bind tools to your endpoints; keep your compliance.
Live sandbox
Test the full flow against stubbed responses before launch.
Infrastructure, not a demo.
Everything here runs on the same platform we operate for real customers, grounded answers, gated writes, and a full audit trail.
- Structured intents. Typed, validated output, not free-form text.
- Confirmation controls. The API flags sensitive actions so you can require approval.
- Bring your own rails. Bind tools to your endpoints; keep your compliance.
- Live sandbox. Test the full flow against stubbed responses before launch.