One API runs the whole platform.
Reach it however you like.
Agents, CRM, knowledge, config, jobs, observability — all of it behind one REST API. It is the same API Smooth Operator calls when it does the work for you; pointing your own code at it just means you are the one asking.
Your first call, start to finish
// 1. Exchange client credentials for an access token
const tokenRes = await fetch("https://auth.smoo.ai/token", {
method: "POST",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body: new URLSearchParams({
grant_type: "client_credentials",
provider: "client_credentials",
client_id: process.env.SMOO_CLIENT_ID!,
client_secret: process.env.SMOO_CLIENT_SECRET!,
}),
});
const { access_token } = await tokenRes.json();
// 2. Call the API with the bearer token
const orgs = await fetch("https://api.smoo.ai/organizations", {
headers: { Authorization: `Bearer ${access_token}` },
}).then((r) => r.json());
console.log(orgs);Credentials come from Settings → API Keys in the dashboard, or smoo api keys create --type m2m.
Three ways in, same operations
Write every call yourself. Or stop writing them.
Nothing here is a different product — it is the same API at three levels of leverage. Pick the one that matches how much you want to type.
1 · Write the calls
The REST API
OAuth 2.0 client credentials, then plain HTTP. Every object in the platform — agents, CRM, knowledge, config, jobs, observability — is addressable, and the reference has a Try It button on every endpoint.
Open the reference2 · Type one command
The th CLI
A single static binary that speaks the same API — auth, CRM, knowledge, config, jobs, observability. No Docker, no Node, no SDK to keep in sync. Every command returns JSON.
Explore th3 · Describe the outcome
Your coding agent
Because every command is scriptable and returns JSON, an agent like Claude Code can act on your org directly: read state, make the change, verify the result. Install the plugin and it knows the commands.
See it driveThe top of the ladder
Hand the work to the agent you already have open.
Every th command is scriptable and returns JSON, so a coding agent can act on your org and check its own work — no SDK, no wrapper, no glue code from you.
you ▸ add [email protected] to the CRM and show me how many contacts we have
agent ▸ smoo api crm contacts create ./ada.json
{ "id": "cnt_9f3a...", "email": "[email protected]", "createdAt": "2026-07-03T..." }
agent ▸ smoo api crm contacts list --json | jq 'length'
128
agent ◂ Done — Ada Lovelace is contact cnt_9f3a. Your org now has 128 contacts.The same write, at every rung
One request, four languages and the CLI. org_id comes from the organizations list in the quickstart above.
const res = await fetch("https://api.smoo.ai/organizations/{org_id}/crm/contacts", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.SMOO_ACCESS_TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"firstName": "Ada",
"lastName": "Lovelace",
"email": "[email protected]",
"phone": "+15555550100"
}),
});
const data = await res.json();
console.log(data);Install once
brew install SmooAI/tools/th or the curl installer — a single static binary, no Docker and no Node. Then smoo auth login --m2m.
Teach your agent
Add the smooth plugin marketplace, then /plugin install smooth-agent@smooth so Claude Code knows the command surface.
Read the source
th is Rust, built on smooth-operator-core, the open-source agent engine. MIT — extend it or self-host it.
Everything else you will need
The rest of the shelf.
API reference
Every endpoint, with Try It
Guides
Auth, SDKs, config, and testing
SDKs & libraries
Client libraries for the API
smooth-operator
The agent service — protocol, retrieval, HITL, deploys
smooth-operator-core
The engine — the loop, tools, checkpoints, deny-policy
Smooth (th)
The deep-dive on the CLI and the operator it runs
LLM gateway
OpenAI-compatible — models, pricing, reference
Observability
Agent metrics, dashboards, and the ingest API
Audit logs
Hash-chained, tamper-evident event API
Open source
The agent engine underneath all of it, MIT