API-first. MCP-native.
Every UI action is a REST call. Connect any MCP-compatible AI client through the MCP endpoint. Bearer-auth, idempotent, cursor-paginated, shape-stable.
The whole platform, programmable.
The Saaya dashboard is a thin client over the Saaya API. Anything you can do in the UI, create an agent, upload to a knowledge base, launch a campaign, fetch a session, is a documented REST call. There are no console-only features. There are no UI-only features.
For AI-native work, an MCP endpoint exposes every Saaya resource as a tool that any MCP-compatible AI client can call directly, your agents, your KBs, your sessions, all addressable from another agent.
The shape contract is strict. Every endpoint is bearer-authenticated, idempotent on writes (with an idempotency key header), cursor-paginated on lists, and shape-stable across minor versions. Breaking changes ship as a new major version, with the old version supported for at least twelve months.
A platform you can script.
The bits that make a developer experience feel inevitable, instead of inflicted.
REST
CRUD on agents, KBs, campaigns, and sessions via REST.
MCP endpoint
Native Model Context Protocol server at /mcp. Connect any MCP-compatible AI client, every Saaya resource is a tool.
Cursor pagination
Every list endpoint is cursor-paginated, shape-stable, and idempotent. Bearer auth, idempotency keys, RFC-7807 error envelopes. The boring parts done right.
Three steps from key to production.
Most teams have a working integration before lunch.
Get a key
Generate a scoped API key from the dashboard. Per-environment (sandbox, production), per-resource (agents:read, campaigns:write), with rate-limit and IP-allowlist policies.
Pick REST or MCP
REST for one-offs and CI. MCP for any MCP-compatible AI client. Same auth, same shapes, same docs.
Ship
Roll forward. Idempotency keys make retries safe; cursor pagination keeps backfills clean.
The same operations, over REST.
Create an agent, upload to a KB.
# 1. Create an agent
curl -X POST https://api.saaya.ai/v1/agents \
-H "Authorization: Bearer $SAAYA_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{ "name": "maya-inbound", "identity": { "language": "en-US" } }'
# 2. Upload a doc to a knowledge base
curl -X POST https://api.saaya.ai/v1/knowledge-bases/kb_docs/uploads \
-H "Authorization: Bearer $SAAYA_API_KEY" \
-F "file=@./handbook.pdf" \
-F "tags=public,handbook"On every tier, what you get.
The API is the platform. Every plan ships with full REST access; the difference is MCP.
Full REST access · sandbox environment.
MCP endpoint · production environment · idempotency keys · saved API-key scopes.
IP allowlists · BYO domain (api.yourco.com) · region-pinned endpoints · dedicated support channel.
Pair this with the right Solution.
Frequently Asked Questions.
Limits are per-endpoint-class. 429s include a Retry-After header and a token-bucket refill timestamp.
Build on the API.
Generate a sandbox key in two clicks, paste a request into your terminal, and watch your first agent answer. Production access is the same call with a different key.
