Documentation
Omni API reference
Point your existing SDK at a different base URL, use your Omni API key and the model ID omni-3-pro — the request format stays the same.
Quickstart
1. Sign up
Create your account now. API key creation opens when the Alpha starts; you can then create a key from the Dashboard → API Keys page.
2. Set the base URL
Replace your existing OpenAI base URL and set the model to omni-3-pro. The request format stays the same.
3. Make your first call
Base URL
https://omniquasar.com/api/proxy/v1Request
curl -X POST https://omniquasar.com/api/proxy/v1/chat/completions \
-H "Authorization: Bearer omni_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"model": "omni-3-pro",
"messages": [{"role": "user", "content": "Hello!"}]
}'SDK examples
The same request in three common clients. Store your key in an environment variable such as OMNI_API_KEY rather than hard-coding it.
curl -X POST https://omniquasar.com/api/proxy/v1/chat/completions \
-H "Authorization: Bearer omni_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"model": "omni-3-pro",
"messages": [{"role": "user", "content": "Hello!"}]
}'Authentication
Every request needs an API key passed as a Bearer token in the Authorization header.
- API keys are prefixed with
omni_ - API key creation opens when the Alpha starts. Existing keys can be revoked from the Dashboard → API Keys page
- Never share or commit your API key to source control
Header
Authorization: Bearer omni_your_key_hereModels
| Model | ID | Status | Price |
|---|---|---|---|
| ModelOmni 3 Pro | IDomni-3-pro | StatusAlpha | PriceSee published rates below |
Credits & Billing
Usage is billed per token in USD. Each request is charged for its input tokens plus its output tokens (including reasoning), each at the per-token rate of the model you call. Your balance is shown as a prepaid USD value where $1 = 1 credit.
Formula: USD cost = input_tokens × input_rate + output_tokens × output_rate. Per-token rates depend on the model; the exact USD charged for your recent requests appears in the Developer Console usage history.
Published rates (omni-3-pro)
| Token type | Alpha price | Planned price after Alpha |
|---|---|---|
| Token typeInput tokens | Alpha price$1.00 / 1M tokens | Planned price after Alpha$2.00 / 1M tokens |
| Token typeOutput tokens (including reasoning) | Alpha price$4.00 / 1M tokens | Planned price after Alpha$8.00 / 1M tokens |
Omni 3 Pro is in Alpha. Alpha prices are half of the planned prices after Alpha. In exchange, we retain request and response data and may use it to train our models. See the Privacy Policy.
Plans
| Plan | Price | Usage Value |
|---|---|---|
| PlanFree | Price$0 | Usage Value$5.00 value (5 credits) one-time sign-up bonus |
| PlanCredit Top-Up | PriceFrom $10, one-time | Usage Value$1 = 1 credit · $10–$1,000 per top-up · never expire |
Cancelled or interrupted streaming requests
Once a request is dispatched to the model, cancelling it or dropping the connection mid-stream does not stop billing: the credits reserved for that request are charged and are not refunded. Only requests that fail due to platform-side errors are free of charge.
API Reference
POSThttps://omniquasar.com/api/proxy/v1/chat/completions
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
Parametermodel | Typestring | RequiredYes | Descriptionomni-3-pro |
Parametermessages | Typearray | RequiredYes | DescriptionArray of {role, content} objects — OpenAI format |
Parameterstream | Typeboolean | RequiredNo | DescriptionEnable SSE streaming (default: false) |
Parametermax_tokens | Typeinteger | RequiredNo | DescriptionMaximum tokens in response |
Parametertemperature | Typenumber | RequiredNo | DescriptionSampling temperature 0–2 |
Note: When streaming is enabled, the connection is kept alive during processing and the response content arrives after processing completes — not token-by-token. Works with any framework that supports the OpenAI chat completions API, including Kilo Code, Claude Code, OpenCode, and Cursor.
Non-streaming response · 200
{
"id": "chatcmpl-xxx",
"model": "omni-3-pro",
"choices": [{
"message": { "role": "assistant", "content": "Hello! How can I help?" },
"finish_reason": "stop"
}],
"usage": { "prompt_tokens": 10, "completion_tokens": 12 }
}Streaming request
curl -X POST https://omniquasar.com/api/proxy/v1/chat/completions \
-H "Authorization: Bearer omni_your_key_here" \
-H "Content-Type: application/json" \
-d '{"model":"omni-3-pro","messages":[{"role":"user","content":"Hello!"}],"stream":true}'Streaming response
data: {"choices":[{"delta":{"content":"Hello"}}]}
data: {"choices":[{"delta":{"content":"!"}}]}
data: [DONE]Error Codes
| HTTP Status | Meaning | Resolution |
|---|---|---|
| HTTP Status400 | MeaningUnknown model, or a malformed / truncated JSON body | ResolutionCheck the model name and that the request body is valid JSON |
| HTTP Status401 | MeaningMissing, invalid, or revoked API key | ResolutionCheck your key in Dashboard → API Keys |
| HTTP Status402 | MeaningInsufficient usage balance | ResolutionTop up usage value in the Dashboard |
| HTTP Status403 | MeaningThe requested model is not available to your account | ResolutionChoose one of the documented model IDs |
| HTTP Status404 | MeaningUnsupported endpoint | ResolutionOnly /v1/chat/completions, /v1/messages, and /v1/models are supported |
| HTTP Status413 | MeaningRequest body exceeds 10 MiB | ResolutionReduce the request size, then retry |
| HTTP Status429 | MeaningRate limit, or a retryable service error | ResolutionWait for the Retry-After duration, then retry the same request |
| HTTP Status500 | MeaningInternal server error | ResolutionRetry later; include the x-request-id if you contact support |
| HTTP Status503 | MeaningModel prices unavailable, or the service is not configured | ResolutionRetry after a short wait; contact support if it persists |
Retryable service errors (including 502 responses) are normalised to 429 so you only need one backoff path.
Every API response carries an x-request-id header. Include that value whenever you contact support — it is how we locate your exact request.
Debugging and retries
When contacting support, include:
- x-request-id
- timestamp
- model
- HTTP status code
- whether streaming was enabled
Retry policy
Retry 429 and 503 with exponential backoff. If a Retry-After header is present, wait at least that long before retrying.
Error response shape
{
"error": {
"message": "Insufficient credits",
"type": "invalid_request_error",
"param": null,
"code": "insufficient_credits"
}
}Ready to get started?
Sign up now. API key creation opens when the Alpha starts; then point your base URL at Omni API.
Found a mistake? support@omniquasar.com