Per-model performance
Model pages publish observed reliability, output speed, timeframe, and evidence strength from recent provider-reaching production requests. Early samples are labeled.
Review reliability methodologyUse OpenAI, Anthropic, and Google through one OpenAI-compatible API—without changing your request format.
Get started
Fund with as little as $5 and get $10 extra after your first successful payment.
Current rates
Operational proof
Review how performance is measured, what data is retained, and how to evaluate the API with a controlled workload before moving production traffic.
Model pages publish observed reliability, output speed, timeframe, and evidence strength from recent provider-reaching production requests. Early samples are labeled.
Review reliability methodologyCheaper Inference does not store prompt or response bodies in its application database. Prompts are forwarded to the serving provider; billing and operational metadata required for History and support is retained.
Open the Trust CenterStart with one model or a controlled share of traffic. Compare compatibility, latency, output quality, and cost before expanding usage.
Open the quick startWhy it costs less
AI companies often commit to more inference capacity than they end up using. Instead of letting that paid-for capacity expire, they sell it at a discount. We acquire it, make it available through one OpenAI-compatible API, and pass most of that discount on to you.
Sellers make excess, paid-for inference capacity available instead of letting it expire.
We aggregate discounted capacity across supported models and make it available through one API.
You pay an all-in rate for actual usage, with no separate routing surcharge, contract, or monthly commitment.
How to switch
Replace your provider base URL and API key. Keep your model, messages, tools, streaming setting, and response handling.
https://api.provider.com/v1
https://api.cheaperinference.com/v1
Built by Keak
Cheaper Inference is built and operated by Keak. The team responsible for the product also handles its infrastructure, billing, and customer support.
Savings calculator
Choose a currently listed model and apply its discount to your monthly inference spend.
Checking current public pricing... Review pricing proof
Keep your selected model ready for your first request.
Start saving with this modelReady to switch?
Create an account, fund from $5, and get $10 extra after your first successful payment—then keep your current request format.
For capacity sellers
Tell us where you have available capacity and its approximate dollar value. Our team will review the fit and contact you directly.
Docs
Everything you need to create an account, choose a model, send requests, and understand billing.
baseURL to the endpoint below.model field.https://api.cheaperinference.com/v1
Authorization: Bearer ir_live_YOUR_API_KEY
curl https://api.cheaperinference.com/v1/chat/completions \
-H "Authorization: Bearer ir_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-opus-4.6",
"messages": [{"role": "user", "content": "Hello!"}]
}'
curl https://api.cheaperinference.com/v1/images/generations \
-H "Authorization: Bearer ir_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana-pro",
"prompt": "A clean product render of a banana invoice",
"n": 1,
"size": "1024x1024",
"resolution": "1K",
"quality": "high",
"response_format": "url"
}'
Use /v1/images/generations for every model whose
/v1/models entry has type: "image" or
capabilities.image_generation: true, including
grok-imagine. Image-generation models are not accepted by
/v1/responses, /v1/chat/completions, or
/v1/completions.
curl https://api.cheaperinference.com/v1/images/generations \
-H "Authorization: Bearer ir_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-imagine",
"prompt": "A cinematic city at night",
"n": 1,
"response_format": "url"
}'
Vision-capable chat models accept OpenAI image_url content parts
and Anthropic-style base64 image blocks. Use up to 10 images, 5MB per image,
and 23MB total decoded base64 image data. The complete serialized JSON body
must be 31MiB or smaller. Split larger workloads across requests; public image
URLs reduce body size but do not change the 10-image limit. Models with this
capability are marked Vision input in the model list.
cache_control is passed through when supported by the selected
model. Cache reads and writes use the provider-specific cache rates when they
are available. If no cache-read rate is reported, reads fall back to 10% of the
normal input rate; cache writes without a separate rate use the normal input rate.
Send reasoning: {"effort": "low"},
"high", or "max" with
model: "kimi-k3". Kimi K3 does not expose
medium as a native effort level. Set the value explicitly when
consistent behavior matters; reasoning tokens are billed as output usage.
For larger base64 payloads, upload each image separately as multipart form data. The returned file ID expires after one hour and is converted to a short-lived, private image URL when the chat request is forwarded. Uploads keep the JSON body small but do not change the limit of 10 images per request.
curl https://api.cheaperinference.com/v1/uploads \
-H "Authorization: Bearer ir_live_YOUR_API_KEY" \
-F "file=@tile.png"
# Use the returned id in a chat message:
{
"type": "image_file",
"image_file": {"file_id": "img_RETURNED_ID"}
}
# Optional early deletion:
curl -X DELETE https://api.cheaperinference.com/v1/uploads/img_RETURNED_ID \
-H "Authorization: Bearer ir_live_YOUR_API_KEY"
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "ir_live_YOUR_API_KEY",
baseURL: "https://api.cheaperinference.com/v1"
});
const response = await client.chat.completions.create({
model: "gpt-5.4",
messages: [{ role: "user", content: "Hello! Who are you?" }]
});
from openai import OpenAI
client = OpenAI(
api_key="ir_live_YOUR_API_KEY",
base_url="https://api.cheaperinference.com/v1",
)
response = client.chat.completions.create(
model="claude-opus-4.6",
messages=[{"role": "user", "content": "Hello! Who are you?"}],
)
curl https://api.cheaperinference.com/v1/models \ -H "Authorization: Bearer ir_live_YOUR_API_KEY"
Models marked Streaming accept "stream": true on
/v1/responses, /v1/chat/completions, and
/v1/completions. Streams use server-sent events, and wallet usage is
settled when the stream completes. The
gateway can change routes before output starts; after the first event is sent, an
interrupted stream must be retried as a complete request.
Copy an exact model id into the model field. Text-model prices are per 1M
tokens. When a model shows an input-token cutoff, the entire request uses the rate for
its input-token tier. Image models show either separate token rates for input, text,
thinking, and image output or a fixed price per generated image.
Retrieve currently available models and their current catalog rates. A fallback
route can change the final rate, but never above the applicable direct list price.
Filter by type, vision, reasoning, streaming, or
provider to compare only models that meet your workload's requirements.
curl 'https://api.cheaperinference.com/v1/models?type=text&vision=true&streaming=true' \ -H 'Authorization: Bearer ir_live_YOUR_API_KEY'
Token rates are USD per 1 million tokens. Fixed media rates use
media_input_unit_price and media_unit_price per unit. For
tiered models, use pricing.above_threshold when the request exceeds
input_token_price_threshold.
Network failures and HTTP 404, 408, 409, 425, 429, and 5xx responses are retried once. Other 4xx responses are not retried; when another route is eligible, the gateway immediately tries it in price order. The serving route determines the settled rate, capped at direct list price with no separate Cheaper Inference routing surcharge. Cheaper Inference does not store prompt or response bodies in its application database; billing and operational metadata is retained for History and support.
401 Invalid or missing API key.403 The API key does not allow this model or client IP.402 Insufficient wallet balance.400 Unsupported model or invalid request body.413 Request body or base64 vision payload exceeds the documented limits.429 Request was rate limited; retry with backoff.502 Provider or transport failure after eligible routes were exhausted.503 No eligible provider route is currently available.{
"output": [{
"role": "assistant",
"content": [{"type": "output_text", "text": "Hello!"}]
}],
"usage": {
"input_tokens": 12,
"output_tokens": 3,
"total_tokens": 15
}
}
Use the Contact tab for billing, API, or account questions. We typically answer in under 12h. For platform availability, check the Status link in the footer.