Public JSON API
Read-only access to the live catalog — same data as the site, synced hourly from OpenRouter. No auth. Responses are CORS-enabled (Access-Control-Allow-Origin: *) and cached for 5 minutes.
List models
curl 'https://modelright.dev/api/v1/models'
Returns { data, page, limit, total, pages }. Filters mirror the /models page:
provider | provider slug | provider=openai |
minContext | minimum context window (tokens) | minContext=200000 |
maxInputPrice | maximum input $/1M | maxInputPrice=2 |
modality | image | audio | video | file | modality=image |
freeOnly | only $0 models | freeOnly=1 |
hideRemoved | default 1; set 0 to include removed | hideRemoved=0 |
sort | price_in, price_in_desc, price_out, price_out_desc, name | sort=price_in |
page | page number (default 1) | page=2 |
limit | rows per page, max 200 (default 50) | limit=100 |
curl 'https://modelright.dev/api/v1/models?minContext=200000&maxInputPrice=2&sort=price_in'
Model detail
curl 'https://modelright.dev/api/v1/models/openai/gpt-5'
Includes the last 30 price/availability snapshots. Unknown pairs return 404 { error: "not_found" }.
Other machine surfaces
/api/models/search?q=…— fuzzy name search/api/mcp— MCP endpoint (JSON-RPC)/changes/rss.xml— RSS feed of catalog changes/llms.txt— llms.txt manifest/agents.txt— preferred agent interface, tools, auth, and rate limits/openapi.json(also/.well-known/openapi.json) — OpenAPI 3.1 spec/.well-known/agent-card.json— A2A agent card (/.well-known/agent.jsonredirects here)/.well-known/mcp— MCP alias;/.well-known/mcp/server-card.json— Smithery server card