Skip to main content
The Zo API lets you interact with your Zo from scripts, automations, or other apps. Authenticate with an access token from Settings > Advanced.

Quick start

  1. Go to Settings > Advanced and create an access token
  2. Copy it immediately — you won’t see it again
Your API key grants full access to your Zo. Keep it secret and never commit it to version control.

API reference

Base URL: https://api.zo.computer
Send a message to your Zo and get a response.Request
string
required
Your message to Zo
string
Continue an existing conversation
string
Override the default model (use /models/available to list options)
string
Override the active persona (use /personas/available to list options)
object
JSON Schema for structured output
boolean
default:"false"
Enable streaming mode. Returns Server-Sent Events (SSE) instead of JSON.
Response
string | object
Zo’s response. Returns an object if output_format was specified.
string
ID to continue this conversation in subsequent requests.
Streaming Response (when stream: true)Returns a Server-Sent Events stream with Content-Type: text/event-stream. Each event has the format:
Event Types:
  • FrontendModelResponse — Text chunk from the model (data.content)
  • End — Stream completed (includes data.output if output_format was specified)
  • Error — Error occurred (data.message)
The x-conversation-id response header contains the conversation ID for follow-up requests.
List all available models you can use with the /zo/ask endpoint. When authenticated with an API key, includes your BYOK (Bring Your Own Key) configurations.Response
array
List of available models
string
The value to pass to model_name in /zo/ask
string
Human-readable model name
string
Model provider (e.g., “Anthropic”, “OpenAI”, “Custom”)
string | null
Short description of the model’s capabilities
string | null
Either “fast” or “capable”, indicating the model’s speed/capability tradeoff
number | null
Maximum context window size in tokens
boolean
Whether this is a BYOK (Bring Your Own Key) model
List all configured personas. Use the returned id values with the persona_id parameter in /zo/ask to override the active persona.Response
array
List of configured personas
string
The value to pass to persona_id in /zo/ask
string
Display name for the persona
string
System prompt defining the persona’s behavior
string | null
AI model ID, or null for system default
string | null
Avatar image URL

Examples

Continuing a conversation

Use the returned conversation_id to continue the conversation:

Structured output

Use output_format to get responses as structured JSON. This is based on OpenAI’s Structured Outputs.

Streaming

Use stream: true to receive responses as Server-Sent Events:

Listing available models

Listing available personas