# 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
```