api container on port 8000. Everything the platform does — users, agents, credentials, numbers, calls, campaigns, documents — is available through it. There is no private admin surface.
There is no official Node.js, Python, or other client SDK. Integrate with plain HTTP — every example in this reference is
curl. GET /openapi.json on a running API works with any OpenAPI client generator if you want a typed client of your own.settings.API_V1_PREFIX, which defaults to /api/v1 (apps/api/app/config.py). Paths on this page already include it.
Two routes are declared on the app itself in apps/api/app/main.py and are not prefixed:
/health pings FerretDB. It always returns 200; read the body, not the status code.
Request format
SendContent-Type: application/json on every request with a body. Two routes take multipart/form-data instead, because they carry a file: POST /api/v1/campaign/upload and POST /api/v1/knowledge/upload.
Browse by resource
Prefer one flat list? See the Endpoints cheatsheet.
Related
- Authentication — tokens, headers, and roles
- Errors — status codes and error shapes
- WebSocket API — the media protocol
- Recipes — task-shaped recipes