Developer quickstart
Portal and API drive the same tenant config. Contract: api.callsback.ai/openapi.json.
1. Create an API key
In the portal: Setup → API keys. Scopes: read:calls, write:config, integrations:manage, tools:execute, billing:read. Shown once.
2. curl
curl -sS https://api.callsback.ai/v1/integrations \ -H "Authorization: Bearer cbk_…"
3. Python
import requests
r = requests.get(
"https://api.callsback.ai/v1/integrations",
headers={"Authorization": "Bearer cbk_…"},
)
print(r.json())4. Node
const res = await fetch("https://api.callsback.ai/v1/integrations", {
headers: { Authorization: "Bearer cbk_…" },
});
console.log(await res.json());Webhooks
call.completed, obligation.created, refund.posted, machine.issue — signed with CallsBack-Signature, retried, replayable from the portal.
Developer seat (training)
Paid add-on ($149/mo): SparkLang + ModelScope for your tenant — .spark authoring, dry-run gate, trainer submit, and viewer. See pricing. Training lineage (base SHA, dataset sha256, expects, diff) appears on the portal Training tile. Staged adapters never load into serving without a separate owner token.
Sandbox
Tenant sandbox flag routes vendors to sandboxes and a simulated phone. Money writes stay off until the FasCard Block 5 gate.