Price Comparison API
GET /v1/prices
Public endpoint — no authentication required. Returns a price comparison matrix across all providers for every model in the marketplace.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
model | string | Filter to a single model (e.g. claude-opus-4.6) |
Response Format
{
"models": [
{
"model": "claude-opus-4.6",
"displayName": "Claude Opus 4.6",
"provider": "Anthropic",
"contextLength": 1000000,
"providers": {
"venice": { "input": 6.00, "output": 30.00, "cacheRead": 0.60 },
"openrouter": { "input": 5.00, "output": 25.00, "cacheRead": 0.50, "cacheWrite": 6.25 },
"anthropic": { "input": 5.00, "output": 25.00, "cacheRead": 0.50, "cacheWrite": 6.25 },
"bankr": { "input": 5.00, "output": 25.00, "cacheRead": 0.50 }
},
"cheapest": { "provider": "openrouter", "input": 5.00, "output": 25.00 }
}
],
"providers": ["venice", "openrouter", "anthropic", "deepseek", "bankr"],
"updated_at": "2026-04-14T11:00:00.000Z"
}
Fields
Model Entry
| Field | Type | Description |
|---|---|---|
model | string | Standard marketplace model name |
displayName | string | Human-readable name |
provider | string | Model creator (Anthropic, OpenAI, Google, etc.) |
contextLength | number | Maximum context window in tokens |
providers | object | Price data keyed by provider |
cheapest | object | Cheapest provider for this model |
Price Entry (per provider)
All prices in USD per 1M tokens.
| Field | Type | Description |
|---|---|---|
input | number | Input/prompt token price |
output | number | Output/completion token price |
cacheRead | number | Cache hit price (optional) |
cacheWrite | number | Cache creation price (optional) |
reasoning | number | Thinking/reasoning token price (optional) |
Cheapest
| Field | Type | Description |
|---|---|---|
provider | string | Provider key with the lowest weighted cost |
input | number | Input price at that provider |
output | number | Output price at that provider |
> Cheapest is determined by weighted cost: input + 3 × output. This approximates a typical chat workload where output tokens outnumber input tokens.
Examples
All models
curl https://api.surplusintelligence.ai/v1/prices
Single model
curl "https://api.surplusintelligence.ai/v1/prices?model=claude-opus-4.6"
Caching
Response is cached for 1 hour (ISR). The updated_at field indicates when the snapshot was generated.
Providers Tracked
The live price response currently includes 10 provider pricing sources. The seller allowlist has 11 provider domains; OpenAI direct is allowlisted but may not appear in the live price matrix if no current pricing rows are available.
| Key | Provider |
|---|---|
venice | Venice AI |
openrouter | OpenRouter |
anthropic | Anthropic (direct) |
openai | OpenAI (direct) |
google | Google (Gemini) |
deepseek | DeepSeek (direct) |
mistral | Mistral AI |
groq | Groq |
together | Together AI |
fireworks | Fireworks AI |
bankr | Bankr |
Interactive Price Table
See the live price comparison API for the current machine-readable matrix. Treat that response as the source of truth for current provider rows and counts.