OdyOdy
Try for free
api.ody.coDeveloper platform

Your business phone,
now programmable.

Every contact, conversation, message, and call in your Ody workspace behind one clean REST API — plus an MCP server for AI assistants, signed webhooks, and SDKs. One key, created in minutes.

Get your API keyRead the docs

Bearer auth · ody_live_ and ody_test_ keys · Settings → Developer API

send-sms.sh — your first API call
# Send an SMS from your Ody number
curl https://api.ody.co/v1/api/messages \
-H "Authorization: Bearer ody_live_…" \
-H "Idempotency-Key: order-1042-shipped" \
-d '{"to": "+15125550123", "body": "Your order shipped!"}'
201 Created
{
"conversationId": "b4a6f0…",
"message": { "body": "Your order shipped!" },
"simulated": false
}
Idempotency-Key on POST /messages — retries within 24h replay the first response
Cursor pagination on every list endpoint — follow nextCursor, never miss a row
Standard RateLimit-Limit / -Remaining / -Reset headers, Retry-After on 429
Uniform JSON error envelope with an X-Request-Id echo on every response

THE PLATFORM

Everything you need to build on Ody

Six pieces, one API key. Designed to feel boring in the best way: predictable resources, predictable errors, predictable pages.

REST API

Contacts CRUD, conversations, SMS/MMS sending, message search, call history, and phone numbers at https://api.ody.co/v1/api — Bearer-authenticated with your ody_live_ key.

GET /v1/api/contacts

MCP for AI assistants

Connect ChatGPT, Claude, or Cursor to https://api.ody.co/v1/mcp and your assistant gets 11 tools — list and update contacts, read conversations, search messages, send texts — scoped by your key.

11 tools · /v1/mcp

Signed webhooks

Outbound webhooks with Standard-Webhooks HMAC signing — webhook-id, webhook-timestamp, and webhook-signature headers — automatic retries, and per-endpoint secrets you can rotate anytime.

webhook-signature: v1,…

Test mode

ody_test_ keys behave exactly like live keys, but message sends are simulated — no real SMS ever leaves. Point your CI at production and sleep fine.

"simulated": true

TypeScript & Python SDKs

Official, fully typed clients with auto-pagination, typed errors, idempotent sends, and webhook signature verification built in — so you never hand-roll HMAC again.

await ody.messages.send(…)

OpenAPI 3.1

The whole surface is described in one machine-readable spec at /v1/api/openapi.json — generate clients, mock servers, or just feed it to your AI coding agent.

GET /v1/api/openapi.json

LEAST PRIVILEGE

Keys that only do what you say

Create keys in the Ody app under Settings → Developer API and narrow each one to exactly the scopes an integration needs — seven scopes across contacts, conversations, messages, numbers, and webhooks. A read-only dashboard key can never text a customer.

ody_live_… · scoped key
contacts:read
contacts:write
conversations:read
conversations:write
messages:send
numbers:read
webhooks:manage

MODEL CONTEXT PROTOCOL

Paste one block, your AI is on the phones

The same API key powers the MCP server. Drop this config into ChatGPT, Claude, or Cursor and ask your assistant to catch up on unread conversations, draft replies, or text a customer — every call scoped to what the key allows.

Explore the MCP server
mcp.json
{
"mcpServers": {
"ody": {
"url": "https://api.ody.co/v1/mcp",
"headers": {
"Authorization": "Bearer ody_live_…"
}
}
}
}

START BUILDING

From zero to first SMS in five minutes

Grab a key, make one curl call, and you've sent a text. The full API reference, webhook guides, and SDK quickstarts live in the help center.

Browse the API docsOpen Settings → Developer API

API keys are created by workspace owners and admins under Settings → Developer API.

FAQ

Developer questions, answered

What can the API do today?

Full contacts CRUD; list and read conversations and set their status; send SMS and MMS; search your message history; pull call and voicemail history with transcripts; and list your workspace's phone numbers. The complete reference lives in the developer docs at help.ody.co.

Never miss another customer.

Port your number, train your agent in minutes, and put your whole phone line on autopilot. Or keep the AI off and just run the best softphone on earth. Your call.

Try for free →Book a demo