Use Cosmic 1 through the API.
Use this site's OpenAI-compatible API at /v1 with the cosmic-1 model ID. The CLI signs in through your browser; scripts and SDKs use an API key.
Send a chat completion request.
Set the SDK base URL and API key, then call Chat Completions with model: cosmic-1.
Base URL
https://ultrac.io/v1
Auth
Authorization: Bearer ultrac_sk_...
Model
cosmic-1
curl https://ultrac.io/v1/chat/completions \
-H "Authorization: Bearer $ULTRAC_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "cosmic-1",
"messages": [{"role": "user", "content": "Analyze this incident."}]
}'Sign in with ultrac login and the CLI creates a key for your machine. For scripts and SDKs, create a key on the API keys page after your account is approved. Copy it when it is created; it is shown once. We store only a hash, and you can revoke the key at any time.
Set stream: true to receive server-sent events. Send tools to offer functions the model can call; use tool_choice to control tool selection. Calls are returned in tool_calls. The request reference includes a worked example.
For work that may outlast one request, create a task with POST /v1/runs. It returns a run ID before a worker starts the model. Follow the task over server-sent events. If the stream disconnects, reconnect with Last-Event-ID to receive missed events; the task keeps running. Event-stream requests remain subject to API rate limits. See Long-running tasks for the endpoints and a copyable loop.
What each plan allows.
Limits apply to the plan confirmed on your account. Free limits apply until a plan is confirmed. Each API key also has a per-minute limit. Additional keys do not increase the account limit. Requests that exceed a limit are rejected until the window resets.
Session, daily, and weekly limits apply together. The daily limit is the maximum for one day; multiplying it by seven does not increase your weekly allowance. A request is rejected when any applicable limit is reached.
| Plan | API requests / minute | API requests / day | Dashboard / minute | Per session | Per week |
|---|---|---|---|---|---|
| Free | 8 | 10 | 12 | 8 | 50 |
| Pro | 20 | 56 | 20 | 48 | 280 |
| Team(at 3 seats; the daily figure grows per seat) | 60 | 210 | 30 | 174 | 1,050 |
| Ultra | 80 | 360 | 40 | 300 | 1,800 |
A request over the limit answers 429 with a retry-after header. Full reference, including the request fields and error codes, is in the docs.