# EmpirioLabs AI Docs # Welcome EmpirioLabs AI is a unified API gateway that gives you access to 73+ large language models, image generators, and multimodal models through a single set of credentials. Use OpenAI-compatible, Anthropic-compatible, or Responses-compatible request formats — no provider accounts or rewrites required. ## What you can do with the platform Route requests to models from OpenAI, Anthropic, Google, Meta, Mistral, Qwen, and more through one API. Send requests using the OpenAI Chat Completions, OpenAI Responses, or Anthropic Messages format. Top up your account from the Billing page and pay per-token, per-request, or per-unit depending on the model. Every API call is logged with token counts, cost, and latency so you can monitor spend in real time. ## Start here Sign up at [empiriolabs.ai](https://empiriolabs.ai/get-started), add credits, and generate an API key from the dashboard. Keys use the `sk-empiriolabs-` prefix. Follow the [Getting Started](/getting-started) guide to list available models and send a chat completion. Call `GET /v1/models` or visit the [Models page](https://empiriolabs.ai/models) to see pricing, regions, and supported parameters for every model. ## Documentation map Make your first API call in under a minute. Learn about API key format, bearer tokens, and error codes. Browse model categories, pricing units, and API status values. See how Chat Completions, Responses, and Messages endpoints map to provider formats. Explore the five REST endpoints that power the platform. Find the best path for onboarding, troubleshooting, and feedback. # Getting Started Use this guide to go from a new API key to a working chat completion in under a minute. ## Base URL ``` https://api.empiriolabs.ai ``` All endpoints live under the `/v1/` path prefix. The production host is `empirio-labs-main-production.up.railway.app` proxied through `api.empiriolabs.ai`. ## Prerequisites Before you begin, make sure you have: * an EmpirioLabs account at [empiriolabs.ai/get-started](https://empiriolabs.ai/get-started) * prepaid credits on your account (top up via the dashboard Billing page) * an API key from the dashboard (keys use the `sk-empiriolabs-` prefix) * a tool for making HTTPS requests such as cURL, Postman, or the OpenAI SDK ## Quickstart ```bash export EMPIRIOLABS_API_KEY="sk-empiriolabs-your_key_here" ``` ```bash curl "https://api.empiriolabs.ai/v1/models" \ -H "Authorization: Bearer $EMPIRIOLABS_API_KEY" ``` The response returns the full model catalog with pricing, context windows, regions, and parameter metadata for each model. Filter to only available models with `?available=true`. ```bash curl "https://api.empiriolabs.ai/v1/chat/completions" \ -H "Authorization: Bearer $EMPIRIOLABS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "qwen3-max", "messages": [ { "role": "user", "content": "What is EmpirioLabs AI?" } ] }' ``` A successful response returns a chat completion object with the model's reply, token usage counts, and cost metadata. Because the `/v1/chat/completions` endpoint is OpenAI-compatible, you can point the official OpenAI SDK at EmpirioLabs: ```python from openai import OpenAI client = OpenAI( api_key="sk-empiriolabs-your_key_here", base_url="https://api.empiriolabs.ai/v1", ) response = client.chat.completions.create( model="qwen3-max", messages=[{"role": "user", "content": "Hello from EmpirioLabs!"}], ) print(response.choices[0].message.content) ``` ## What to explore next * [Authentication](/authentication) — API key format, bearer tokens, and error codes * [Models and Pricing](/models-pricing) — browse the catalog and understand pricing units * [Compatibility](/compatibility) — use the Responses or Anthropic Messages endpoint instead * [API Reference](/api-reference) — full request and response schemas # Authentication All EmpirioLabs API requests must include a bearer token in the `Authorization` header. ## API key format API keys use the `sk-empiriolabs-` prefix. You can generate up to 50 API keys per account from the dashboard. ```http Authorization: Bearer sk-empiriolabs-... ``` ## Header format Include the header on every request: ```bash curl "https://api.empiriolabs.ai/v1/models" \ -H "Authorization: Bearer sk-empiriolabs-your_key_here" ``` ## Rate limits Each account starts with default rate limits: | Limit | Default | | ------------------- | ------------- | | Requests per minute | 50 RPM | | Tokens per minute | 2,000,000 TPM | If you need higher limits, email [support@empiriolabs.ai](mailto:support@empiriolabs.ai). See [Rate Limits and API Keys](/rate-limits-api-keys) for full details. ## Recommended practices * Generate separate API keys for production, staging, and development * Rotate keys on a regular schedule and immediately after suspected exposure * Store keys in a secret manager or deployment platform — never in client-side code, public repos, or logs * Delete unused keys from the dashboard promptly ## Test your credentials A quick way to verify your key is working: ```bash curl "https://api.empiriolabs.ai/v1/models" \ -H "Authorization: Bearer $EMPIRIOLABS_API_KEY" ``` A `200` response with the model catalog confirms your key is valid and your account has been set up correctly. ## Common authentication responses | Status code | Meaning | What to do | | ----------------------- | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | | `401 Unauthorized` | The token is missing, malformed, or not found | Verify the `Authorization: Bearer sk-empiriolabs-...` header format and that the key exists in your dashboard | | `402 Payment Required` | The account has insufficient credits | Top up credits on the dashboard Billing page | | `429 Too Many Requests` | Rate limit exceeded (50 RPM default) | Retry with exponential backoff and review your request volume | # Concepts The EmpirioLabs API is organized around a few core concepts that appear throughout the docs and API reference. ## Core concepts The AI models available through the platform. Each model has an ID, provider, pricing, supported parameters, context window, and an API status indicating availability. The catalog includes 73+ models across text, image, audio, and video modalities. The prepaid balance on your account. API usage debits credits based on the model's pricing — per token, per request, per image, per audio-second, or per video-second depending on the model type. Bearer tokens that authenticate your requests. Keys use the `sk-empiriolabs-` prefix. Each account can hold up to 50 keys (adjustable by contacting support). Per-account request and token throughput caps. Defaults are 50 RPM and 2,000,000 TPM. Contact support if you need higher limits for production workloads. ## How it works 1. **Sign up and add credits.** Create an account, add funds from the Billing page, and generate an API key. 2. **Browse the model catalog.** Call `GET /v1/models` to see every available model with its pricing, region, context window, and supported parameters. 3. **Send requests using familiar formats.** Use `/v1/chat/completions` (OpenAI-compatible), `/v1/responses` (OpenAI Responses-compatible), or `/v1/messages` (Anthropic-compatible) to interact with any model. 4. **Monitor usage and spend.** Each request is logged with token counts, cost, and latency. Check the dashboard for real-time usage data. ## Compatibility layer EmpirioLabs does not require you to learn a new API format. The platform exposes endpoints that match the OpenAI and Anthropic request and response shapes, so you can: * Drop in the OpenAI Python/Node SDK by changing `base_url` and `api_key` * Use the Anthropic SDK by pointing it at the EmpirioLabs `/v1/messages` endpoint * Switch between models from different providers without changing your integration code See [Compatibility](/compatibility) for endpoint details and examples. ## Key design principles * **Unified access** — one API key, one base URL, 73+ models from multiple providers * **Prepaid credits** — no surprise invoices; top up when you need more capacity * **Provider-compatible formats** — existing OpenAI and Anthropic code works with minimal changes * **Transparent pricing** — every model lists its pricing units and rates in the catalog API # Models and Pricing EmpirioLabs AI exposes a canonical model catalog through the API. The same catalog powers the [Models page](https://empiriolabs.ai/models) and [Pricing page](https://empiriolabs.ai/pricing) on the website. ## List models ```bash curl "https://api.empiriolabs.ai/v1/models?available=true" \ -H "Authorization: Bearer $EMPIRIOLABS_API_KEY" ``` The response includes each model's `id`, display name, provider, modalities, capabilities, supported parameters (with types, defaults, min/max), context window, and pricing. ## Retrieve one model ```bash curl "https://api.empiriolabs.ai/v1/models/seed-2-0-pro" \ -H "Authorization: Bearer $EMPIRIOLABS_API_KEY" ``` The detail response includes the full `supported_parameters` array, `capabilities` object, `default_params`, and pricing breakdown. ## Model categories | Category | Examples | Typical pricing unit | | -------------------- | -------------------------------------------------------------- | -------------------------- | | **Text / Chat** | Qwen3-Max, Seed 2.0 Pro, Mistral Medium 3.1, Nova Pro | Per token (input + output) | | **Reasoning** | Qwen3-Max-Thinking, Magistral Medium, Seed 2.0 Pro (reasoning) | Per token (input + output) | | **Image generation** | Qwen Image 2.0, Seedream 5.0 | Per image | | **Video generation** | Kling, Hunyuan Video, Wan 2.7 | Per video-second | | **Audio / Speech** | Deepgram Nova 3, GLM TTS | Per audio-second | | **Multimodal** | Qwen3.5 Flash, Nova Lite 2, MIMO v2.5 Pro | Per token | | **Embedding** | Nomic Embed, Nomic Embed v2 | Per token | | **Code** | Seed 2.0 Code | Per token | ## Pricing units Models are not all token-priced. The catalog may use any of these billing units: * **token** — charged per input token and per output token (most text/chat models) * **request** — flat rate per API call * **image** — charged per generated image * **video-second** — charged per second of generated video * **audio-second** — charged per second of generated or transcribed audio * **tool-call** — charged per tool invocation * **custom** — model-specific billing (see the model's pricing array) Always call `GET /v1/models` or `GET /v1/models/{modelId}` for current pricing metadata before estimating cost. ## Discount labels Discount labels such as `Save 10%` reflect the discount against the comparable standard API rate from the original provider, when a standard rate is available. These discounts are applied automatically — no coupon or special plan required. ## Regions Each model's `served_from` field indicates the region or provider infrastructure used to serve requests. This can help with latency planning and data residency requirements. # Billing and Credits EmpirioLabs AI uses a prepaid balance system. You add funds in USD and API usage debits your balance based on per-model pricing. ## How credits work 1. **Top up** — add funds through the dashboard Billing page. 2. **Use the API** — each request debits credits based on the model's pricing (tokens, images, seconds, etc.). 3. **Monitor** — check your balance and usage history on the dashboard at any time. If your account runs out of credits, API requests will return a `402 Payment Required` / `insufficient_credits` error until you add more. ## Top up credits Use the dashboard **Billing** page to add funds. If you top up 10 USD, your account balance increases by 10 USD before any volume bonus. You can add any amount between 5 USD and 2,500 USD per transaction. Supported payment methods include: * Credit and debit cards * Apple Pay * Google Pay * PayPal * Cash App * Crypto International payments are accepted and automatically converted to USD at the current exchange rate. ### Volume bonuses | Top-up amount | Bonus | | ------------- | ---------- | | 1,000 USD+ | +5% bonus | | 2,000 USD+ | +10% bonus | For example, adding 1,000 USD gives your account a 1,050 USD balance increase. You may see "WHOP\*EMPIRIO" on your card statement. ## Auto top-up Auto top-up automatically purchases more credits when your balance drops below a threshold you configure. **Requirements:** * A saved card on file (added via the Billing page) * Minimum threshold: 5 USD * Minimum top-up amount: 2x your threshold. For example, a 10 USD threshold requires a top-up amount of at least 20 USD. Only card payment methods support automatic off-session billing. PayPal, Apple Pay, and other methods require manual checkout. When auto top-up succeeds or fails, EmpirioLabs sends a confirmation email. ## Receipts * **Payment confirmation** — you receive an email receipt for every successful credit purchase. * **Usage records** — per-request cost records are available in the dashboard Usage Logs page. * **Statement descriptor** — charges appear as "WHOP\*EMPIRIO" on your bank statement. # Rate Limits and API Keys Each account receives default production limits and can request higher limits as usage grows. ## Default limits | Limit | Default | | -------------------- | ------------- | | Requests per minute | 50 RPM | | Tokens per minute | 2,000,000 TPM | | API keys per account | 50 | Email [support@empiriolabs.ai](mailto:support@empiriolabs.ai) if you need higher limits for production workloads. ## API key format API keys use the `sk-empiriolabs-` prefix: ```http Authorization: Bearer sk-empiriolabs-... ``` Keep API keys server-side only. Never expose them in browser code, mobile apps, public repos, or client logs. ## Managing API keys * Generate new keys from the dashboard * Each account can hold up to **50 API keys** (adjustable — contact support) * Delete unused keys promptly to reduce your attack surface * Use separate keys for production, staging, and development to isolate environments ## Rate limit behavior When you exceed a rate limit, the API returns a `429 Too Many Requests` response. Use exponential backoff with jitter when retrying. Rate limits are applied per account, not per API key. All keys on the same account share the same RPM and TPM budget. ## Requesting higher limits If your workload requires more than the default 50 RPM or 2M TPM, email [support@empiriolabs.ai](mailto:support@empiriolabs.ai) with: * Your account email or account ID * The limits you need and why * Expected traffic patterns (peak RPM, average request size) ## Common errors | Code | Meaning | | ---------------------- | ------------------------------------------------------------------ | | `missing_api_key` | No bearer token was provided. | | `invalid_api_key` | The token is malformed, inactive, expired, or not found. | | `insufficient_credits` | The account needs more credits before making API calls. | | `model_not_found` | The requested model does not exist or is not available. | | `rate_limit_exceeded` | The account has exceeded its RPM or TPM limit. Retry with backoff. | | `model_unavailable` | The model's worker is temporarily offline. Retry shortly. | | `upstream_error` | The model provider returned an error. | # OpenAI and Anthropic Compatibility EmpirioLabs AI exposes compatibility endpoints so you can adopt the platform without rewriting existing integrations. Point your OpenAI or Anthropic SDK at the EmpirioLabs base URL and start making requests immediately. ## OpenAI-compatible Chat Completions `POST /v1/chat/completions` Accepts the same request body as the OpenAI Chat Completions API. Supports `messages`, `model`, `stream`, `temperature`, `max_tokens`, and other standard parameters. ```bash curl "https://api.empiriolabs.ai/v1/chat/completions" \ -H "Authorization: Bearer $EMPIRIOLABS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "qwen3-max", "messages": [{ "role": "user", "content": "Summarize this in one sentence." }] }' ``` **Using the OpenAI Python SDK:** ```python from openai import OpenAI client = OpenAI( api_key="sk-empiriolabs-your_key_here", base_url="https://api.empiriolabs.ai/v1", ) response = client.chat.completions.create( model="qwen3-max", messages=[{"role": "user", "content": "Hello!"}], ) ``` ## OpenAI Responses-compatible endpoint `POST /v1/responses` Accepts the same request body as the OpenAI Responses API. Supports `model`, `input`, `instructions`, and related fields. ```bash curl "https://api.empiriolabs.ai/v1/responses" \ -H "Authorization: Bearer $EMPIRIOLABS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "seed-2-0-pro", "input": "Write a launch checklist." }' ``` ## Anthropic-style Messages endpoint `POST /v1/messages` Accepts the same request body as the Anthropic Messages API. Requires `model`, `messages`, and `max_tokens`. ```bash curl "https://api.empiriolabs.ai/v1/messages" \ -H "Authorization: Bearer $EMPIRIOLABS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "mistral-medium-3-1", "messages": [{ "role": "user", "content": "Hello" }], "max_tokens": 256 }' ``` ## SDK configuration cheat sheet | SDK | Configuration | | ---------------- | ------------------------------------------------------------------------------------------ | | OpenAI Python | `OpenAI(api_key="sk-empiriolabs-...", base_url="https://api.empiriolabs.ai/v1")` | | OpenAI Node | `new OpenAI({ apiKey: "sk-empiriolabs-...", baseURL: "https://api.empiriolabs.ai/v1" })` | | Anthropic Python | Point `base_url` to `https://api.empiriolabs.ai` and set `api_key` to your EmpirioLabs key | | cURL | Set `Authorization: Bearer sk-empiriolabs-...` and use the EmpirioLabs base URL | ## Model support Not every model supports every endpoint format. Use `GET /v1/models/{modelId}` to check a specific model's `capabilities` (streaming, system prompt, web search, images, video) and `supported_parameters` before integrating. # Providers and Models The EmpirioLabs gateway exposes models from many third-party providers behind a single OpenAI-compatible API. The cards below link to per-provider pages with all of that provider's models, parameters, and pricing. 14 models 7 models 7 models 1 model 5 models 3 models 4 models 1 model 2 models 2 models 1 model 1 model 5 models 1 model 1 model 7 models 2 models 1 model 2 models 2 models 2 models 1 model 1 model 5 models 1 model # Alibaba Cloud ## Models from Alibaba Cloud Video model offering Text-to-Video, Image-to-Video, Reference-to-Video, and Video Edit modes with high-fidelity, motion-smooth output. Unified image generation and editing model with class-leading complex Chinese/English text rendering, realistic textures, and multi-image fusion. 256K-context flagship with major improvements in reasoning, instruction following, and multilingual support, plus higher coding/math accuracy. Preview release with major gains over the 2.5 series in Chinese-English understanding, complex instructions, multilingual ability, and tool use. Reasoning model with adaptive tool use (search, memory, code interpreter) and test-time scaling for higher accuracy on complex tasks. Vision-language model with hybrid linear-attention plus sparse MoE, 1M context, and fast multimodal text/image/video inference. Cost-efficient omni-modal model handling text, image, audio, and video, with up to 3 hours of audio and 1 hour of video across 90+ languages. Flagship omni-modal model for text, image, audio, and video. 3h audio, 1h video, 90+ input and 30+ output languages, 55 voice timbres. Multimodal model with hybrid architecture for efficient deep thinking and visual understanding across text, image, and video on a 1M context. Largest preview variant in the 3.6 series (text-only): improved coding agent execution, stronger front-end skills, and broader long-tail knowledge. Vision-language model with major upgrades over 3.5: agentic and front-end coding, multimodal recognition, OCR, and object localization. Multimodal video generation model for cinematic, multi-shot stories with native audio-visual sync (lip-sync, dialogue, music, SFX). Multimodal video model supporting T2V, I2V, video editing, and reference-to-video, with high-fidelity output from text, image, or video inputs. Image generation and editing companion model: text-to-image, bounding-box edits, and cohesive image sets, with up to 4K output on Pro. # HappyHorse-1.0 **Provider:** [Alibaba Cloud](/providers/alibaba)\ **Category:** Video generation\ **Endpoint:** `POST /v1/videos/generations`\ **Context window:** —\ **Served from:** Singapore Video model offering Text-to-Video, Image-to-Video, Reference-to-Video, and Video Edit modes with high-fidelity, motion-smooth output. ## At a glance | Field | Value | | ----------------- | -------------------- | | Model id | `happyhorse-1-0` | | Input modalities | text | | Output modalities | video | | Context window | — | | Region | Singapore | | Features | audio\_sync, editing | | New | Yes | | Native inference | No | ## Pricing | Charge | Spec | Rate | | --------------- | ---------- | ------- | | All Modes 720P | per second | \$0.10 | | All Modes 1080P | per second | \$0.150 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/videos/generations \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "happyhorse-1-0", "prompt": "sunrise over the ocean", "duration": 6}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/happyhorse-1-0`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Qwen-Image-2.0 **Provider:** [Alibaba Cloud](/providers/alibaba)\ **Category:** Image generation\ **Endpoint:** `POST /v1/images/generations`\ **Context window:** —\ **Served from:** Singapore Unified image generation and editing model with class-leading complex Chinese/English text rendering, realistic textures, and multi-image fusion. ## At a glance | Field | Value | | ----------------- | --------------------------------------------- | | Model id | `qwen-image-2-0` | | Input modalities | text, image | | Output modalities | image | | Context window | — | | Region | Singapore | | Features | text\_rendering, image\_editing, multi\_image | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | -------- | --------- | -------------------- | | Standard | per image | $0.0322 (was $0.035) | | Pro | per image | $0.069 (was $0.075) | ## Example request ```bash curl https://api.empiriolabs.ai/v1/images/generations \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "qwen-image-2-0", "prompt": "a misty forest at dawn", "size": "1024x1024"}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/qwen-image-2-0`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Qwen3-Max **Provider:** [Alibaba Cloud](/providers/alibaba)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** 256K\ **Served from:** Singapore 256K-context flagship with major improvements in reasoning, instruction following, and multilingual support, plus higher coding/math accuracy. ## At a glance | Field | Value | | ----------------- | ----------------------------------------- | | Model id | `qwen3-max` | | Input modalities | text | | Output modalities | text | | Context window | 256K | | Region | Singapore | | Features | reasoning, code\_interpreter, web\_search | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ---------- | ------------------------ | ------------------- | | Input | ≤32K, per 1M tokens | $1.08 (was $1.20) | | Input | 32K-128K, per 1M tokens | $2.16 (was $2.40) | | Input | 128K-256K, per 1M tokens | $2.70 (was $3.00) | | Output | ≤32K, per 1M tokens | $5.52 (was $6.00) | | Output | 32K-128K, per 1M tokens | $11.04 (was $12.00) | | Output | 128K-256K, per 1M tokens | $13.80 (was $15.00) | | Web Search | per request | \$0.015 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "qwen3-max", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/qwen3-max`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Qwen3-Max-Preview **Provider:** [Alibaba Cloud](/providers/alibaba)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** 256K\ **Served from:** Singapore Preview release with major gains over the 2.5 series in Chinese-English understanding, complex instructions, multilingual ability, and tool use. ## At a glance | Field | Value | | ----------------- | ----------------------------------------- | | Model id | `qwen3-max-preview` | | Input modalities | text | | Output modalities | text | | Context window | 256K | | Region | Singapore | | Features | reasoning, code\_interpreter, web\_search | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ------ | ------------------------ | ------------------- | | Input | ≤32K, per 1M tokens | $1.08 (was $1.20) | | Input | 32K-128K, per 1M tokens | $2.16 (was $2.40) | | Input | 128K-256K, per 1M tokens | $2.70 (was $3.00) | | Output | ≤32K, per 1M tokens | $4.80 (was $6.00) | | Output | 32K-128K, per 1M tokens | $9.60 (was $12.00) | | Output | 128K-256K, per 1M tokens | $12.00 (was $15.00) | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "qwen3-max-preview", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/qwen3-max-preview`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Qwen3-Max-Thinking **Provider:** [Alibaba Cloud](/providers/alibaba)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** 256K\ **Served from:** Singapore Reasoning model with adaptive tool use (search, memory, code interpreter) and test-time scaling for higher accuracy on complex tasks. ## At a glance | Field | Value | | ----------------- | --------------------------------------------------- | | Model id | `qwen3-max-thinking` | | Input modalities | text | | Output modalities | text | | Context window | 256K | | Region | Singapore | | Features | reasoning, code\_interpreter, web\_search, thinking | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ------ | ------------------------ | ------------------- | | Input | ≤32K, per 1M tokens | $1.08 (was $1.20) | | Input | 32K-128K, per 1M tokens | $2.16 (was $2.40) | | Input | 128K-256K, per 1M tokens | $2.70 (was $3.00) | | Output | ≤32K, per 1M tokens | $5.52 (was $6.00) | | Output | 32K-128K, per 1M tokens | $11.04 (was $12.00) | | Output | 128K-256K, per 1M tokens | $13.80 (was $15.00) | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "qwen3-max-thinking", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/qwen3-max-thinking`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Qwen3.5-Flash **Provider:** [Alibaba Cloud](/providers/alibaba)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** 1M\ **Served from:** Singapore Vision-language model with hybrid linear-attention plus sparse MoE, 1M context, and fast multimodal text/image/video inference. ## At a glance | Field | Value | | ----------------- | --------------------------------------------------------- | | Model id | `qwen3-5-flash` | | Input modalities | text, image, video | | Output modalities | text | | Context window | 1M | | Region | Singapore | | Features | vision, web\_search, code\_interpreter, function\_calling | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ------------ | ------------- | ------------------ | | Input | per 1M tokens | $0.090 (was $0.10) | | Output | per 1M tokens | $0.368 (was $0.40) | | Web Search | per call | \$0.015 | | Image Search | per call | \$0.012 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "qwen3-5-flash", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/qwen3-5-flash`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Qwen3.5-Omni-Flash **Provider:** [Alibaba Cloud](/providers/alibaba)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** 256K\ **Served from:** Singapore Cost-efficient omni-modal model handling text, image, audio, and video, with up to 3 hours of audio and 1 hour of video across 90+ languages. ## At a glance | Field | Value | | ----------------- | ------------------------------------------- | | Model id | `qwen3-5-omni-flash` | | Input modalities | text, image, video, audio | | Output modalities | text, audio | | Context window | 256K | | Region | Singapore | | Features | vision, audio\_in, audio\_out, multilingual | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ------------------------ | ------------- | ------- | | Input (text/image/video) | per 1M tokens | \$0.40 | | Input (audio) | per 1M tokens | \$3.00 | | Output (text only) | per 1M tokens | \$2.20 | | Output (text + audio) | per 1M tokens | \$11.90 | | Web Search | per request | \$0.015 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "qwen3-5-omni-flash", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/qwen3-5-omni-flash`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Qwen3.5-Omni-Plus **Provider:** [Alibaba Cloud](/providers/alibaba)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** 256K\ **Served from:** Singapore Flagship omni-modal model for text, image, audio, and video. 3h audio, 1h video, 90+ input and 30+ output languages, 55 voice timbres. ## At a glance | Field | Value | | ----------------- | ------------------------------------------- | | Model id | `qwen3-5-omni-plus` | | Input modalities | text, image, video, audio | | Output modalities | text, audio | | Context window | 256K | | Region | Singapore | | Features | vision, audio\_in, audio\_out, multilingual | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ------------------------ | ------------- | ------- | | Input (text/image/video) | per 1M tokens | \$1.40 | | Input (audio) | per 1M tokens | \$11.00 | | Output (text only) | per 1M tokens | \$8.30 | | Output (text + audio) | per 1M tokens | \$44.00 | | Web Search | per request | \$0.015 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "qwen3-5-omni-plus", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/qwen3-5-omni-plus`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Qwen3.5-Plus **Provider:** [Alibaba Cloud](/providers/alibaba)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** 1M\ **Served from:** Singapore Multimodal model with hybrid architecture for efficient deep thinking and visual understanding across text, image, and video on a 1M context. ## At a glance | Field | Value | | ----------------- | -------------------------------------------------------------------- | | Model id | `qwen3-5-plus` | | Input modalities | text, image, video | | Output modalities | text | | Context window | 1M | | Region | Singapore | | Features | vision, web\_search, code\_interpreter, function\_calling, reasoning | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ---------- | ---------------------- | ----------------- | | Input | ≤256K, per 1M tokens | $0.36 (was $0.40) | | Input | 256K-1M, per 1M tokens | $1.08 (was $1.20) | | Output | ≤256K, per 1M tokens | $2.21 (was $2.40) | | Output | 256K-1M, per 1M tokens | $6.62 (was $7.20) | | Web Search | per call | \$0.015 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "qwen3-5-plus", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/qwen3-5-plus`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Qwen3.6-Max-Preview **Provider:** [Alibaba Cloud](/providers/alibaba)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** 256K\ **Served from:** Singapore Largest preview variant in the 3.6 series (text-only): improved coding agent execution, stronger front-end skills, and broader long-tail knowledge. ## At a glance | Field | Value | | ----------------- | --------------------------------------- | | Model id | `qwen3-6-max-preview` | | Input modalities | text | | Output modalities | text | | Context window | 256K | | Region | Singapore | | Features | reasoning, agentic\_coding, web\_search | | New | Yes | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ------ | -------------------------------- | ------- | | Input | ≤ 128K context, per 1M tokens | \$1.31 | | Output | ≤ 128K context, per 1M tokens | \$7.88 | | Input | 128K–256K context, per 1M tokens | \$1.97 | | Output | 128K–256K context, per 1M tokens | \$11.82 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "qwen3-6-max-preview", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/qwen3-6-max-preview`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Qwen3.6-Plus **Provider:** [Alibaba Cloud](/providers/alibaba)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** 1M\ **Served from:** Singapore Vision-language model with major upgrades over 3.5: agentic and front-end coding, multimodal recognition, OCR, and object localization. ## At a glance | Field | Value | | ----------------- | ------------------------------------ | | Model id | `qwen3-6-plus` | | Input modalities | text, image | | Output modalities | text | | Context window | 1M | | Region | Singapore | | Features | vision, web\_search, agentic\_coding | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ---------- | ---------------------- | ------- | | Input | ≤256K, per 1M tokens | \$0.50 | | Input | 256K-1M, per 1M tokens | \$2.00 | | Output | ≤256K, per 1M tokens | \$3.00 | | Output | 256K-1M, per 1M tokens | \$6.00 | | Web Search | per call | \$0.026 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "qwen3-6-plus", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/qwen3-6-plus`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Wan-2.6 **Provider:** [Alibaba Cloud](/providers/alibaba)\ **Category:** Video generation\ **Endpoint:** `POST /v1/videos/generations`\ **Context window:** —\ **Served from:** Singapore Multimodal video generation model for cinematic, multi-shot stories with native audio-visual sync (lip-sync, dialogue, music, SFX). ## At a glance | Field | Value | | ----------------- | ------------------------------------------------ | | Model id | `wan-2-6` | | Input modalities | text | | Output modalities | video | | Context window | — | | Region | Singapore | | Features | audio\_sync, character\_consistency, multi\_shot | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ---------------------- | ---------- | ---------------------- | | Standard 720P | per second | $0.09 (was $0.10) | | Standard 1080P | per second | $0.138 (was $0.15) | | Flash 720P (audio) | per second | $0.045 (was $0.050) | | Flash 720P (no audio) | per second | $0.0225 (was $0.0250) | | Flash 1080P (audio) | per second | $0.069 (was $0.0750) | | Flash 1080P (no audio) | per second | $0.0345 (was $0.03750) | ## Example request ```bash curl https://api.empiriolabs.ai/v1/videos/generations \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "wan-2-6", "prompt": "sunrise over the ocean", "duration": 6}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/wan-2-6`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Wan-2.7 **Provider:** [Alibaba Cloud](/providers/alibaba)\ **Category:** Video generation\ **Endpoint:** `POST /v1/videos/generations`\ **Context window:** —\ **Served from:** Singapore Multimodal video model supporting T2V, I2V, video editing, and reference-to-video, with high-fidelity output from text, image, or video inputs. ## At a glance | Field | Value | | ----------------- | ------------------------------------------------ | | Model id | `wan-2-7` | | Input modalities | text | | Output modalities | video | | Context window | — | | Region | Singapore | | Features | audio\_sync, character\_consistency, multi\_shot | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | --------------- | ---------- | ------- | | All Modes 720P | per second | \$0.10 | | All Modes 1080P | per second | \$0.150 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/videos/generations \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "wan-2-7", "prompt": "sunrise over the ocean", "duration": 6}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/wan-2-7`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Wan2.7-Image **Provider:** [Alibaba Cloud](/providers/alibaba)\ **Category:** Image generation\ **Endpoint:** `POST /v1/images/generations`\ **Context window:** —\ **Served from:** Singapore Image generation and editing companion model: text-to-image, bounding-box edits, and cohesive image sets, with up to 4K output on Pro. ## At a glance | Field | Value | | ----------------- | ------------------ | | Model id | `wan2-7-image` | | Input modalities | text | | Output modalities | image | | Context window | — | | Region | Singapore | | Features | image\_editing, 4k | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | -------- | --------- | ------- | | Standard | per image | \$0.030 | | Pro | per image | \$0.075 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/images/generations \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "wan2-7-image", "prompt": "a misty forest at dawn", "size": "1024x1024"}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/wan2-7-image`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Amazon ## Models from Amazon Image generation and editing model creating and modifying images from text or image inputs, with inpainting, virtual try-on, and style controls. Video generation model producing up to 2-minute multi-shot videos from text and optional image prompts with improved quality and consistency. Low-cost multimodal foundation model for text, images, and video on a 300K context (up to ~30 min video), tuned for speed and affordability. Fast, cost-effective multimodal reasoning model for text, images, documents, and video on a 1M context (long docs and ~90 min clips). Text-only foundation model tuned for ultra-low latency and cost on 128K context. Strong for summarization, translation, and chat with 44% cache discount. Most capable model in the family. Multimodal text/image/video on a 1M context with chain-of-thought reasoning across tools and data sources. Multimodal foundation model balancing accuracy, speed, and cost for text, images, and video on 300K context (up to ~30 min video). # Amazon-Nova-Canvas **Provider:** [Amazon](/providers/amazon)\ **Category:** Image generation\ **Endpoint:** `POST /v1/images/generations`\ **Context window:** —\ **Served from:** — Image generation and editing model creating and modifying images from text or image inputs, with inpainting, virtual try-on, and style controls. ## At a glance | Field | Value | | ----------------- | ------------------------------- | | Model id | `amazon-nova-canvas` | | Input modalities | text | | Output modalities | image | | Context window | — | | Region | — | | Features | inpainting, background\_removal | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | --------------------------- | --------- | ------ | | Small Standard (≤1024×1024) | per image | \$0.12 | | Small Premium (≤1024×1024) | per image | \$0.18 | | Large Standard (≤2048×2048) | per image | \$0.18 | | Large Premium (≤2048×2048) | per image | \$0.24 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/images/generations \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "amazon-nova-canvas", "prompt": "a misty forest at dawn", "size": "1024x1024"}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/amazon-nova-canvas`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Amazon-Nova-Reel-1.1 **Provider:** [Amazon](/providers/amazon)\ **Category:** Video generation\ **Endpoint:** `POST /v1/videos/generations`\ **Context window:** —\ **Served from:** — Video generation model producing up to 2-minute multi-shot videos from text and optional image prompts with improved quality and consistency. ## At a glance | Field | Value | | ----------------- | ---------------------- | | Model id | `amazon-nova-reel-1-1` | | Input modalities | text | | Output modalities | video | | Context window | — | | Region | — | | Features | camera\_control | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ---------- | ----- | ------ | | Per Second | fixed | \$0.14 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/videos/generations \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "amazon-nova-reel-1-1", "prompt": "sunrise over the ocean", "duration": 6}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/amazon-nova-reel-1-1`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Nova-Lite-1.0 **Provider:** [Amazon](/providers/amazon)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** 300K\ **Served from:** — Low-cost multimodal foundation model for text, images, and video on a 300K context (up to \~30 min video), tuned for speed and affordability. ## At a glance | Field | Value | | ----------------- | ------------------ | | Model id | `nova-lite-1-0` | | Input modalities | text, image, video | | Output modalities | text | | Context window | 300K | | Region | — | | Features | vision | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | -------------- | -------------- | ------- | | Input (text) | per 1M tokens | \$0.069 | | Output (text) | per 1M tokens | \$0.28 | | Cache Discount | on cached chat | 44% off | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "nova-lite-1-0", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/nova-lite-1-0`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Nova-Lite-2 **Provider:** [Amazon](/providers/amazon)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** 1M\ **Served from:** — Fast, cost-effective multimodal reasoning model for text, images, documents, and video on a 1M context (long docs and \~90 min clips). ## At a glance | Field | Value | | ----------------- | ------------------ | | Model id | `nova-lite-2` | | Input modalities | text, image, video | | Output modalities | text | | Context window | 1M | | Region | — | | Features | vision | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | -------------- | -------------- | ------- | | Input (text) | per 1M tokens | \$0.38 | | Output (text) | per 1M tokens | \$3.16 | | Cache Discount | on cached chat | 44% off | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "nova-lite-2", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/nova-lite-2`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Nova-Micro-1.0 **Provider:** [Amazon](/providers/amazon)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** 128K\ **Served from:** — Text-only foundation model tuned for ultra-low latency and cost on 128K context. Strong for summarization, translation, and chat with 44% cache discount. ## At a glance | Field | Value | | ----------------- | ---------------- | | Model id | `nova-micro-1-0` | | Input modalities | text | | Output modalities | text | | Context window | 128K | | Region | — | | Features | fast | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | -------------- | -------------- | ------- | | Input (text) | per 1M tokens | \$0.040 | | Output (text) | per 1M tokens | \$0.16 | | Cache Discount | on cached chat | 44% off | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "nova-micro-1-0", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/nova-micro-1-0`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Nova-Premier-1.0 **Provider:** [Amazon](/providers/amazon)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** 1M\ **Served from:** — Most capable model in the family. Multimodal text/image/video on a 1M context with chain-of-thought reasoning across tools and data sources. ## At a glance | Field | Value | | ----------------- | ------------------ | | Model id | `nova-premier-1-0` | | Input modalities | text, image, video | | Output modalities | text | | Context window | 1M | | Region | — | | Features | vision, reasoning | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | -------------- | -------------- | ------- | | Input (text) | per 1M tokens | \$3.00 | | Output (text) | per 1M tokens | \$15.00 | | Cache Discount | on cached chat | 44% off | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "nova-premier-1-0", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/nova-premier-1-0`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Nova-Pro-1.0 **Provider:** [Amazon](/providers/amazon)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** 300K\ **Served from:** — Multimodal foundation model balancing accuracy, speed, and cost for text, images, and video on 300K context (up to \~30 min video). ## At a glance | Field | Value | | ----------------- | ------------------ | | Model id | `nova-pro-1-0` | | Input modalities | text, image, video | | Output modalities | text | | Context window | 300K | | Region | — | | Features | vision | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ------------------------ | ------------- | -------- | | Standard Input | per 1k tokens | \$0.0024 | | Standard Output | per 1k tokens | \$0.0096 | | Latency Optimized Input | per 1k tokens | \$0.0030 | | Latency Optimized Output | per 1k tokens | \$0.012 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "nova-pro-1-0", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/nova-pro-1-0`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # ByteDance ## Models from ByteDance Coding-tuned 256K-context model with strong front-end results and multilingual programming support for AI coding tools and agents. Balanced general-purpose model for high-frequency enterprise workloads: information processing, content, search, and data analysis. Latency-focused multimodal model with 256K context, four reasoning effort modes, and image/video understanding for high-concurrency use. Flagship general model with 256K context for complex reasoning, multimodal understanding, structured generation, and tool-augmented execution. Speed-optimized 2.0 video variant for cinematic clips with native audio sync, camera control, and stable motion at lower cost per render. Multimodal video model for cinematic output from text, image, audio, or video inputs, with stable motion and consistent characters. Unified multimodal image model that reasons through prompts before rendering, producing high-resolution and consistent edits and brand visuals. # Seed-2.0-Code **Provider:** [ByteDance](/providers/bytedance)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** 256K\ **Served from:** Malaysia Coding-tuned 256K-context model with strong front-end results and multilingual programming support for AI coding tools and agents. ## At a glance | Field | Value | | ----------------- | --------------------------------------------- | | Model id | `seed-2-0-code` | | Input modalities | text | | Output modalities | text | | Context window | 256K | | Region | Malaysia | | Features | code\_interpreter, reasoning, agentic\_coding | | New | Yes | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ------ | -------------------------------- | ------ | | Input | ≤ 128K context, per 1M tokens | \$0.40 | | Output | ≤ 128K context, per 1M tokens | \$2.40 | | Input | 128K–256K context, per 1M tokens | \$0.80 | | Output | 128K–256K context, per 1M tokens | \$4.80 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "seed-2-0-code", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/seed-2-0-code`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Seed-2.0-Lite **Provider:** [ByteDance](/providers/bytedance)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** 256K\ **Served from:** Malaysia Balanced general-purpose model for high-frequency enterprise workloads: information processing, content, search, and data analysis. ## At a glance | Field | Value | | ----------------- | ------------------ | | Model id | `seed-2-0-lite` | | Input modalities | text, image, video | | Output modalities | text | | Context window | 256K | | Region | Malaysia | | Features | vision, reasoning | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ------ | -------------------------------- | ------ | | Input | ≤ 128K context, per 1M tokens | \$0.31 | | Output | ≤ 128K context, per 1M tokens | \$2.50 | | Input | 128K–256K context, per 1M tokens | \$0.62 | | Output | 128K–256K context, per 1M tokens | \$5.00 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "seed-2-0-lite", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/seed-2-0-lite`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Seed-2.0-Mini **Provider:** [ByteDance](/providers/bytedance)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** 256K\ **Served from:** Malaysia Latency-focused multimodal model with 256K context, four reasoning effort modes, and image/video understanding for high-concurrency use. ## At a glance | Field | Value | | ----------------- | ------------------ | | Model id | `seed-2-0-mini` | | Input modalities | text, image, video | | Output modalities | text | | Context window | 256K | | Region | Malaysia | | Features | vision, reasoning | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ------ | -------------------------------- | ------ | | Input | ≤ 128K context, per 1M tokens | \$0.12 | | Output | ≤ 128K context, per 1M tokens | \$0.50 | | Input | 128K–256K context, per 1M tokens | \$0.24 | | Output | 128K–256K context, per 1M tokens | \$1.00 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "seed-2-0-mini", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/seed-2-0-mini`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Seed-2.0-Pro **Provider:** [ByteDance](/providers/bytedance)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** 256K\ **Served from:** Malaysia Flagship general model with 256K context for complex reasoning, multimodal understanding, structured generation, and tool-augmented execution. ## At a glance | Field | Value | | ----------------- | ------------------ | | Model id | `seed-2-0-pro` | | Input modalities | text, image, video | | Output modalities | text | | Context window | 256K | | Region | Malaysia | | Features | vision, reasoning | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ------ | -------------------------------- | ------ | | Input | ≤ 128K context, per 1M tokens | \$0.63 | | Output | ≤ 128K context, per 1M tokens | \$3.79 | | Input | 128K–256K context, per 1M tokens | \$1.26 | | Output | 128K–256K context, per 1M tokens | \$7.58 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "seed-2-0-pro", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/seed-2-0-pro`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Seedance-2.0-Fast **Provider:** [ByteDance](/providers/bytedance)\ **Category:** Video generation\ **Endpoint:** `POST /v1/videos/generations`\ **Context window:** —\ **Served from:** Malaysia Speed-optimized 2.0 video variant for cinematic clips with native audio sync, camera control, and stable motion at lower cost per render. ## At a glance | Field | Value | | ----------------- | ---------------------------- | | Model id | `seedance-2-0-fast` | | Input modalities | text | | Output modalities | video | | Context window | — | | Region | Malaysia | | Features | audio\_sync, camera\_control | | New | Yes | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ---------------- | ---------- | ------- | | T2V/I2V 480P | per second | \$0.122 | | T2V/I2V 720P | per second | \$0.260 | | Video Input 480P | per second | \$0.284 | | Video Input 720P | per second | \$0.610 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/videos/generations \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "seedance-2-0-fast", "prompt": "sunrise over the ocean", "duration": 6}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/seedance-2-0-fast`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Seedance-2.0-Pro **Provider:** [ByteDance](/providers/bytedance)\ **Category:** Video generation\ **Endpoint:** `POST /v1/videos/generations`\ **Context window:** —\ **Served from:** Malaysia Multimodal video model for cinematic output from text, image, audio, or video inputs, with stable motion and consistent characters. ## At a glance | Field | Value | | ----------------- | ---------------------------------------------------- | | Model id | `seedance-2-0-pro` | | Input modalities | text | | Output modalities | video | | Context window | — | | Region | Malaysia | | Features | audio\_sync, camera\_control, character\_consistency | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ----------------- | ---------- | ------- | | T2V/I2V 480P | per second | \$0.139 | | T2V/I2V 720P | per second | \$0.300 | | T2V/I2V 1080P | per second | \$0.749 | | Video Input 480P | per second | \$0.342 | | Video Input 720P | per second | \$0.736 | | Video Input 1080P | per second | \$1.841 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/videos/generations \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "seedance-2-0-pro", "prompt": "sunrise over the ocean", "duration": 6}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/seedance-2-0-pro`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Seedream-5.0-Lite **Provider:** [ByteDance](/providers/bytedance)\ **Category:** Image generation\ **Endpoint:** `POST /v1/images/generations`\ **Context window:** —\ **Served from:** Malaysia Unified multimodal image model that reasons through prompts before rendering, producing high-resolution and consistent edits and brand visuals. ## At a glance | Field | Value | | ----------------- | ------------------- | | Model id | `seedream-5-0-lite` | | Input modalities | text | | Output modalities | image | | Context window | — | | Region | Malaysia | | Features | reasoning, editing | | New | Yes | | Native inference | No | ## Pricing | Charge | Spec | Rate | | -------- | --------- | -------- | | Standard | per image | \$0.0350 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/images/generations \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "seedream-5-0-lite", "prompt": "a misty forest at dawn", "size": "1024x1024"}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/seedream-5-0-lite`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Deepgram ## Models from Deepgram Speech-to-text transcription using the Nova-3 model with multi-language support and advanced customizable settings for production workloads. # Deepgram-Nova-3 **Provider:** [Deepgram](/providers/deepgram)\ **Category:** Transcription\ **Endpoint:** `POST /v1/audio/transcriptions`\ **Context window:** —\ **Served from:** — Speech-to-text transcription using the Nova-3 model with multi-language support and advanced customizable settings for production workloads. ## At a glance | Field | Value | | ----------------- | ------------------------------- | | Model id | `deepgram-nova-3` | | Input modalities | audio | | Output modalities | text | | Context window | — | | Region | — | | Features | transcription, speech\_to\_text | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ------------- | ------------------- | ------- | | Transcription | per minute of audio | \$0.014 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/audio/transcriptions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -F model=deepgram-nova-3 \ -F file=@meeting.mp3 ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/deepgram-nova-3`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # DeepSeek ## Models from DeepSeek Open-source LLM specialized in formal theorem proving in Lean 4, built on a recursive theorem-proving pipeline powered by DeepSeek-V3. Open-source Mixture-of-Experts LLM tuned for high-efficiency reasoning, coding, and general language tasks across long-form prompts. Lightweight MoE model with 284B total / 13B active parameters and native 1M context, tuned for low-latency, cost-effective high-concurrency use. Flagship MoE LLM with 1.6T total / 49B active parameters and native 1M context for advanced math, logical inference, and specialized coding. Autoregressive framework on the Janus Pro 7B model that unifies multimodal understanding and image generation in one architecture. # DeepSeek-Prover-V2 **Provider:** [DeepSeek](/providers/deepseek)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** —\ **Served from:** — Open-source LLM specialized in formal theorem proving in Lean 4, built on a recursive theorem-proving pipeline powered by DeepSeek-V3. ## At a glance | Field | Value | | ----------------- | -------------------- | | Model id | `deepseek-prover-v2` | | Input modalities | text | | Output modalities | text | | Context window | — | | Region | — | | Features | math, reasoning | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ----------- | ----- | ------- | | Per Message | fixed | \$0.020 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "deepseek-prover-v2", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/deepseek-prover-v2`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # DeepSeek-V3.2 **Provider:** [DeepSeek](/providers/deepseek)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** 128K\ **Served from:** Singapore Open-source Mixture-of-Experts LLM tuned for high-efficiency reasoning, coding, and general language tasks across long-form prompts. ## At a glance | Field | Value | | ----------------- | --------------- | | Model id | `deepseek-v3-2` | | Input modalities | text | | Output modalities | text | | Context window | 128K | | Region | Singapore | | Features | reasoning | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ---------- | ------------- | ------- | | Input | per 1M tokens | \$0.57 | | Output | per 1M tokens | \$1.71 | | Web Search | per call | \$0.015 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "deepseek-v3-2", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/deepseek-v3-2`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # DeepSeek-V4-Flash **Provider:** [DeepSeek](/providers/deepseek)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** 1M\ **Served from:** Germany (Frankfurt) Lightweight MoE model with 284B total / 13B active parameters and native 1M context, tuned for low-latency, cost-effective high-concurrency use. ## At a glance | Field | Value | | ----------------- | ------------------- | | Model id | `deepseek-v4-flash` | | Input modalities | text, image | | Output modalities | text | | Context window | 1M | | Region | Germany (Frankfurt) | | Features | vision, reasoning | | New | Yes | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ------ | ------------- | ------ | | Input | per 1M tokens | \$0.14 | | Output | per 1M tokens | \$0.56 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "deepseek-v4-flash", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/deepseek-v4-flash`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # DeepSeek-V4-Pro **Provider:** [DeepSeek](/providers/deepseek)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** 1M\ **Served from:** Germany (Frankfurt) Flagship MoE LLM with 1.6T total / 49B active parameters and native 1M context for advanced math, logical inference, and specialized coding. ## At a glance | Field | Value | | ----------------- | ---------------------------- | | Model id | `deepseek-v4-pro` | | Input modalities | text, image | | Output modalities | text | | Context window | 1M | | Region | Germany (Frankfurt) | | Features | vision, reasoning, tool\_use | | New | Yes | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ------ | ------------- | ------ | | Input | per 1M tokens | \$0.55 | | Output | per 1M tokens | \$2.20 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "deepseek-v4-pro", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/deepseek-v4-pro`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Janus-Pro-DeepSeek **Provider:** [DeepSeek](/providers/deepseek)\ **Category:** Image generation\ **Endpoint:** `POST /v1/images/generations`\ **Context window:** —\ **Served from:** — Autoregressive framework on the Janus Pro 7B model that unifies multimodal understanding and image generation in one architecture. ## At a glance | Field | Value | | ----------------- | ------------------------- | | Model id | `janus-pro-deepseek` | | Input modalities | text, image | | Output modalities | text, image | | Context window | — | | Region | — | | Features | vision, image\_generation | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ---------------- | ------------------ | ------- | | Image Generation | per image | \$0.030 | | Image Analysis | per uploaded image | \$0.030 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/images/generations \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "janus-pro-deepseek", "prompt": "a misty forest at dawn", "size": "1024x1024"}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/janus-pro-deepseek`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Exa ## Models from Exa Quick LLM-style answer to a natural-language question, grounded in fresh Exa web search results with inline citations and source links. Asynchronous research task that explores the web, gathers sources, synthesizes findings, and returns cited answers for in-depth queries. Web search engine for finding pages, retrieving similar pages, crawling, and dedicated code search across the open web for AI agents. # Exa-Answer **Provider:** [Exa](/providers/exa)\ **Category:** Research\ **Endpoint:** `POST /v1/search`\ **Context window:** —\ **Served from:** — Quick LLM-style answer to a natural-language question, grounded in fresh Exa web search results with inline citations and source links. ## At a glance | Field | Value | | ----------------- | --------------------------- | | Model id | `exa-answer` | | Input modalities | text | | Output modalities | text | | Context window | — | | Region | — | | Features | web\_search, answer\_engine | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ------ | ----------- | ------ | | Answer | per request | \$0.01 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/search \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "exa-answer", "query": "latest LLM benchmarks 2026"}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/exa-answer`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Exa-Research **Provider:** [Exa](/providers/exa)\ **Category:** Research\ **Endpoint:** `POST /v1/search`\ **Context window:** —\ **Served from:** — Asynchronous research task that explores the web, gathers sources, synthesizes findings, and returns cited answers for in-depth queries. ## At a glance | Field | Value | | ----------------- | ---------------------- | | Model id | `exa-research` | | Input modalities | text | | Output modalities | text | | Context window | — | | Region | — | | Features | web\_search, reasoning | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | -------------------------- | ------------- | ------- | | exa-research-fast (search) | per search | \$0.013 | | exa-research (search) | per search | \$0.013 | | exa-research-pro (search) | per search | \$0.013 | | Page Read (standard) | per page | \$0.013 | | Page Read (pro) | per page | \$0.026 | | Reasoning Tokens | per 1k tokens | \$0.013 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/search \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "exa-research", "query": "latest LLM benchmarks 2026"}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/exa-research`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Exa-Search **Provider:** [Exa](/providers/exa)\ **Category:** Research\ **Endpoint:** `POST /v1/search`\ **Context window:** —\ **Served from:** — Web search engine for finding pages, retrieving similar pages, crawling, and dedicated code search across the open web for AI agents. ## At a glance | Field | Value | | ----------------- | ----------------------------- | | Model id | `exa-search` | | Input modalities | text | | Output modalities | text | | Context window | — | | Region | — | | Features | web\_search, semantic\_search | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | --------------------------------- | ---------------- | -------- | | Search (1-25 results) | per search | \$0.0060 | | Search (26-100 results) | per search | \$0.030 | | Content (Text/Highlights/Summary) | per page/feature | \$0.0060 | | Code Search | per 1k tokens | \$0.0060 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/search \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "exa-search", "query": "latest LLM benchmarks 2026"}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/exa-search`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Google ## Models from Google Low-latency text-to-speech with single- and multi-speaker voices and controllable style, accent, and expressive tone for production apps. High-quality TTS preview for podcasts, audiobooks, and customer support, with expressive multi-speaker voices across 23+ languages. Highly controllable TTS with new Audio Tags for precise style, tone, pace, and delivery across narration, assistants, and voice apps. Open-source vision-language model with 128K context, 140+ languages, improved math/reasoning, structured outputs, and function calling. # Gemini-2.5-Flash-TTS **Provider:** [Google](/providers/google)\ **Category:** Audio generation\ **Endpoint:** `POST /v1/audio/speech`\ **Context window:** —\ **Served from:** — Low-latency text-to-speech with single- and multi-speaker voices and controllable style, accent, and expressive tone for production apps. ## At a glance | Field | Value | | ----------------- | ---------------------- | | Model id | `gemini-2-5-flash-tts` | | Input modalities | text | | Output modalities | audio | | Context window | — | | Region | — | | Features | — | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | -------------- | ------------- | -------- | | Input (text) | per 1k tokens | \$0.0015 | | Output (audio) | per 1k tokens | \$0.030 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/audio/speech \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "gemini-2-5-flash-tts", "input": "Hello from EmpirioLabs."}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/gemini-2-5-flash-tts`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Gemini-2.5-Pro-TTS **Provider:** [Google](/providers/google)\ **Category:** Audio generation\ **Endpoint:** `POST /v1/audio/speech`\ **Context window:** —\ **Served from:** — High-quality TTS preview for podcasts, audiobooks, and customer support, with expressive multi-speaker voices across 23+ languages. ## At a glance | Field | Value | | ----------------- | -------------------- | | Model id | `gemini-2-5-pro-tts` | | Input modalities | text | | Output modalities | audio | | Context window | — | | Region | — | | Features | — | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | -------------- | ------------- | -------- | | Input (text) | per 1k tokens | \$0.0030 | | Output (audio) | per 1k tokens | \$0.060 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/audio/speech \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "gemini-2-5-pro-tts", "input": "Hello from EmpirioLabs."}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/gemini-2-5-pro-tts`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Gemini-3.1-Flash-TTS **Provider:** [Google](/providers/google)\ **Category:** Audio generation\ **Endpoint:** `POST /v1/audio/speech`\ **Context window:** —\ **Served from:** — Highly controllable TTS with new Audio Tags for precise style, tone, pace, and delivery across narration, assistants, and voice apps. ## At a glance | Field | Value | | ----------------- | ---------------------- | | Model id | `gemini-3-1-flash-tts` | | Input modalities | text | | Output modalities | audio | | Context window | — | | Region | — | | Features | — | | New | Yes | | Native inference | No | ## Pricing | Charge | Spec | Rate | | -------------- | ------------- | -------- | | Input (text) | per 1k tokens | \$0.0026 | | Output (audio) | per 1k tokens | \$0.053 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/audio/speech \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "gemini-3-1-flash-tts", "input": "Hello from EmpirioLabs."}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/gemini-3-1-flash-tts`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Gemma-3-27B **Provider:** [Google](/providers/google)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** 128K\ **Served from:** — Open-source vision-language model with 128K context, 140+ languages, improved math/reasoning, structured outputs, and function calling. ## At a glance | Field | Value | | ----------------- | ------------- | | Model id | `gemma-3-27b` | | Input modalities | text, image | | Output modalities | text | | Context window | 128K | | Region | — | | Features | vision | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ----------- | ----- | -------- | | Per Message | fixed | \$0.0040 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "gemma-3-27b", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/gemma-3-27b`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # GPTZero ## Models from GPTZero Deep-learning detector that flags portions of text likely generated by AI versus human, classifying content as entirely human, AI, or mixed. # GPTZero **Provider:** [GPTZero](/providers/gptzero)\ **Category:** Tools & agents\ **Endpoint:** `POST /v1/search`\ **Context window:** —\ **Served from:** — Deep-learning detector that flags portions of text likely generated by AI versus human, classifying content as entirely human, AI, or mixed. ## At a glance | Field | Value | | ----------------- | ----------------------------- | | Model id | `gptzero` | | Input modalities | text | | Output modalities | text | | Context window | — | | Region | — | | Features | ai\_detection, classification | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | --------- | --------------- | ------ | | Text Scan | per 1,000 words | \$0.39 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/search \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "gptzero", "query": "latest LLM benchmarks 2026"}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/gptzero`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Kling AI ## Models from Kling AI Video model in Standard or Pro modes with Text-to-Video, Image-to-Video, Reference-to-Video, editing, native sound, and multi-scene transitions. Kling 3.0 model that transfers motion from a reference video onto a character from a reference image, with Standard 720p and Pro 1080p tiers. # Kling-O3 **Provider:** [Kling AI](/providers/kling)\ **Category:** Video generation\ **Endpoint:** `POST /v1/videos/generations`\ **Context window:** —\ **Served from:** — Video model in Standard or Pro modes with Text-to-Video, Image-to-Video, Reference-to-Video, editing, native sound, and multi-scene transitions. ## At a glance | Field | Value | | ----------------- | -------------- | | Model id | `kling-o3` | | Input modalities | text | | Output modalities | video | | Context window | — | | Region | — | | Features | audio, editing | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ------------------------ | ---------- | ------ | | Standard T2V/I2V | per second | \$0.17 | | Standard T2V/I2V + Sound | per second | \$0.22 | | Standard Video Input | per second | \$0.25 | | Pro T2V/I2V | per second | \$0.22 | | Pro T2V/I2V + Sound | per second | \$0.28 | | Pro Video Input | per second | \$0.34 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/videos/generations \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "kling-o3", "prompt": "sunrise over the ocean", "duration": 6}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/kling-o3`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Kling-v3-Motion-Ctrl **Provider:** [Kling AI](/providers/kling)\ **Category:** Video generation\ **Endpoint:** `POST /v1/videos/generations`\ **Context window:** —\ **Served from:** — Kling 3.0 model that transfers motion from a reference video onto a character from a reference image, with Standard 720p and Pro 1080p tiers. ## At a glance | Field | Value | | ----------------- | ---------------------- | | Model id | `kling-v3-motion-ctrl` | | Input modalities | text | | Output modalities | video | | Context window | — | | Region | — | | Features | motion\_control | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | --------------- | ---------- | ------ | | Standard (720p) | per second | \$0.14 | | Pro (1080p) | per second | \$0.18 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/videos/generations \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "kling-v3-motion-ctrl", "prompt": "sunrise over the ocean", "duration": 6}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/kling-v3-motion-ctrl`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Linkup ## Models from Linkup Iterative AI search that keeps querying when initial results are insufficient, returning more comprehensive answers than Standard mode. AI-powered web search with detailed overviews and answers, faster than Deep Search. Ranks #1 on OpenAI's SimpleQA benchmark. # Linkup-Deep-Search **Provider:** [Linkup](/providers/linkup)\ **Category:** Research\ **Endpoint:** `POST /v1/search`\ **Context window:** 100K\ **Served from:** — Iterative AI search that keeps querying when initial results are insufficient, returning more comprehensive answers than Standard mode. ## At a glance | Field | Value | | ----------------- | --------------------------- | | Model id | `linkup-deep-search` | | Input modalities | text | | Output modalities | text | | Context window | 100K | | Region | — | | Features | web\_search, deep\_research | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ----------- | ----- | ------ | | Per Message | fixed | \$0.13 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/search \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "linkup-deep-search", "query": "latest LLM benchmarks 2026"}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/linkup-deep-search`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Linkup-Standard **Provider:** [Linkup](/providers/linkup)\ **Category:** Research\ **Endpoint:** `POST /v1/search`\ **Context window:** 100K\ **Served from:** — AI-powered web search with detailed overviews and answers, faster than Deep Search. Ranks #1 on OpenAI's SimpleQA benchmark. ## At a glance | Field | Value | | ----------------- | ----------------- | | Model id | `linkup-standard` | | Input modalities | text | | Output modalities | text | | Context window | 100K | | Region | — | | Features | web\_search | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ----------- | ----- | ------- | | Per Message | fixed | \$0.013 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/search \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "linkup-standard", "query": "latest LLM benchmarks 2026"}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/linkup-standard`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Manus ## Models from Manus Autonomous AI agent that turns a high-level prompt into subtasks, calls tools and APIs, and delivers end-to-end results without manual orchestration. # Manus **Provider:** [Manus](/providers/manus)\ **Category:** Tools & agents\ **Endpoint:** `POST /v1/search`\ **Context window:** —\ **Served from:** — Autonomous AI agent that turns a high-level prompt into subtasks, calls tools and APIs, and delivers end-to-end results without manual orchestration. ## At a glance | Field | Value | | ----------------- | ---------------------------------- | | Model id | `manus` | | Input modalities | text | | Output modalities | text | | Context window | — | | Region | — | | Features | autonomous, multi\_step, tool\_use | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ------------------------- | -------- | ------------- | | Adaptive - Manus 1.6 Lite | per task | $1.44 - $2.63 | | Adaptive - Manus 1.6 | per task | $2.89 - $5.25 | | Adaptive - Manus 1.6 Max | per task | $5.25 - $9.19 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/search \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "manus", "query": "latest LLM benchmarks 2026"}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/manus`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # MiniMax ## Models from MiniMax High-speed M2.7 variant tuned for fast, large-batch inference with strong general-purpose performance at a discounted price point. # MiniMax-M2.7-highspeed **Provider:** [MiniMax](/providers/minimax)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** 256K\ **Served from:** — High-speed M2.7 variant tuned for fast, large-batch inference with strong general-purpose performance at a discounted price point. ## At a glance | Field | Value | | ----------------- | ------------------------ | | Model id | `minimax-m2-7-highspeed` | | Input modalities | text | | Output modalities | text | | Context window | 256K | | Region | — | | Features | reasoning | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ------ | ------------- | ------------------ | | Input | per 1M tokens | $0.075 (was $0.10) | | Output | per 1M tokens | $0.225 (was $0.30) | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "minimax-m2-7-highspeed", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/minimax-m2-7-highspeed`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Mistral AI ## Models from Mistral AI Reasoning model tuned for tasks needing longer thought and higher accuracy: legal research, financial forecasting, software, and storytelling. Cost-efficient language model offering strong reasoning and multimodal performance for general production workloads at competitive latency. Enterprise-grade model with strong reasoning, coding, and STEM performance, supporting hybrid, on-prem, and in-VPC deployments. 24B-parameter multimodal model with 128K context for image analysis, programming, math, and multilingual tasks, tuned for efficient local inference. Hybrid model unifying Instruct, Reasoning (Magistral), and Devstral families: 40% lower completion time and 3x throughput vs Small 3. # Magistral-Medium-2509-Thinking **Provider:** [Mistral AI](/providers/mistral)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** 40K\ **Served from:** — Reasoning model tuned for tasks needing longer thought and higher accuracy: legal research, financial forecasting, software, and storytelling. ## At a glance | Field | Value | | ----------------- | -------------------------------- | | Model id | `magistral-medium-2509-thinking` | | Input modalities | text | | Output modalities | text | | Context window | 40K | | Region | — | | Features | reasoning, thinking | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ------------- | ------------- | ------ | | Input (text) | per 1M tokens | \$2.60 | | Output (text) | per 1M tokens | \$6.50 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "magistral-medium-2509-thinking", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/magistral-medium-2509-thinking`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Mistral-Medium-3 **Provider:** [Mistral AI](/providers/mistral)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** 130K\ **Served from:** — Cost-efficient language model offering strong reasoning and multimodal performance for general production workloads at competitive latency. ## At a glance | Field | Value | | ----------------- | ------------------ | | Model id | `mistral-medium-3` | | Input modalities | text, image | | Output modalities | text | | Context window | 130K | | Region | — | | Features | vision | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ----------- | ----- | ------- | | Per Message | fixed | \$0.015 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "mistral-medium-3", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/mistral-medium-3`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Mistral-Medium-3.1 **Provider:** [Mistral AI](/providers/mistral)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** 131K\ **Served from:** — Enterprise-grade model with strong reasoning, coding, and STEM performance, supporting hybrid, on-prem, and in-VPC deployments. ## At a glance | Field | Value | | ----------------- | -------------------- | | Model id | `mistral-medium-3-1` | | Input modalities | text, image | | Output modalities | text | | Context window | 131K | | Region | — | | Features | vision | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ------------- | ------------- | ------ | | Input (text) | per 1M tokens | \$0.52 | | Output (text) | per 1M tokens | \$2.60 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "mistral-medium-3-1", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/mistral-medium-3-1`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Mistral-Small-3.1 **Provider:** [Mistral AI](/providers/mistral)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** 128K\ **Served from:** — 24B-parameter multimodal model with 128K context for image analysis, programming, math, and multilingual tasks, tuned for efficient local inference. ## At a glance | Field | Value | | ----------------- | ------------------- | | Model id | `mistral-small-3-1` | | Input modalities | text, image | | Output modalities | text | | Context window | 128K | | Region | — | | Features | vision | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ----------- | ----- | -------- | | Per Message | fixed | \$0.0019 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "mistral-small-3-1", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/mistral-small-3-1`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Mistral-Small-4 **Provider:** [Mistral AI](/providers/mistral)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** 256K\ **Served from:** — Hybrid model unifying Instruct, Reasoning (Magistral), and Devstral families: 40% lower completion time and 3x throughput vs Small 3. ## At a glance | Field | Value | | ----------------- | ----------------- | | Model id | `mistral-small-4` | | Input modalities | text, image | | Output modalities | text | | Context window | 256K | | Region | — | | Features | vision | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ------------------- | ------------- | ------- | | Input | per 1M tokens | \$0.15 | | Output | per 1M tokens | \$0.60 | | Standard Web Search | per call | \$0.084 | | Premium Web Search | per call | \$0.140 | | Code Interpreter | per call | \$0.084 | | Image Generation | per image | \$0.280 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "mistral-small-4", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/mistral-small-4`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # OpenAI ## Models from OpenAI Whisper-1 speech-to-text transcription trained on multilingual supervised audio, with a 25 MB upload limit per file. # OpenAI-Whisper-1 **Provider:** [OpenAI](/providers/openai)\ **Category:** Transcription\ **Endpoint:** `POST /v1/audio/transcriptions`\ **Context window:** —\ **Served from:** — Whisper-1 speech-to-text transcription trained on multilingual supervised audio, with a 25 MB upload limit per file. ## At a glance | Field | Value | | ----------------- | ------------------------------- | | Model id | `openai-whisper-1` | | Input modalities | audio | | Output modalities | text | | Context window | — | | Region | — | | Features | transcription, speech\_to\_text | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ------------------- | ----- | ------- | | Per Minute of Audio | fixed | \$0.030 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/audio/transcriptions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -F model=openai-whisper-1 \ -F file=@meeting.mp3 ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/openai-whisper-1`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # OpenMOSS ## Models from OpenMOSS Open-source 32B MoE foundation model that generates synchronized video and audio in one inference step with precise dual-tower lip-sync. # MOSS-Video-and-Audio **Provider:** [OpenMOSS](/providers/openmoss)\ **Category:** Video generation\ **Endpoint:** `POST /v1/videos/generations`\ **Context window:** —\ **Served from:** EmpirioLabs (Native Inference) Open-source 32B MoE foundation model that generates synchronized video and audio in one inference step with precise dual-tower lip-sync. ## At a glance | Field | Value | | ----------------- | ------------------------------ | | Model id | `moss-video-and-audio` | | Input modalities | text | | Output modalities | video | | Context window | — | | Region | EmpirioLabs (Native Inference) | | Features | audio\_sync, lipsync | | New | No | | Native inference | Yes | ## Pricing | Charge | Spec | Rate | | ----------- | -------------- | ------- | | 360p Video | per second | \$0.17 | | 720p Video | per second | \$2.79 | | T2V Fast | additional fee | \$0.065 | | T2V Quality | additional fee | \$0.13 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/videos/generations \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "moss-video-and-audio", "prompt": "sunrise over the ocean", "duration": 6}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/moss-video-and-audio`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Perplexity ## Models from Perplexity Institutional-grade research powered by Claude Opus 4.6 reasoning, with maximum depth, enhanced tool access, and extensive source coverage. Research model for multi-step retrieval, synthesis, and reasoning, autonomously searching, reading, and evaluating sources across complex topics. Sonar Pro as an agentic researcher: chains web searches, fetches full pages, and streams live reasoning, adapting strategy for complex queries. Real-time web search with filtering by domain, language, date, and more. Returns search results, not LLM responses; no file uploads. Real-time web-connected search with accurate citations and customizable sources for up-to-date AI search integration in production apps. Search-grounded model with double the citations and a larger context window, tuned for complex queries needing in-depth, nuanced answers. Reasoning model on the uncensored open-source R1-1776 with web search, outperforming leading search engines and LLMs on the SimpleQA benchmark. # Perplexity-Adv-Deep-Research **Provider:** [Perplexity](/providers/perplexity)\ **Category:** Research\ **Endpoint:** `POST /v1/search`\ **Context window:** —\ **Served from:** — Institutional-grade research powered by Claude Opus 4.6 reasoning, with maximum depth, enhanced tool access, and extensive source coverage. ## At a glance | Field | Value | | ----------------- | -------------------------------------- | | Model id | `perplexity-adv-deep-research` | | Input modalities | text | | Output modalities | text | | Context window | — | | Region | — | | Features | web\_search, reasoning, deep\_research | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | --------------- | ------------- | -------- | | Input Tokens | per 1k tokens | \$0.012 | | Output Tokens | per 1k tokens | \$0.060 | | Web Search Call | per call | \$0.012 | | URL Fetch Call | per call | \$0.0012 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/search \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "perplexity-adv-deep-research", "query": "latest LLM benchmarks 2026"}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/perplexity-adv-deep-research`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Perplexity-Deep-Research **Provider:** [Perplexity](/providers/perplexity)\ **Category:** Research\ **Endpoint:** `POST /v1/search`\ **Context window:** 128K\ **Served from:** — Research model for multi-step retrieval, synthesis, and reasoning, autonomously searching, reading, and evaluating sources across complex topics. ## At a glance | Field | Value | | ----------------- | -------------------------------------- | | Model id | `perplexity-deep-research` | | Input modalities | text | | Output modalities | text | | Context window | 128K | | Region | — | | Features | web\_search, reasoning, deep\_research | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ---------------- | ------------- | -------- | | Input Tokens | per 1k tokens | \$0.0048 | | Output Tokens | per 1k tokens | \$0.019 | | Citation Tokens | per 1k tokens | \$0.0048 | | Reasoning Tokens | per 1k tokens | \$0.0072 | | Search Queries | per query | \$0.012 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/search \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "perplexity-deep-research", "query": "latest LLM benchmarks 2026"}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/perplexity-deep-research`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Perplexity-Pro-Search **Provider:** [Perplexity](/providers/perplexity)\ **Category:** Research\ **Endpoint:** `POST /v1/search`\ **Context window:** —\ **Served from:** — Sonar Pro as an agentic researcher: chains web searches, fetches full pages, and streams live reasoning, adapting strategy for complex queries. ## At a glance | Field | Value | | ----------------- | ----------------------- | | Model id | `perplexity-pro-search` | | Input modalities | text | | Output modalities | text | | Context window | — | | Region | — | | Features | web\_search | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ------------------------- | ------------- | -------- | | Base Fee (Low Context) | per request | \$0.036 | | Base Fee (Medium Context) | per request | \$0.047 | | Base Fee (High Context) | per request | \$0.057 | | Input Tokens | per 1k tokens | \$0.0078 | | Output Tokens | per 1k tokens | \$0.039 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/search \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "perplexity-pro-search", "query": "latest LLM benchmarks 2026"}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/perplexity-pro-search`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Perplexity-Search **Provider:** [Perplexity](/providers/perplexity)\ **Category:** Research\ **Endpoint:** `POST /v1/search`\ **Context window:** —\ **Served from:** — Real-time web search with filtering by domain, language, date, and more. Returns search results, not LLM responses; no file uploads. ## At a glance | Field | Value | | ----------------- | -------------------- | | Model id | `perplexity-search` | | Input modalities | text | | Output modalities | text | | Context window | — | | Region | — | | Features | web\_search, no\_llm | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | -------------- | ----------- | -------- | | Search Request | per request | \$0.0060 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/search \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "perplexity-search", "query": "latest LLM benchmarks 2026"}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/perplexity-search`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Perplexity-Sonar **Provider:** [Perplexity](/providers/perplexity)\ **Category:** Research\ **Endpoint:** `POST /v1/search`\ **Context window:** 127K\ **Served from:** — Real-time web-connected search with accurate citations and customizable sources for up-to-date AI search integration in production apps. ## At a glance | Field | Value | | ----------------- | ------------------ | | Model id | `perplexity-sonar` | | Input modalities | text | | Output modalities | text | | Context window | 127K | | Region | — | | Features | web\_search | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ------------------------- | ------------- | -------- | | Base Fee (Low Context) | per request | \$0.012 | | Base Fee (Medium Context) | per request | \$0.019 | | Base Fee (High Context) | per request | \$0.029 | | Input & Output Tokens | per 1k tokens | \$0.0024 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/search \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "perplexity-sonar", "query": "latest LLM benchmarks 2026"}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/perplexity-sonar`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Perplexity-Sonar-Pro **Provider:** [Perplexity](/providers/perplexity)\ **Category:** Research\ **Endpoint:** `POST /v1/search`\ **Context window:** 200K\ **Served from:** — Search-grounded model with double the citations and a larger context window, tuned for complex queries needing in-depth, nuanced answers. ## At a glance | Field | Value | | ----------------- | ---------------------- | | Model id | `perplexity-sonar-pro` | | Input modalities | text | | Output modalities | text | | Context window | 200K | | Region | — | | Features | web\_search | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ------------------------- | ------------- | -------- | | Base Fee (Low Context) | per request | \$0.014 | | Base Fee (Medium Context) | per request | \$0.024 | | Base Fee (High Context) | per request | \$0.034 | | Input Tokens | per 1k tokens | \$0.0072 | | Output Tokens | per 1k tokens | \$0.036 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/search \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "perplexity-sonar-pro", "query": "latest LLM benchmarks 2026"}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/perplexity-sonar-pro`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Perplexity-Sonar-Rsn-Pro **Provider:** [Perplexity](/providers/perplexity)\ **Category:** Research\ **Endpoint:** `POST /v1/search`\ **Context window:** 128K\ **Served from:** — Reasoning model on the uncensored open-source R1-1776 with web search, outperforming leading search engines and LLMs on the SimpleQA benchmark. ## At a glance | Field | Value | | ----------------- | -------------------------- | | Model id | `perplexity-sonar-rsn-pro` | | Input modalities | text | | Output modalities | text | | Context window | 128K | | Region | — | | Features | web\_search, reasoning | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ------------------------- | ------------- | -------- | | Base Fee (Low Context) | per request | \$0.014 | | Base Fee (Medium Context) | per request | \$0.024 | | Base Fee (High Context) | per request | \$0.034 | | Input Tokens | per 1k tokens | \$0.0048 | | Output Tokens | per 1k tokens | \$0.019 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/search \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "perplexity-sonar-rsn-pro", "query": "latest LLM benchmarks 2026"}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/perplexity-sonar-rsn-pro`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # PixVerse ## Models from PixVerse Cinematic video generation in Text-to-Video, Image-to-Video, and Transition modes with high detail, fluid motion, and lifelike animations. Generates videos from text or 1-2 frame image prompts up to 1080p, multiple aspect ratios, 5-10s durations, with optional synchronized audio. # Pixverse-v5 **Provider:** [PixVerse](/providers/pixverse)\ **Category:** Video generation\ **Endpoint:** `POST /v1/videos/generations`\ **Context window:** —\ **Served from:** — Cinematic video generation in Text-to-Video, Image-to-Video, and Transition modes with high detail, fluid motion, and lifelike animations. ## At a glance | Field | Value | | ----------------- | ------------- | | Model id | `pixverse-v5` | | Input modalities | text | | Output modalities | video | | Context window | — | | Region | — | | Features | audio, styles | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ---------------- | --------- | ------ | | 360p / 540p (5s) | per video | \$0.45 | | 360p / 540p (8s) | per video | \$0.90 | | 720p (5s) | per video | \$0.60 | | 720p (8s) | per video | \$1.20 | | 1080p (5s) | per video | \$1.20 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/videos/generations \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "pixverse-v5", "prompt": "sunrise over the ocean", "duration": 6}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/pixverse-v5`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Pixverse-v5.6 **Provider:** [PixVerse](/providers/pixverse)\ **Category:** Video generation\ **Endpoint:** `POST /v1/videos/generations`\ **Context window:** —\ **Served from:** — Generates videos from text or 1-2 frame image prompts up to 1080p, multiple aspect ratios, 5-10s durations, with optional synchronized audio. ## At a glance | Field | Value | | ----------------- | --------------- | | Model id | `pixverse-v5-6` | | Input modalities | text | | Output modalities | video | | Context window | — | | Region | — | | Features | audio, styles | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ------------------------- | --------- | ----------- | | 5s 360p / 540p (no audio) | per video | \$0.35 | | 5s 720p (no audio) | per video | \$0.45 | | 5s 1080p (no audio) | per video | \$0.75 | | 8s 720p (no audio) | per video | \$0.90 | | 8s 1080p (no audio) | per video | \$1.50 | | 5s with audio (any res) | per video | $0.80–$1.50 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/videos/generations \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "pixverse-v5-6", "prompt": "sunrise over the ocean", "duration": 6}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/pixverse-v5-6`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Soul AI Lab ## Models from Soul AI Lab Open-source voice model for long-form, multi-speaker podcast dialogue with paralinguistic control (laughter, sighs) and zero-shot voice cloning. # SoulX-Podcast **Provider:** [Soul AI Lab](/providers/soul-ai-lab)\ **Category:** Audio generation\ **Endpoint:** `POST /v1/audio/speech`\ **Context window:** —\ **Served from:** EmpirioLabs (Native Inference) Open-source voice model for long-form, multi-speaker podcast dialogue with paralinguistic control (laughter, sighs) and zero-shot voice cloning. ## At a glance | Field | Value | | ----------------- | ------------------------------------------------ | | Model id | `soulx-podcast` | | Input modalities | text | | Output modalities | audio | | Context window | — | | Region | EmpirioLabs (Native Inference) | | Features | voice\_cloning, multi\_speaker, dialect, podcast | | New | No | | Native inference | Yes | ## Pricing | Charge | Spec | Rate | | ------- | ----------------- | ------- | | Base | per 1k characters | \$0.015 | | Dialect | per 1k characters | \$0.015 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/audio/speech \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "soulx-podcast", "input": "Hello from EmpirioLabs."}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/soulx-podcast`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Stability AI ## Models from Stability AI Generates audio up to 3 minutes from text prompts, supporting text-to-audio and audio-to-audio with adjustable duration, steps, and CFG scale. Up-to-3-minute audio from text with text-to-audio, audio-to-audio, and audio inpainting for music production, sound design, and remixing. # Stable-Audio-2.0 **Provider:** [Stability AI](/providers/stability)\ **Category:** Audio generation\ **Endpoint:** `POST /v1/audio/speech`\ **Context window:** —\ **Served from:** — Generates audio up to 3 minutes from text prompts, supporting text-to-audio and audio-to-audio with adjustable duration, steps, and CFG scale. ## At a glance | Field | Value | | ----------------- | ------------------ | | Model id | `stable-audio-2-0` | | Input modalities | text | | Output modalities | audio | | Context window | — | | Region | — | | Features | — | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ------------- | -------------- | ------ | | Base Cost | per generation | \$0.58 | | Per Step Cost | per step | \$0.00 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/audio/speech \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "stable-audio-2-0", "input": "Hello from EmpirioLabs."}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/stable-audio-2-0`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Stable-Audio-2.5 **Provider:** [Stability AI](/providers/stability)\ **Category:** Audio generation\ **Endpoint:** `POST /v1/audio/speech`\ **Context window:** —\ **Served from:** — Up-to-3-minute audio from text with text-to-audio, audio-to-audio, and audio inpainting for music production, sound design, and remixing. ## At a glance | Field | Value | | ----------------- | ------------------ | | Model id | `stable-audio-2-5` | | Input modalities | text | | Output modalities | audio | | Context window | — | | Region | — | | Features | — | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ---------- | -------------- | ------ | | Generation | per generation | \$0.68 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/audio/speech \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "stable-audio-2-5", "input": "Hello from EmpirioLabs."}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/stable-audio-2-5`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Tavily ## Models from Tavily Multi-search research assistant that explores a topic, analyzes sources, and produces a detailed research report with citations. Web search with crawl, extract, and URL mapping for fast, structured retrieval across pages and domains for downstream pipelines. # Tavily-Research **Provider:** [Tavily](/providers/tavily)\ **Category:** Research\ **Endpoint:** `POST /v1/search`\ **Context window:** —\ **Served from:** — Multi-search research assistant that explores a topic, analyzes sources, and produces a detailed research report with citations. ## At a glance | Field | Value | | ----------------- | ------------------------------------- | | Model id | `tavily-research` | | Input modalities | text | | Output modalities | text | | Context window | — | | Region | — | | Features | web\_search, citations, multi\_search | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ------ | ---------------- | -------- | | Mini | average per task | \~\$1.19 | | Pro | average per task | \~\$2.75 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/search \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "tavily-research", "query": "latest LLM benchmarks 2026"}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/tavily-research`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Tavily-Search **Provider:** [Tavily](/providers/tavily)\ **Category:** Research\ **Endpoint:** `POST /v1/search`\ **Context window:** —\ **Served from:** — Web search with crawl, extract, and URL mapping for fast, structured retrieval across pages and domains for downstream pipelines. ## At a glance | Field | Value | | ----------------- | -------------------------------- | | Model id | `tavily-search-test` | | Input modalities | text | | Output modalities | text | | Context window | — | | Region | — | | Features | web\_search, crawl, extract, map | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ------------------------------ | ------------ | -------- | | Search (Basic/Fast/Ultra-Fast) | per search | \$0.0096 | | Search (Advanced) | per search | \$0.019 | | Search (Advanced + Answer) | per search | \$0.029 | | Extract (Basic) | per 5 URLs | \$0.0096 | | Extract (Advanced) | per 5 URLs | \$0.019 | | Crawl/Map (basic) | per 10 pages | \$0.0096 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/search \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "tavily-search-test", "query": "latest LLM benchmarks 2026"}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/tavily-search-test`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Tencent ## Models from Tencent Open-source text-to-image model on a multimodal Mixture-of-Experts architecture with photorealistic detail and strong multilingual text rendering. 8.3B-parameter video model with native 720p output (upscalable to 1080p), strong motion coherence, and bilingual prompt understanding up to 10s. # Hunyuan-Image-3 **Provider:** [Tencent](/providers/tencent)\ **Category:** Image generation\ **Endpoint:** `POST /v1/images/generations`\ **Context window:** —\ **Served from:** — Open-source text-to-image model on a multimodal Mixture-of-Experts architecture with photorealistic detail and strong multilingual text rendering. ## At a glance | Field | Value | | ----------------- | ---------------------------- | | Model id | `hunyuan-image-3` | | Input modalities | text | | Output modalities | image | | Context window | — | | Region | — | | Features | photorealistic, multilingual | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | -------- | --------- | ------ | | Standard | per image | \$0.13 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/images/generations \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "hunyuan-image-3", "prompt": "a misty forest at dawn", "size": "1024x1024"}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/hunyuan-image-3`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Hunyuan-Video-1.5 **Provider:** [Tencent](/providers/tencent)\ **Category:** Video generation\ **Endpoint:** `POST /v1/videos/generations`\ **Context window:** —\ **Served from:** EmpirioLabs (Native Inference) 8.3B-parameter video model with native 720p output (upscalable to 1080p), strong motion coherence, and bilingual prompt understanding up to 10s. ## At a glance | Field | Value | | ----------------- | ------------------------------ | | Model id | `hunyuan-video-1-5` | | Input modalities | text | | Output modalities | video | | Context window | — | | Region | EmpirioLabs (Native Inference) | | Features | 1080p\_upscale, bilingual | | New | No | | Native inference | Yes | ## Pricing | Charge | Spec | Rate | | ---------------- | ---------------------------- | ------------------ | | 480p | per second (\~2 min for 5s) | \$0.061 | | 720p | per second (\~8 min for 5s) | \$0.29 | | 1080p (upscaled) | per second (\~20 min for 5s) | \$0.67 | | Notes | 1080p limit | 5s max generations | ## Example request ```bash curl https://api.empiriolabs.ai/v1/videos/generations \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "hunyuan-video-1-5", "prompt": "sunrise over the ocean", "duration": 6}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/hunyuan-video-1-5`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # VITA-Group / EPFL ## Models from VITA-Group / EPFL Stable Video Infinity 2.0 Pro on WAN 2.2: extends still images into theoretically infinite-length video while keeping consistent character IDs. # SVI-2.0-Pro **Provider:** [VITA-Group / EPFL](/providers/vita-epfl)\ **Category:** Video generation\ **Endpoint:** `POST /v1/videos/generations`\ **Context window:** —\ **Served from:** EmpirioLabs (Native Inference) Stable Video Infinity 2.0 Pro on WAN 2.2: extends still images into theoretically infinite-length video while keeping consistent character IDs. ## At a glance | Field | Value | | ----------------- | ---------------------------------------- | | Model id | `svi-2-0-pro` | | Input modalities | text | | Output modalities | video | | Context window | — | | Region | EmpirioLabs (Native Inference) | | Features | infinite\_length, character\_consistency | | New | No | | Native inference | Yes | ## Pricing | Charge | Spec | Rate | | ----------- | -------------- | ------- | | 480p Video | per second | \$0.057 | | 720p Video | per second | \$0.17 | | T2V Fast | additional fee | \$0.065 | | T2V Quality | additional fee | \$0.13 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/videos/generations \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "svi-2-0-pro", "prompt": "sunrise over the ocean", "duration": 6}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/svi-2-0-pro`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # WinFunc ## Models from WinFunc Pairs DeepSeek R1 chain-of-thought reasoning with Anthropic Claude creative and code generation behind a unified, data-controlled interface. # DeepReasoning **Provider:** [WinFunc](/providers/winfunc)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** —\ **Served from:** EmpirioLabs (Native Inference) Pairs DeepSeek R1 chain-of-thought reasoning with Anthropic Claude creative and code generation behind a unified, data-controlled interface. ## At a glance | Field | Value | | ----------------- | ------------------------------ | | Model id | `deepreasoning` | | Input modalities | text | | Output modalities | text | | Context window | — | | Region | EmpirioLabs (Native Inference) | | Features | reasoning, thinking | | New | No | | Native inference | Yes | ## Pricing | Charge | Spec | Rate | | ------------------------------------- | ------------- | ----------------------------------- | | R1-0528 + Claude Sonnet 4.5 (Default) | per 1K tokens | In 385 ($0.012) / Out 1899 ($0.058) | | R1-0528 + Claude Haiku 4.5 | per 1K tokens | In 160 ($0.0048) / Out 765 ($0.023) | | R1-0528 + Claude Opus 4.5 | per 1K tokens | In 613 ($0.019) / Out 3032 ($0.092) | | R1-0528 + Claude Sonnet 4 | per 1K tokens | In 385 ($0.012) / Out 1899 ($0.058) | | R1-0528 + Claude Opus 4.1 | per 1K tokens | In 1746 ($0.053) / Out 8699 ($0.26) | | R1-0528 + Claude Opus 4 | per 1K tokens | In 1746 ($0.053) / Out 8699 ($0.26) | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "deepreasoning", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/deepreasoning`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Xiaomi ## Models from Xiaomi Lightweight, high-speed reasoning model with hybrid attention and multi-token prediction for low-cost inference and strong benchmark scores. Omni-modal foundation model that natively understands text, images, audio, and video with deep reasoning, web search, and multi-step planning. Reasoning and agentic foundation model on a trillion-parameter MoE (42B active) with up to 1M-token context for complex coding and agent work. Multimodal model with native visual and audio understanding on a 1M context, designed to reason and act across modalities in agentic workflows. Top-tier model for agentic workflows, complex software engineering, and long-horizon tasks, sustaining work across 1000+ tool calls on 1M context. # MiMo-V2-Flash **Provider:** [Xiaomi](/providers/xiaomi)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** 256K\ **Served from:** — Lightweight, high-speed reasoning model with hybrid attention and multi-token prediction for low-cost inference and strong benchmark scores. ## At a glance | Field | Value | | ----------------- | --------------- | | Model id | `mimo-v2-flash` | | Input modalities | text, image | | Output modalities | text | | Context window | 256K | | Region | — | | Features | vision | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ---------- | ------------- | ------- | | Input | per 1M tokens | \$0.10 | | Output | per 1M tokens | \$0.30 | | Web Search | per call | \$0.015 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "mimo-v2-flash", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/mimo-v2-flash`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # MiMo-V2-Omni **Provider:** [Xiaomi](/providers/xiaomi)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** 256K\ **Served from:** — Omni-modal foundation model that natively understands text, images, audio, and video with deep reasoning, web search, and multi-step planning. ## At a glance | Field | Value | | ----------------- | ------------------ | | Model id | `mimo-v2-omni` | | Input modalities | text, image, audio | | Output modalities | text, audio | | Context window | 256K | | Region | — | | Features | vision, audio\_in | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ---------- | ------------- | ------- | | Input | per 1M tokens | \$0.40 | | Output | per 1M tokens | \$2.00 | | Web Search | per call | \$0.015 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "mimo-v2-omni", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/mimo-v2-omni`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # MiMo-V2-Pro **Provider:** [Xiaomi](/providers/xiaomi)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** 1M\ **Served from:** — Reasoning and agentic foundation model on a trillion-parameter MoE (42B active) with up to 1M-token context for complex coding and agent work. ## At a glance | Field | Value | | ----------------- | ----------------- | | Model id | `mimo-v2-pro` | | Input modalities | text, image | | Output modalities | text | | Context window | 1M | | Region | — | | Features | vision, reasoning | | New | No | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ---------- | ---------------------- | ------- | | Input | ≤256K, per 1M tokens | \$1.00 | | Input | 256K-1M, per 1M tokens | \$2.00 | | Output | ≤256K, per 1M tokens | \$3.00 | | Output | 256K-1M, per 1M tokens | \$6.00 | | Web Search | per call | \$0.015 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "mimo-v2-pro", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/mimo-v2-pro`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # MiMo-V2.5 **Provider:** [Xiaomi](/providers/xiaomi)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** 1M\ **Served from:** — Multimodal model with native visual and audio understanding on a 1M context, designed to reason and act across modalities in agentic workflows. ## At a glance | Field | Value | | ----------------- | ------------------ | | Model id | `mimo-v2-5` | | Input modalities | text, image, audio | | Output modalities | text, audio | | Context window | 1M | | Region | — | | Features | vision, audio\_in | | New | Yes | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ------ | ------------- | ------ | | Input | per 1M tokens | \$0.40 | | Output | per 1M tokens | \$2.00 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "mimo-v2-5", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/mimo-v2-5`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # MiMo-V2.5-Pro **Provider:** [Xiaomi](/providers/xiaomi)\ **Category:** Text & reasoning\ **Endpoint:** `POST /v1/chat/completions`\ **Context window:** 1M\ **Served from:** — Top-tier model for agentic workflows, complex software engineering, and long-horizon tasks, sustaining work across 1000+ tool calls on 1M context. ## At a glance | Field | Value | | ----------------- | -------------------------- | | Model id | `mimo-v2-5-pro` | | Input modalities | text, image, audio | | Output modalities | text | | Context window | 1M | | Region | — | | Features | vision, reasoning, agentic | | New | Yes | | Native inference | No | ## Pricing | Charge | Spec | Rate | | ------ | ---------------------- | ---------- | | Input | ≤256K, per 1M tokens | \$1.00 | | Input | 256K-1M, per 1M tokens | \$2.00 | | Output | ≤256K, per 1M tokens | \$3.00 | | Output | 256K-1M, per 1M tokens | \$6.00 | | Notes | input >256K | 2x pricing | ## Example request ```bash curl https://api.empiriolabs.ai/v1/chat/completions \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "mimo-v2-5-pro", "messages": [{"role":"user","content":"Hello"}]}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/mimo-v2-5-pro`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # Zhipu AI ## Models from Zhipu AI LLM-based text-to-speech with zero-shot voice cloning from 3-10s of audio and emotion-expressive, controllable output via multi-reward RL. # GLM-TTS **Provider:** [Zhipu AI](/providers/zhipu)\ **Category:** Audio generation\ **Endpoint:** `POST /v1/audio/speech`\ **Context window:** —\ **Served from:** EmpirioLabs (Native Inference) LLM-based text-to-speech with zero-shot voice cloning from 3-10s of audio and emotion-expressive, controllable output via multi-reward RL. ## At a glance | Field | Value | | ----------------- | -------------------------------- | | Model id | `glm-tts` | | Input modalities | text | | Output modalities | audio | | Context window | — | | Region | EmpirioLabs (Native Inference) | | Features | voice\_cloning, emotion\_control | | New | No | | Native inference | Yes | ## Pricing | Charge | Spec | Rate | | -------------- | ----------------- | ------ | | Fast (INT8) | per 1k characters | \$0.20 | | Quality (FP16) | per 1k characters | \$0.21 | ## Example request ```bash curl https://api.empiriolabs.ai/v1/audio/speech \ -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \ -H 'Content-Type: application/json' \ -d '{"model": "glm-tts", "input": "Hello from EmpirioLabs."}' ``` ## Parameters Every parameter this model accepts is documented in the live machine-readable schema returned by `GET /v1/models/glm-tts`. Common controls include `temperature`, `top_p`, `max_tokens`, and the universal `disable_formatting` passthrough flag (also accepted as `raw=true`). # API Reference Overview The EmpirioLabs API speaks OpenAI- and Anthropic-compatible request shapes so any client that talks to those providers works against `https://api.empiriolabs.ai` unchanged. All requests require a bearer token (`Authorization: Bearer $EMPIRIOLABS_API_KEY` or the Anthropic-style `x-api-key` header). ## Endpoints | Method | Path | Description | | ------ | -------------------------- | ----------------------------------------------------------------------------------------------------------------- | | `GET` | `/v1/models` | Catalog of every model with pricing, parameter schema, capability flags, regions, and API status | | `GET` | `/v1/models/{model_id}` | Details for a single model (use this as the canonical parameter schema for that model) | | `POST` | `/v1/chat/completions` | OpenAI-compatible chat completions (streaming + non-streaming) | | `POST` | `/v1/responses` | OpenAI Responses-compatible endpoint | | `POST` | `/v1/messages` | Anthropic Messages-compatible endpoint | | `POST` | `/v1/embeddings` | OpenAI-compatible embeddings | | `POST` | `/v1/images/generations` | Image generation; returns hosted URLs and optional `b64_json` | | `POST` | `/v1/videos/generations` | Async video generation; returns a `job_id` plus a polling URL | | `POST` | `/v1/audio/speech` | Text-to-speech; returns hosted URLs and optional `b64_json` | | `POST` | `/v1/audio/transcriptions` | Audio/video transcription (`whisper-1`, `deepgram-nova-3`, etc.); async — returns a `job_id` | | `POST` | `/v1/search` | Search and research endpoint for Exa, Tavily, Linkup, Perplexity Search | | `POST` | `/v1/files/upload` | Multipart upload of an audio, image, or video file (returns a `bunny://` storage path the other endpoints accept) | | `GET` | `/v1/jobs/{job_id}` | Poll the status / final result of any async generation or transcription job | ## Models as the source of truth `GET /v1/models` is the canonical schema. Every model returns: * `pricing_rows[]` — per-token, per-image, per-second, or per-call rates with any cache or volume discounts applied. * `supported_parameters[]` — name + type + default + range for every parameter the model accepts (including conditional parameters that only apply when another flag is set). * `capabilities` — flags for `streaming`, `system_prompt`, `tool_calling`, `vision`, `audio_input`, `video_input`, `web_search`, `thinking`, `citations`, etc. * `input_modalities` / `output_modalities` — distinct lists so multimodal models that accept video as input but only emit text are not mistaken for video generators. ```bash curl "https://api.empiriolabs.ai/v1/models" \ -H "Authorization: Bearer $EMPIRIOLABS_API_KEY" ``` ## Universal `disable_formatting` flag Every chat, search, and media endpoint accepts a `disable_formatting=true` flag (also accepted as `raw=true`, `passthrough=true`, or `raw_response=true`). When set, the worker skips EmpirioLabs server-side formatting (Markdown "Thinking…" headers, citation list reformatting, code-block wrapping, etc.) and returns the upstream payload shape verbatim. Use this when: * You render responses yourself and want full control of the markdown. * You feed the response into a downstream pipeline that expects the raw upstream shape. * You are debugging why a response looks different in the playground vs your app. ## Tool calling Tool / function calling propagates straight through. Pass standard OpenAI `tools[]` and `tool_choice` on `/v1/chat/completions`; the response carries `message.tool_calls[]` and a downstream `role: "tool"` message round-trips correctly. Anthropic-style tool blocks work the same way on `/v1/messages`. ## Long-running requests The platform's inbound HTTP timeout is **15 minutes** (the maximum a Railway edge connection holds open). Anything that needs longer must use the asynchronous `POST /v1/jobs/...` family: * `/v1/audio/transcriptions` returns a `job_id` immediately. * `/v1/images/generations` and `/v1/videos/generations` always create a job (image jobs typically complete in seconds; video jobs in 1-15 minutes). * Poll `GET /v1/jobs/{job_id}` every 2-10 seconds. Job state is retained for up to 1 hour after completion. If a synchronous chat completion needs more than \~14 minutes of compute (deep reasoning, multi-step research), set `stream=true` so partial output is returned as it arrives. ## Generated media retention All generated images, videos, audio, and stored transcript files live on the EmpirioLabs media CDN at `https://media.empiriolabs.ai`. URLs returned by the API are signed with a **7-day expiry**. The underlying objects are deleted after **30 days**. Save anything you need to keep — both at the URL level and the file level — within that window. ## Errors Errors come back in OpenAI's shape (`{"error": {"message", "type", "code"}}`) on chat/responses endpoints, and Anthropic's shape on `/v1/messages`. Errors never leak the upstream provider name, internal hostnames, or provider request IDs — those are stripped by the gateway and worker layers before the response reaches you. ## How to use the generated reference * Open **API Reference** in the top navigation tab. * Inspect endpoint details, required fields, and example payloads. * Use the example responses to align your integration with the documented contract. * Use [AI Agent Access](/ai-agent-access) when you want an AI coding assistant to read the docs through `llms.txt` or machine-readable API schemas. If you're onboarding a new integration, start with [Getting Started](/getting-started) for a quick walkthrough, then move into the generated reference for full request and response details. # AI Agent Access EmpirioLabs publishes the entire docs site (every page, every provider, every model, the changelog, and the OpenAPI spec) as one plain-text file so AI coding assistants can ingest it in a single fetch — no scraping, no crawler, no rate limits. ## The bundles Lightweight map of every page in the documentation. Use this when you want an agent to navigate to specific topics on demand. The entire documentation (every page, all 25 provider pages, all 79 model pages, the changelog, and the OpenAPI spec) concatenated for one-shot ingestion. ## Recommended agent setup When configuring an AI coding assistant for an EmpirioLabs integration, give it the bundle URLs up front: ```text Use https://docs.empiriolabs.ai/llms-full.txt as the source of truth for the EmpirioLabs AI platform — it includes all documentation, the per-provider model pages, the canonical /v1/models schema reference, and the OpenAPI spec. Use https://docs.empiriolabs.ai/llms.txt when you want a compact table-of-contents instead. Always check the machine-readable parameter schema returned by GET /v1/models/{model_id} before using a parameter, since each model exposes its own parameter set. ``` The bundle includes: * All overview, getting started, and platform pages * The per-provider and per-model pages with parameter schemas, pricing, and example `curl` requests * The full `openapi.yaml` describing every endpoint * The changelog ## Live source-of-truth endpoints For dynamic data (pricing changes, new models, capability flags), agents should hit the live API instead of relying on the bundle alone: * `GET https://api.empiriolabs.ai/v1/models` — list of every model with pricing, capabilities, and parameter schema * `GET https://api.empiriolabs.ai/v1/models/{model_id}` — full schema for a specific model, including `supported_parameters` with name, type, default, and range for every parameter the model accepts These endpoints require a bearer token but are read-only and free. # Support Use the channels below when you need help building with EmpirioLabs. ## Contact options * **Support email:** [support@empiriolabs.ai](mailto:support@empiriolabs.ai) * **Discord community:** [discord.gg/bM52azW4ZD](https://discord.gg/bM52azW4ZD) * **Website:** [empiriolabs.ai](https://empiriolabs.ai) ## When to reach out * You need help planning a production rollout * You are troubleshooting authentication or API issues * You want guidance on model selection or parameter tuning * You need higher rate limits for your account * You found a documentation issue that needs correction # List models GET https://api.empiriolabs.ai/v1/models Returns the full model catalog including pricing, context windows, regions, supported parameters, and API status for each model. Reference: https://docs.empiriolabs.ai/api-reference/api-reference/models/list-models ## OpenAPI Specification ```yaml openapi: 3.1.0 info: title: EmpirioLabs AI REST API version: 1.0.0 paths: /v1/models: get: operationId: list-models summary: List models description: >- Returns the full model catalog including pricing, context windows, regions, supported parameters, and API status for each model. tags: - subpackage_models parameters: - name: Authorization in: header description: >- Use an API key with the `sk-empiriolabs-` prefix as the bearer token. required: true schema: type: string responses: '200': description: The complete model catalog. content: application/json: schema: $ref: '#/components/schemas/models_listModels_Response_200' '401': description: The bearer token is missing, malformed, or invalid. content: application/json: schema: $ref: '#/components/schemas/Error' servers: - url: https://api.empiriolabs.ai components: schemas: ModelApiStatus: type: string enum: - planned - poe_only - platform - both - disabled description: Whether the model is available through the EmpirioLabs API. title: ModelApiStatus ModelPricingItems: type: object properties: type: type: string direction: type: string rate: type: string unit: type: string title: ModelPricingItems ModelParametersItems: type: object properties: {} title: ModelParametersItems Model: type: object properties: id: type: string description: Unique model identifier used in API requests. object: type: string display_name: type: string description: Human-readable model name. provider: type: string description: The upstream model provider. modalities: type: array items: type: string description: Supported input/output modalities (text, image, audio, video). served_from: type: string description: Region or infrastructure the model is served from. context_window: type: integer description: Maximum context window in tokens. api_status: $ref: '#/components/schemas/ModelApiStatus' description: Whether the model is available through the EmpirioLabs API. pricing: type: array items: $ref: '#/components/schemas/ModelPricingItems' description: >- Pricing entries for this model (may include input tokens, output tokens, images, etc.). parameters: type: array items: $ref: '#/components/schemas/ModelParametersItems' description: Supported request parameters for this model. required: - id - object - display_name title: Model models_listModels_Response_200: type: object properties: object: type: string data: type: array items: $ref: '#/components/schemas/Model' title: models_listModels_Response_200 Error: type: object properties: code: type: string description: Machine-readable error code. message: type: string description: Human-readable error description. required: - code - message title: Error securitySchemes: bearerAuth: type: http scheme: bearer description: Use an API key with the `sk-empiriolabs-` prefix as the bearer token. ``` ## SDK Code Examples ```python default import requests url = "https://api.empiriolabs.ai/v1/models" headers = {"Authorization": "Bearer "} response = requests.get(url, headers=headers) print(response.json()) ``` ```javascript default const url = 'https://api.empiriolabs.ai/v1/models'; const options = {method: 'GET', headers: {Authorization: 'Bearer '}}; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go default package main import ( "fmt" "net/http" "io" ) func main() { url := "https://api.empiriolabs.ai/v1/models" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("Authorization", "Bearer ") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby default require 'uri' require 'net/http' url = URI("https://api.empiriolabs.ai/v1/models") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) request["Authorization"] = 'Bearer ' response = http.request(request) puts response.read_body ``` ```java default import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.get("https://api.empiriolabs.ai/v1/models") .header("Authorization", "Bearer ") .asString(); ``` ```php default request('GET', 'https://api.empiriolabs.ai/v1/models', [ 'headers' => [ 'Authorization' => 'Bearer ', ], ]); echo $response->getBody(); ``` ```csharp default using RestSharp; var client = new RestClient("https://api.empiriolabs.ai/v1/models"); var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Bearer "); IRestResponse response = client.Execute(request); ``` ```swift default import Foundation let headers = ["Authorization": "Bearer "] let request = NSMutableURLRequest(url: NSURL(string: "https://api.empiriolabs.ai/v1/models")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "GET" request.allHTTPHeaderFields = headers let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` # Retrieve a model GET https://api.empiriolabs.ai/v1/models/{modelId} Returns metadata, pricing, supported parameters, and API status for a single model. Reference: https://docs.empiriolabs.ai/api-reference/api-reference/models/get-model ## OpenAPI Specification ```yaml openapi: 3.1.0 info: title: EmpirioLabs AI REST API version: 1.0.0 paths: /v1/models/{modelId}: get: operationId: get-model summary: Retrieve a model description: >- Returns metadata, pricing, supported parameters, and API status for a single model. tags: - subpackage_models parameters: - name: modelId in: path description: >- The model identifier (e.g. `gpt-4.1-mini`, `claude-sonnet-4-20250514`). required: true schema: type: string - name: Authorization in: header description: >- Use an API key with the `sk-empiriolabs-` prefix as the bearer token. required: true schema: type: string responses: '200': description: Model metadata, pricing, and supported parameters. content: application/json: schema: $ref: '#/components/schemas/Model' '401': description: The bearer token is missing, malformed, or invalid. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: The requested resource could not be found. content: application/json: schema: $ref: '#/components/schemas/Error' servers: - url: https://api.empiriolabs.ai components: schemas: ModelApiStatus: type: string enum: - planned - poe_only - platform - both - disabled description: Whether the model is available through the EmpirioLabs API. title: ModelApiStatus ModelPricingItems: type: object properties: type: type: string direction: type: string rate: type: string unit: type: string title: ModelPricingItems ModelParametersItems: type: object properties: {} title: ModelParametersItems Model: type: object properties: id: type: string description: Unique model identifier used in API requests. object: type: string display_name: type: string description: Human-readable model name. provider: type: string description: The upstream model provider. modalities: type: array items: type: string description: Supported input/output modalities (text, image, audio, video). served_from: type: string description: Region or infrastructure the model is served from. context_window: type: integer description: Maximum context window in tokens. api_status: $ref: '#/components/schemas/ModelApiStatus' description: Whether the model is available through the EmpirioLabs API. pricing: type: array items: $ref: '#/components/schemas/ModelPricingItems' description: >- Pricing entries for this model (may include input tokens, output tokens, images, etc.). parameters: type: array items: $ref: '#/components/schemas/ModelParametersItems' description: Supported request parameters for this model. required: - id - object - display_name title: Model Error: type: object properties: code: type: string description: Machine-readable error code. message: type: string description: Human-readable error description. required: - code - message title: Error securitySchemes: bearerAuth: type: http scheme: bearer description: Use an API key with the `sk-empiriolabs-` prefix as the bearer token. ``` ## SDK Code Examples ```python import requests url = "https://api.empiriolabs.ai/v1/models/modelId" payload = {} headers = { "Authorization": "Bearer ", "Content-Type": "application/json" } response = requests.get(url, json=payload, headers=headers) print(response.json()) ``` ```javascript const url = 'https://api.empiriolabs.ai/v1/models/modelId'; const options = { method: 'GET', headers: {Authorization: 'Bearer ', 'Content-Type': 'application/json'}, body: '{}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.empiriolabs.ai/v1/models/modelId" payload := strings.NewReader("{}") req, _ := http.NewRequest("GET", url, payload) req.Header.Add("Authorization", "Bearer ") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby require 'uri' require 'net/http' url = URI("https://api.empiriolabs.ai/v1/models/modelId") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) request["Authorization"] = 'Bearer ' request["Content-Type"] = 'application/json' request.body = "{}" response = http.request(request) puts response.read_body ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.get("https://api.empiriolabs.ai/v1/models/modelId") .header("Authorization", "Bearer ") .header("Content-Type", "application/json") .body("{}") .asString(); ``` ```php request('GET', 'https://api.empiriolabs.ai/v1/models/modelId', [ 'body' => '{}', 'headers' => [ 'Authorization' => 'Bearer ', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("https://api.empiriolabs.ai/v1/models/modelId"); var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Bearer "); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = [ "Authorization": "Bearer ", "Content-Type": "application/json" ] let parameters = [] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.empiriolabs.ai/v1/models/modelId")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "GET" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` # Create a chat completion POST https://api.empiriolabs.ai/v1/chat/completions Content-Type: application/json OpenAI-compatible chat completions endpoint. Accepts the same request body as the OpenAI Chat Completions API and returns a compatible response. Supports streaming via the `stream` parameter. Reference: https://docs.empiriolabs.ai/api-reference/api-reference/chat/create-chat-completion ## OpenAPI Specification ```yaml openapi: 3.1.0 info: title: EmpirioLabs AI REST API version: 1.0.0 paths: /v1/chat/completions: post: operationId: create-chat-completion summary: Create a chat completion description: > OpenAI-compatible chat completions endpoint. Accepts the same request body as the OpenAI Chat Completions API and returns a compatible response. Supports streaming via the `stream` parameter. tags: - subpackage_chat parameters: - name: Authorization in: header description: >- Use an API key with the `sk-empiriolabs-` prefix as the bearer token. required: true schema: type: string responses: '200': description: Chat completion response. content: application/json: schema: $ref: '#/components/schemas/ChatCompletionResponse' '401': description: The bearer token is missing, malformed, or invalid. content: application/json: schema: $ref: '#/components/schemas/Error' '402': description: The account does not have enough credits to process the request. content: application/json: schema: $ref: '#/components/schemas/Error' '429': description: The account has exceeded its rate limit (default 50 RPM, 1M TPM). content: application/json: schema: $ref: '#/components/schemas/Error' requestBody: content: application/json: schema: type: object properties: model: type: string description: Model ID from the catalog (e.g. `gpt-4.1-mini`). messages: type: array items: $ref: >- #/components/schemas/V1ChatCompletionsPostRequestBodyContentApplicationJsonSchemaMessagesItems description: The conversation messages in OpenAI format. stream: type: boolean description: If true, the response is streamed as server-sent events. temperature: type: number format: double description: Sampling temperature between 0 and 2. max_tokens: type: integer description: Maximum number of tokens to generate. required: - model - messages servers: - url: https://api.empiriolabs.ai components: schemas: V1ChatCompletionsPostRequestBodyContentApplicationJsonSchemaMessagesItemsRole: type: string enum: - system - user - assistant title: >- V1ChatCompletionsPostRequestBodyContentApplicationJsonSchemaMessagesItemsRole V1ChatCompletionsPostRequestBodyContentApplicationJsonSchemaMessagesItems: type: object properties: role: $ref: >- #/components/schemas/V1ChatCompletionsPostRequestBodyContentApplicationJsonSchemaMessagesItemsRole content: type: string title: >- V1ChatCompletionsPostRequestBodyContentApplicationJsonSchemaMessagesItems ChatCompletionResponseChoicesItemsMessage: type: object properties: role: type: string content: type: string title: ChatCompletionResponseChoicesItemsMessage ChatCompletionResponseChoicesItems: type: object properties: index: type: integer message: $ref: '#/components/schemas/ChatCompletionResponseChoicesItemsMessage' finish_reason: type: string title: ChatCompletionResponseChoicesItems ChatCompletionResponseUsage: type: object properties: prompt_tokens: type: integer completion_tokens: type: integer total_tokens: type: integer title: ChatCompletionResponseUsage ChatCompletionResponse: type: object properties: id: type: string object: type: string created: type: integer model: type: string choices: type: array items: $ref: '#/components/schemas/ChatCompletionResponseChoicesItems' usage: $ref: '#/components/schemas/ChatCompletionResponseUsage' title: ChatCompletionResponse Error: type: object properties: code: type: string description: Machine-readable error code. message: type: string description: Human-readable error description. required: - code - message title: Error securitySchemes: bearerAuth: type: http scheme: bearer description: Use an API key with the `sk-empiriolabs-` prefix as the bearer token. ``` ## SDK Code Examples ```python import requests url = "https://api.empiriolabs.ai/v1/chat/completions" payload = { "model": "gpt-4.1-mini", "messages": [ { "role": "user", "content": "What is EmpirioLabs AI?" } ] } headers = { "Authorization": "Bearer ", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript const url = 'https://api.empiriolabs.ai/v1/chat/completions'; const options = { method: 'POST', headers: {Authorization: 'Bearer ', 'Content-Type': 'application/json'}, body: '{"model":"gpt-4.1-mini","messages":[{"role":"user","content":"What is EmpirioLabs AI?"}]}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.empiriolabs.ai/v1/chat/completions" payload := strings.NewReader("{\n \"model\": \"gpt-4.1-mini\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"What is EmpirioLabs AI?\"\n }\n ]\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "Bearer ") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby require 'uri' require 'net/http' url = URI("https://api.empiriolabs.ai/v1/chat/completions") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Authorization"] = 'Bearer ' request["Content-Type"] = 'application/json' request.body = "{\n \"model\": \"gpt-4.1-mini\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"What is EmpirioLabs AI?\"\n }\n ]\n}" response = http.request(request) puts response.read_body ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.empiriolabs.ai/v1/chat/completions") .header("Authorization", "Bearer ") .header("Content-Type", "application/json") .body("{\n \"model\": \"gpt-4.1-mini\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"What is EmpirioLabs AI?\"\n }\n ]\n}") .asString(); ``` ```php request('POST', 'https://api.empiriolabs.ai/v1/chat/completions', [ 'body' => '{ "model": "gpt-4.1-mini", "messages": [ { "role": "user", "content": "What is EmpirioLabs AI?" } ] }', 'headers' => [ 'Authorization' => 'Bearer ', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("https://api.empiriolabs.ai/v1/chat/completions"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", "Bearer "); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"model\": \"gpt-4.1-mini\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"What is EmpirioLabs AI?\"\n }\n ]\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = [ "Authorization": "Bearer ", "Content-Type": "application/json" ] let parameters = [ "model": "gpt-4.1-mini", "messages": [ [ "role": "user", "content": "What is EmpirioLabs AI?" ] ] ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.empiriolabs.ai/v1/chat/completions")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` # Create a response POST https://api.empiriolabs.ai/v1/responses Content-Type: application/json OpenAI Responses-compatible endpoint. Accepts the same request body as the OpenAI Responses API. Reference: https://docs.empiriolabs.ai/api-reference/api-reference/responses/create-response ## OpenAPI Specification ```yaml openapi: 3.1.0 info: title: EmpirioLabs AI REST API version: 1.0.0 paths: /v1/responses: post: operationId: create-response summary: Create a response description: | OpenAI Responses-compatible endpoint. Accepts the same request body as the OpenAI Responses API. tags: - subpackage_responses parameters: - name: Authorization in: header description: >- Use an API key with the `sk-empiriolabs-` prefix as the bearer token. required: true schema: type: string responses: '200': description: Response object. content: application/json: schema: $ref: '#/components/schemas/responses_createResponse_Response_200' '401': description: The bearer token is missing, malformed, or invalid. content: application/json: schema: $ref: '#/components/schemas/Error' '402': description: The account does not have enough credits to process the request. content: application/json: schema: $ref: '#/components/schemas/Error' '429': description: The account has exceeded its rate limit (default 50 RPM, 1M TPM). content: application/json: schema: $ref: '#/components/schemas/Error' requestBody: content: application/json: schema: type: object properties: model: type: string description: Model ID from the catalog. input: $ref: >- #/components/schemas/V1ResponsesPostRequestBodyContentApplicationJsonSchemaInput description: Text or multimodal input. instructions: type: string description: System-level instructions for the model. required: - model - input servers: - url: https://api.empiriolabs.ai components: schemas: V1ResponsesPostRequestBodyContentApplicationJsonSchemaInputOneOf1Items: type: object properties: {} title: V1ResponsesPostRequestBodyContentApplicationJsonSchemaInputOneOf1Items V1ResponsesPostRequestBodyContentApplicationJsonSchemaInput1: type: array items: $ref: >- #/components/schemas/V1ResponsesPostRequestBodyContentApplicationJsonSchemaInputOneOf1Items title: V1ResponsesPostRequestBodyContentApplicationJsonSchemaInput1 V1ResponsesPostRequestBodyContentApplicationJsonSchemaInput: oneOf: - type: string - $ref: >- #/components/schemas/V1ResponsesPostRequestBodyContentApplicationJsonSchemaInput1 description: Text or multimodal input. title: V1ResponsesPostRequestBodyContentApplicationJsonSchemaInput responses_createResponse_Response_200: type: object properties: {} description: Empty response body title: responses_createResponse_Response_200 Error: type: object properties: code: type: string description: Machine-readable error code. message: type: string description: Human-readable error description. required: - code - message title: Error securitySchemes: bearerAuth: type: http scheme: bearer description: Use an API key with the `sk-empiriolabs-` prefix as the bearer token. ``` ## SDK Code Examples ```python import requests url = "https://api.empiriolabs.ai/v1/responses" payload = { "model": "gpt-4.1-mini", "input": "Write a launch checklist." } headers = { "Authorization": "Bearer ", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript const url = 'https://api.empiriolabs.ai/v1/responses'; const options = { method: 'POST', headers: {Authorization: 'Bearer ', 'Content-Type': 'application/json'}, body: '{"model":"gpt-4.1-mini","input":"Write a launch checklist."}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.empiriolabs.ai/v1/responses" payload := strings.NewReader("{\n \"model\": \"gpt-4.1-mini\",\n \"input\": \"Write a launch checklist.\"\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "Bearer ") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby require 'uri' require 'net/http' url = URI("https://api.empiriolabs.ai/v1/responses") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Authorization"] = 'Bearer ' request["Content-Type"] = 'application/json' request.body = "{\n \"model\": \"gpt-4.1-mini\",\n \"input\": \"Write a launch checklist.\"\n}" response = http.request(request) puts response.read_body ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.empiriolabs.ai/v1/responses") .header("Authorization", "Bearer ") .header("Content-Type", "application/json") .body("{\n \"model\": \"gpt-4.1-mini\",\n \"input\": \"Write a launch checklist.\"\n}") .asString(); ``` ```php request('POST', 'https://api.empiriolabs.ai/v1/responses', [ 'body' => '{ "model": "gpt-4.1-mini", "input": "Write a launch checklist." }', 'headers' => [ 'Authorization' => 'Bearer ', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("https://api.empiriolabs.ai/v1/responses"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", "Bearer "); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"model\": \"gpt-4.1-mini\",\n \"input\": \"Write a launch checklist.\"\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = [ "Authorization": "Bearer ", "Content-Type": "application/json" ] let parameters = [ "model": "gpt-4.1-mini", "input": "Write a launch checklist." ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.empiriolabs.ai/v1/responses")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` # Create an Anthropic-style message POST https://api.empiriolabs.ai/v1/messages Content-Type: application/json Anthropic Messages-compatible endpoint. Accepts the same request body as the Anthropic Messages API including `model`, `messages`, and `max_tokens`. Reference: https://docs.empiriolabs.ai/api-reference/api-reference/messages/create-message ## OpenAPI Specification ```yaml openapi: 3.1.0 info: title: EmpirioLabs AI REST API version: 1.0.0 paths: /v1/messages: post: operationId: create-message summary: Create an Anthropic-style message description: > Anthropic Messages-compatible endpoint. Accepts the same request body as the Anthropic Messages API including `model`, `messages`, and `max_tokens`. tags: - subpackage_messages parameters: - name: Authorization in: header description: >- Use an API key with the `sk-empiriolabs-` prefix as the bearer token. required: true schema: type: string responses: '200': description: Message response. content: application/json: schema: $ref: '#/components/schemas/messages_createMessage_Response_200' '401': description: The bearer token is missing, malformed, or invalid. content: application/json: schema: $ref: '#/components/schemas/Error' '402': description: The account does not have enough credits to process the request. content: application/json: schema: $ref: '#/components/schemas/Error' '429': description: The account has exceeded its rate limit (default 50 RPM, 1M TPM). content: application/json: schema: $ref: '#/components/schemas/Error' requestBody: content: application/json: schema: type: object properties: model: type: string description: Model ID from the catalog (e.g. `claude-sonnet-4-20250514`). messages: type: array items: $ref: >- #/components/schemas/V1MessagesPostRequestBodyContentApplicationJsonSchemaMessagesItems description: The conversation messages in Anthropic format. max_tokens: type: integer description: >- Maximum number of tokens to generate (required by Anthropic format). required: - model - messages - max_tokens servers: - url: https://api.empiriolabs.ai components: schemas: V1MessagesPostRequestBodyContentApplicationJsonSchemaMessagesItemsRole: type: string enum: - user - assistant title: V1MessagesPostRequestBodyContentApplicationJsonSchemaMessagesItemsRole V1MessagesPostRequestBodyContentApplicationJsonSchemaMessagesItems: type: object properties: role: $ref: >- #/components/schemas/V1MessagesPostRequestBodyContentApplicationJsonSchemaMessagesItemsRole content: type: string title: V1MessagesPostRequestBodyContentApplicationJsonSchemaMessagesItems messages_createMessage_Response_200: type: object properties: {} description: Empty response body title: messages_createMessage_Response_200 Error: type: object properties: code: type: string description: Machine-readable error code. message: type: string description: Human-readable error description. required: - code - message title: Error securitySchemes: bearerAuth: type: http scheme: bearer description: Use an API key with the `sk-empiriolabs-` prefix as the bearer token. ``` ## SDK Code Examples ```python import requests url = "https://api.empiriolabs.ai/v1/messages" payload = { "model": "claude-sonnet-4-20250514", "messages": [ { "role": "user", "content": "Hello" } ], "max_tokens": 256 } headers = { "Authorization": "Bearer ", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` ```javascript const url = 'https://api.empiriolabs.ai/v1/messages'; const options = { method: 'POST', headers: {Authorization: 'Bearer ', 'Content-Type': 'application/json'}, body: '{"model":"claude-sonnet-4-20250514","messages":[{"role":"user","content":"Hello"}],"max_tokens":256}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://api.empiriolabs.ai/v1/messages" payload := strings.NewReader("{\n \"model\": \"claude-sonnet-4-20250514\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Hello\"\n }\n ],\n \"max_tokens\": 256\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Authorization", "Bearer ") req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby require 'uri' require 'net/http' url = URI("https://api.empiriolabs.ai/v1/messages") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Authorization"] = 'Bearer ' request["Content-Type"] = 'application/json' request.body = "{\n \"model\": \"claude-sonnet-4-20250514\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Hello\"\n }\n ],\n \"max_tokens\": 256\n}" response = http.request(request) puts response.read_body ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://api.empiriolabs.ai/v1/messages") .header("Authorization", "Bearer ") .header("Content-Type", "application/json") .body("{\n \"model\": \"claude-sonnet-4-20250514\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Hello\"\n }\n ],\n \"max_tokens\": 256\n}") .asString(); ``` ```php request('POST', 'https://api.empiriolabs.ai/v1/messages', [ 'body' => '{ "model": "claude-sonnet-4-20250514", "messages": [ { "role": "user", "content": "Hello" } ], "max_tokens": 256 }', 'headers' => [ 'Authorization' => 'Bearer ', 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("https://api.empiriolabs.ai/v1/messages"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", "Bearer "); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"model\": \"claude-sonnet-4-20250514\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Hello\"\n }\n ],\n \"max_tokens\": 256\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = [ "Authorization": "Bearer ", "Content-Type": "application/json" ] let parameters = [ "model": "claude-sonnet-4-20250514", "messages": [ [ "role": "user", "content": "Hello" ] ], "max_tokens": 256 ] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api.empiriolabs.ai/v1/messages")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` # runEvents GET /v1/runs/events Subscribe to lifecycle events for one or more runs. Reference: https://docs.empiriolabs.ai/api-reference/api-reference/run-events/run-events ## AsyncAPI Specification ```yaml asyncapi: 2.6.0 info: title: runEvents version: subpackage_runEvents.runEvents description: Subscribe to lifecycle events for one or more runs. channels: /v1/runs/events: description: Subscribe to lifecycle events for one or more runs. publish: operationId: run-events-publish summary: Server messages message: oneOf: - $ref: >- #/components/messages/subpackage_runEvents.runEvents-server-0-receiveRunEvents - $ref: >- #/components/messages/subpackage_runEvents.runEvents-server-1-receiveRunEvents - $ref: >- #/components/messages/subpackage_runEvents.runEvents-server-2-receiveRunEvents subscribe: operationId: run-events-subscribe summary: subscribe description: Send a subscription request to begin receiving run events. message: name: subscribe title: subscribe description: Send a subscription request to begin receiving run events. payload: $ref: '#/components/schemas/runEvents_subscribeRequest' servers: Production: url: wss://realtime.empiriolabs.ai/ protocol: wss x-default: true components: messages: subpackage_runEvents.runEvents-server-0-receiveRunEvents: name: receiveRunEvents title: receiveRunEvents description: Receive run lifecycle events from the platform. payload: $ref: '#/components/schemas/runEvents_runQueued' subpackage_runEvents.runEvents-server-1-receiveRunEvents: name: receiveRunEvents title: receiveRunEvents description: Receive run lifecycle events from the platform. payload: $ref: '#/components/schemas/runEvents_runCompleted' subpackage_runEvents.runEvents-server-2-receiveRunEvents: name: receiveRunEvents title: receiveRunEvents description: Receive run lifecycle events from the platform. payload: $ref: '#/components/schemas/runEvents_runFailed' schemas: ChannelsRunEventsMessagesRunQueuedType: type: string enum: - run.queued title: ChannelsRunEventsMessagesRunQueuedType ChannelsRunEventsMessagesRunQueuedStatus: type: string enum: - queued title: ChannelsRunEventsMessagesRunQueuedStatus runEvents_runQueued: type: object properties: type: $ref: '#/components/schemas/ChannelsRunEventsMessagesRunQueuedType' runId: type: string occurredAt: type: string format: date-time status: $ref: '#/components/schemas/ChannelsRunEventsMessagesRunQueuedStatus' required: - type - runId - occurredAt - status title: runEvents_runQueued ChannelsRunEventsMessagesRunCompletedType: type: string enum: - run.completed title: ChannelsRunEventsMessagesRunCompletedType ChannelsRunEventsMessagesRunCompletedStatus: type: string enum: - completed title: ChannelsRunEventsMessagesRunCompletedStatus ChannelsRunEventsMessagesRunCompletedOutput: type: object properties: text: type: string title: ChannelsRunEventsMessagesRunCompletedOutput runEvents_runCompleted: type: object properties: type: $ref: '#/components/schemas/ChannelsRunEventsMessagesRunCompletedType' runId: type: string occurredAt: type: string format: date-time status: $ref: '#/components/schemas/ChannelsRunEventsMessagesRunCompletedStatus' output: $ref: '#/components/schemas/ChannelsRunEventsMessagesRunCompletedOutput' required: - type - runId - occurredAt - status - output title: runEvents_runCompleted ChannelsRunEventsMessagesRunFailedType: type: string enum: - run.failed title: ChannelsRunEventsMessagesRunFailedType ChannelsRunEventsMessagesRunFailedStatus: type: string enum: - failed title: ChannelsRunEventsMessagesRunFailedStatus runEvents_runFailed: type: object properties: type: $ref: '#/components/schemas/ChannelsRunEventsMessagesRunFailedType' runId: type: string occurredAt: type: string format: date-time status: $ref: '#/components/schemas/ChannelsRunEventsMessagesRunFailedStatus' error: type: string required: - type - runId - occurredAt - status - error title: runEvents_runFailed runEvents_subscribeRequest: type: object properties: runId: type: string projectId: type: string required: - runId title: runEvents_subscribeRequest ```