Agents API
Build AI-powered conversational and task agents. Create agents with custom tools and guardrails, deploy them to messaging and voice channels, run conversations programmatically, and access interaction history. Base path:/api/v1/agents
CRUD Operations
Create Agent
POST /api/v1/agents
Agent display name
Agent type. One of
custom, chatbot, router, voice, workflow. Optional — defaults to custom when omitted.Anthropic Claude model id. Orbit is Anthropic-only — supported values:
claude-opus-4-7, claude-sonnet-4-6, claude-haiku-4-5-20251001. Optional — defaults to claude-sonnet-4-6 when omitted.System instructions that define the agent’s behavior and personality. Optional.
Tool definitions the agent can invoke
Channel binding is not set at create time.
POST /api/v1/agents does not
accept a channels field — pass it and it is silently ignored. Bind an agent
to channels when you activate it via Deploy Agent.Guardrail configuration for output validation (input/output checks run inside Orbit’s agent runtime).
IDs of knowledge bases (Qdrant collections) to attach for RAG
LLM temperature (0.0–2.0)
Maximum tokens per LLM response
List Agents
GET /api/v1/agents
Retrieve all agents with cursor-based pagination.
Cursor for pagination
Results per page (max 100)
Filter by status:
draft, active, paused, archivedGet Agent
GET /api/v1/agents/{id}
Retrieve full configuration of an agent including tools, guardrails, and deployment status.
Update Agent
PUT /api/v1/agents/{id}
Update an agent’s configuration. Changes take effect for new conversations immediately.
Delete Agent
DELETE /api/v1/agents/{id}
Delete an agent. Active conversations are terminated gracefully.
Response: 204 No Content
Deploy
Deploy Agent
POST /api/v1/agents/{id}/deploy
Activate an agent and make it available on its configured channels. The agent must have a valid system_prompt and at least one channel configured.
Agent ID
The channel to deploy the agent to. One of
webhook, sms, whatsapp, voice, rcs.HTTPS callback URL for the
webhook channel. Must be a valid HTTPS URL; an empty string clears it.E.164 phone number to bind the agent to. Required when
channel is voice.Pause / Resume Agent
There are no dedicatedpause or resume endpoints. An agent’s lifecycle is
controlled through its status field via Update Agent.
To pause an agent, send PUT /api/v1/agents/{id} with { "status": "paused" }.
Existing conversations are completed but no new ones are started.
To resume a paused agent, send PUT /api/v1/agents/{id} with { "status": "active" }.
Valid status values are draft, active, paused, and archived.
Chat
Send Chat Message
POST /api/v1/agents/{id}/chat
Send a message to an agent and receive a response. Supports both stateless single-turn and stateful multi-turn conversations.
Agent ID
User message text
Existing conversation ID to append onto, for multi-turn. Omit to start a new conversation.
Optional conversation history to seed the agent, additive on top of any persisted state. Each item is
{ "role": "user" | "assistant" | "system", "content": string }. Use this to inject prior turns or context instead of a separate context field.Run the message in sandbox mode (does not persist the conversation).
Associate the conversation with a contact record.
Channel the message originates from (e.g.,
whatsapp, sms, web).Streaming is a separate endpoint —
POST /api/v1/agents/{id}/chat/stream — not a stream: true flag on this request. See Streaming Responses below.Streaming Responses
POST /api/v1/agents/{id}/chat/stream
Streaming uses a dedicated endpoint rather than a flag on the chat request. It accepts the same request body as POST /api/v1/agents/{id}/chat (message, conversationId, history, sandbox, contactId, channel) and returns the response as Server-Sent Events (SSE). Each chunk is a JSON object:
Conversations
List Conversations
GET /api/v1/agents/{id}/conversations
Retrieve conversation history for an agent.
Cursor for pagination
Results per page (max 100)
Filter:
active, completed, abandonedGet Conversation Messages
GET /api/v1/agents/{id}/conversations/{conversationId}/messages
Retrieve the full message history of a specific conversation.
Agent Statuses
| Status | Description |
|---|---|
draft | Agent created but not yet deployed |
active | Agent is live and accepting conversations |
paused | Agent is temporarily deactivated |
archived | Agent is retired and no longer deployable |
Examples
Node.js
A first-party Python SDK is on the roadmap but not yet shipped. Call the REST endpoints above with
requests / httpx / any HTTP client.