For Developers
Voice and WhatsApp AI agent API,
built for developers
Ship AI agents with a REST API, an OpenAPI spec, signed webhooks, an MCP server and a settings console non-engineers can use. Curated models included, in-browser voice, and phone calls on your own number.
In short
Is there an API for AI voice and WhatsApp agents?
Yes. A REST API with a published OpenAPI spec lets you create agents, place calls, send WhatsApp templates and read calls and conversations, and signed webhooks tell your systems what happened. An MCP server exposes the same platform to AI coding assistants.
Quickstart
Place your first call
Place an outbound voice call with a single API request. Pick your language — curl, Python, or JavaScript.
curl
# India workspaces: https://app.thinnest.ai/api/v1
# International workspaces: https://dashboard.thinnest.ai/api/v1
curl -X POST https://dashboard.thinnest.ai/api/v1/calls \
-H "Authorization: Bearer $THINNESTAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "+1 415 555 0134",
"agent": "ag_your_agent_id",
"purpose": "I am calling about your appointment on Friday.",
"callingHours": { "start": "09:00", "end": "20:00" },
"metadata": { "customer_id": "cust_123" }
}'Python
import os
import httpx
BASE = "https://dashboard.thinnest.ai/api/v1" # India: https://app.thinnest.ai/api/v1
res = httpx.post(
f"{BASE}/calls",
headers={"Authorization": f"Bearer {os.environ['THINNESTAI_API_KEY']}"},
json={
"to": "+44 20 7946 0958",
"agent": "ag_your_agent_id",
"purpose": "I am calling about your appointment on Friday.",
"metadata": {"customer_id": "cust_123"},
},
)
call = res.json()
print("Call:", call["id"], call["status"])JavaScript / TypeScript
const BASE = "https://dashboard.thinnest.ai/api/v1"; // India: https://app.thinnest.ai/api/v1
const res = await fetch(`${BASE}/calls`, {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.THINNESTAI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
to: "+971 4 555 0134",
agent: "ag_your_agent_id",
purpose: "I am calling about your appointment on Friday.",
metadata: { customerId: "cust_123" },
}),
});
const call = await res.json();
console.log(`Call: ${call.id} ${call.status}`);Calls ring only within the callingHours you set, on the called person's local time; with none set, any hour is allowed. Set them to what the law requires where you call — you are responsible for consent and Do Not Call screening. See voice campaigns.
Capabilities
Developer capabilities
REST API
Create and configure agents, place calls, send WhatsApp templates, manage contacts, knowledge and webhooks, and read calls and conversations — over HTTPS. OpenAPI spec published.
MCP server
Build and run agents from Claude Code, Cursor or VS Code. Nothing reaches a customer without your approval, and Build keys cannot message customers or place calls.
Signed outbound webhooks
Lead captured, escalation raised, conversation resolved, call finished, a call's results with its transcript, campaign finished and more — delivered to your endpoint with a signature you can verify.
In-browser and phone calls
Voice calls from your website in the browser, with no phone number needed, and phone calls on your own imported number — or, in India, a number from us. One agent runtime for both.
Events & transactional messaging
Post a fact from your backend (order.delivered, say) and it enrols the customer in a drip sequence. POST /api/v1/messages sends order confirmations and other approved templates, with idempotency keys, rate limits and API keys.
Full call log
Every call produces a transcript, a recording you can play back when recording is on, and an outcome — connected, busy, declined, unreachable or voicemail. Export the lot as CSV.
Use cases
What developers build on ThinnestAI
01
Outbound call triggered by your CRM
Your CRM fires an event → ThinnestAI calls the lead in their language, within the calling hours you set → the outcome and collected fields come back to your CRM by webhook.
Talk to a voice agent
In the browser · no phone number
02
Voice and chat widget on your website
Add one script tag to your site or React / Next app. Visitors chat with your agent or click to talk to it in the browser, with no phone number required.
03
Programmatic agent creation
Create and configure agents via REST — good for multi-tenant apps where each customer gets their own agent.
04
Custom tool calling
Expose a REST endpoint as an action the agent can call — database lookups, order status, third-party APIs — one record at a time.
Docs
Jump to the docs
FAQ
Developer FAQ
Is there a free tier for developers?
+
Yes. The free trial needs no card and includes voice minutes and chat replies on curated, platform-managed models, so you can build your first agent without bringing any API keys. Plan details are on the pricing page.
Are there SDKs?
+
Python and TypeScript clients are generated from the OpenAPI spec, but they are not on PyPI or npm yet. Until they are, call the REST API directly from any language — curl, Python, JavaScript, Go, Ruby, PHP — or generate a client from the spec.
Do I need to bring my own provider API keys?
+
No. Speech recognition, the language model and the voice run on curated models included in your plan, so there is nothing to configure there. For phone calls outside India, import a number from your own Twilio, Telnyx or Plivo account; in India you can also buy a number from us or import a Plivo, Vobiz, Twilio or Telnyx number.
Is there an OpenAPI spec I can generate clients from?
+
Yes. The full OpenAPI spec is published at docs.thinnest.ai/api-reference. You can generate clients for any language with standard OpenAPI generator tools.
How do webhooks work?
+
Add an endpoint and choose its events — a lead, an escalation, a resolution, a finished call, a call's results with its transcript, a finished campaign and others. Each delivery carries a signature you verify with the secret shown once when you created the endpoint.
Can I use ThinnestAI from a serverless function?
+
Yes. The REST API works from any environment that can make HTTPS requests — AWS Lambda, Vercel Functions, Cloudflare Workers, Google Cloud Functions. Keep your API key on the server.
What's the rate limit?
+
Limits are counted per workspace, per minute, and placing calls is also held to your plan's concurrent lines. Over a limit you get 429 with a Retry-After header — honour it and retry.
Can I test without calling real customers?
+
Yes. Call your agent from the browser in the console, or use the MCP server's test chat, where anything that would contact a person is switched off.
Related: tool calling, transcripts and logs and pricing.
Start building on the free trial
No card required. Curated models are included, so you can build your first voice agent — in English, Spanish, Hindi or any of 50 voice languages — without bringing a single API key.