Quickstart: your first TalaLevel API call
TalaLevel has a REST API, webhooks, an MCP server and a command line. Make a key in Settings, send it as a Bearer token to https://app.talalevel.com/api/v1, and you can read and change leads, lists, notes and deals, and send texts and emails where the key allows it.
Four ways in
| Way in | What it is for | Where |
|---|---|---|
| REST API | Your own code, Zapier, Make, a spreadsheet | https://app.talalevel.com/api/v1 |
| Webhooks | Being told when a lead is made, texts back, a call ends, a deal is won | You give us an https address |
| MCP server | Claude, ChatGPT, Cursor and other AI apps working your leads | https://app.talalevel.com/mcp |
| Command line | Scripts and coding agents in a terminal | npx talalevel |
All four work on the same workspace with the same permissions. A key or a connection can do only what its owner allowed, and never more than that person can do in the app.
1. Make a key
In the app, an owner opens Settings → Connections → API and webhooks and makes a key. Pick what it may do:
- Read only: reads everything, changes nothing.
- Read and write: also makes and changes leads, notes, lists and deals.
- Read, write and send: also sends texts and emails and starts batches.
- Custom: a level for each area. See permissions.
The key starts with tl_live_ and is shown once. Keep it somewhere safe; we keep only a hash of it.
2. Read your leads
Leads come oldest change first. Keep next_cursor and pass it as cursor on the next call to get only what changed since.
curl "https://app.talalevel.com/api/v1/leads?limit=2" \
-H "Authorization: Bearer $TALALEVEL_KEY"{
"leads": [
{
"id": 123,
"name": "Reed Auto Repair",
"status": "Interested",
"email": "marcus@reedauto.example",
"city": "Austin",
"state": "TX",
"time_zone": "America/Chicago",
"contacts": [
{ "name": "Marcus Reed", "phones": [{ "phone": "+15125550147", "type": "mobile" }], "emails": [] }
],
"fields": { "Team size": "12" },
"owner": { "id": 4, "name": "Dana" },
"starred": false,
"updated_at": "2026-11-12T09:37:45.678Z",
"url": "https://app.talalevel.com/leads/123"
}
],
"next_cursor": "…",
"has_more": true
}3. Add a lead
upsert finds the lead with that phone and updates it, or makes a new one. It answers 201 with "created": true for a new lead and 200 with "created": false for one it found. Use it for forms and imports so a lead is never made twice.
curl -X POST "https://app.talalevel.com/api/v1/leads/upsert" \
-H "Authorization: Bearer $TALALEVEL_KEY" \
-H "Content-Type: application/json" \
-d '{ "match": "phone", "name": "Reed Auto Repair", "contact_name": "Marcus Reed", "phone": "(512) 555-0147" }'4. Get told when something happens
In the same Settings screen, add a webhook: an https address and the events you want. When a lead texts back we post this to you within a minute:
Every delivery is signed. See webhooks for the events, the signature and the retries.
{
"id": "evt_…",
"type": "text.received",
"created_at": "2026-11-12T03:12:09.000Z",
"workspace_id": 7,
"data": {
"lead": { "id": 123, "name": "Reed Auto Repair", "status": "Interested" },
"text": { "id": 9912, "body": "This week ideally. We decide Friday", "at": "2026-11-12T03:12:07.000Z", "number": "+15125550147", "line": "+15125550100" }
}
}5. Or connect an AI app
No code needed. In Claude, ChatGPT or Cursor add a custom connector with this address and sign in:
In Claude Code:
The app then has tools such as search_leads, get_lead, add_note, set_task and send_text. The MCP reference lists every one.
https://app.talalevel.com/mcpclaude mcp add --transport http talalevel https://app.talalevel.com/mcpRules every way in follows
- A send is checked like a send in the app. Opt-outs, quiet hours in the lead’s time zone, message length and your numbers’ registration all apply. Where a person in the app would see a warning, a key or an AI app is refused, and nothing goes.
- Batches are previewed first. A text batch, a wave or an AI caller run is a preview call, then a start call with the preview’s id.
- Phone numbers are US and Canada (the +1 plan), in any common form.
- Another workspace’s record reads as not found. A key works in one workspace only.
Questions
- Does TalaLevel have an API?
- Yes. A REST API at https://app.talalevel.com/api/v1 with workspace keys, webhooks for eleven events, an MCP server at https://app.talalevel.com/mcp for AI apps, and a command line, npx talalevel.
- Which plans include the API?
- The API, webhooks and the MCP server are part of every plan. Sending texts through them needs a plan with texting, and AI caller runs need the Scale plan, the same as in the app.
- Is there an OpenAPI file?
- Yes, OpenAPI 3.1 at https://talalevel.com/openapi.json. It describes every endpoint on this site's reference page.
- Can an AI agent use TalaLevel without writing code?
- Yes. Add https://app.talalevel.com/mcp as a connector in Claude, ChatGPT, Cursor or any app that speaks MCP and sign in. The agent then works with tools such as search_leads, get_lead and send_text.
© 2026 TalaLevel · talalevel.com · openapi.json · llms.txt · Privacy · Terms