api.agntix.ai — internal service URLs are not exposed.
Every endpoint on this page requires either a Clerk-issued JWT (
Authorization: Bearer <token>) or
an organization API key (x-api-key: pk_…). Anonymous calls return 401 Unauthorized. See
Authentication for the full setup.Resources
Agents
Create and configure AI agents with custom personas, LLMs, tools, and voice pipelines.
Chat
Open chat sessions and stream multi-turn conversations with any agent.
Voice
List TTS voices, STT/TTS models, and start real-time voice sessions via LiveKit.
Tools
Build API webhook tools and function tools that agents can invoke at runtime.
Phone Numbers
Provision telephony numbers for inbound reception and outbound call campaigns.
API Keys
Create and revoke organization-scoped API keys for server-side integrations.
Conventions
| Convention | Detail |
|---|---|
| Base URL | https://api.agntix.ai |
| Versioning | Path-based (/v1/…, /v2/…). Major versions run side-by-side for ≥ 6 months. |
| Auth | x-api-key: pk_live_… or Authorization: Bearer <jwt> — see Authentication. |
| Encoding | UTF-8 JSON in and out, unless explicitly multipart. |
| Timestamps | RFC 3339 / ISO 8601 in UTC, e.g. 2026-04-28T11:42:11Z. |
| IDs | Prefixed (agnt_…, ses_…, msg_…) — opaque, never parse them. |
| Pagination | ?page=N&limit=N, max limit=100. See Pagination. |
| Errors | Consistent { error: { code, message, status } } envelope. See Error Codes. |
Interactive playground
Click any endpoint in the sidebar, fill in the fields, and press Send. The playground authenticates using the API key you enter at the top-right of the page (stored in browser local storage — never sent to us).How the spec stays in sync
The OpenAPI spec at/openapi/agntix.json is regenerated from the live gateway via scripts/sync-openapi.ts. Internal-only routes (admin, scheduler, billing infrastructure) are stripped at three independent layers before the spec is published.
Streaming
Message endpoints (POST /v1/chat/chat/sessions/{id}/messages) support Server-Sent Events. Pass "stream": true in the request body to receive incremental tokens. Each SSE event contains a partial delta string; the stream ends with data: [DONE].