Skip to main content
Send a message to an AI model and have it drive an Orgo computer on your behalf. The model sees the screen, clicks, types, and runs shell commands until your request is satisfied, then returns the final assistant message. Use this endpoint as a drop-in replacement for openai.chat.completions.create.
The response is wire-compatible with OpenAI’s chat completions. Any SDK that points at https://www.orgo.ai/api/v1 works unchanged - the only required extension is passing a computer_id to bind the agent to a running VM.

Endpoint

Auth: Authorization: Bearer sk_live_...

Request

string
required
UUID of a running Orgo computer - returned as the id field by Create computer. The authenticated user must own the computer or be a member of its workspace.
array
required
Array of { role, content } objects. role must be user or assistant. The first message must have role user. When continuing a thread, only the new messages need to be passed - prior history is loaded from the thread.
string
default:"claude-sonnet-5"
Model identifier. One of claude-sonnet-5, claude-opus-5, claude-opus-4.8, claude-sonnet-4.6, or claude-opus-4.6. See Models below.
boolean
default:"false"
If true, responses are streamed as OpenAI-format Server-Sent Events. The connection stays open until the agent finishes or the request is cancelled.
string
Continue a previous multi-turn session. When set, the server loads the thread’s history, runs the agent with full context, and appends new messages on completion. If omitted, a new thread is created automatically and its ID returned in the response.
integer
default:"100"
Maximum number of agent steps (screenshot → action → observation) before the run stops. Increase for long, multi-phase workflows.

Headers

string
required
Bearer sk_live_... - your Orgo API key. Get one at orgo.ai/settings/api-keys.
string
Bring-your-own Anthropic key. When present, requests bill directly to your Anthropic account instead of drawing from your Orgo credit balance. Enterprise plans can omit this and still bypass metering.

Response

Non-streaming

string
Request identifier (chatcmpl-...). Also returned as the X-Request-Id response header.
string
Always chat.completion.
integer
Unix timestamp (seconds).
string
The model ID used for the request.
array
Single-element array containing the final assistant message.
object
Token counts for the full agent loop (all intermediate turns, not just the final message).
object
Orgo-specific metadata not in the OpenAI spec.

Response headers

Streaming

When stream: true, the server returns text/event-stream with standard OpenAI chat.completion.chunk events:
Only the model’s text output is streamed. Tool calls, screenshots, and intermediate reasoning happen server-side and are not exposed as deltas. The X-Thread-Id header is set on the initial response so clients can associate the stream with a thread before the first chunk arrives.

Examples

Streaming with raw SSE

Continuing a thread

Pass the thread_id returned by a previous response. The agent loads the prior conversation and picks up where it left off.

Bring your own Anthropic key

Pass x-anthropic-key to bill the request against your own Anthropic account. Orgo credits are not consumed and orgo.cost_cents is 0.

Example response

Models

Orgo’s OpenAI-compatible endpoint uses dotted model IDs (claude-sonnet-4.6). If you’re calling Anthropic’s native SDK directly in the Claude Computer Use guide, use the hyphenated form (claude-sonnet-4-6) - that’s Anthropic’s canonical identifier.

Billing

Requests are metered after the agent loop finishes. For non-BYOK, non-enterprise users, Orgo places a credit hold at request start and settles against actual token usage on completion. If the request errors before any tokens are consumed, the hold is refunded. Pricing matches Anthropic’s token rates plus a small platform margin; exact per-request cost is returned in orgo.cost_cents.

Errors

All error responses have the shape: