Skip to main content
API referenceModels

Models

GET/v1/models

Request

Returns all available models with pricing, context lengths, and capabilities. OpenRouter-compatible format.

No authentication required.

Pricing is in per-token strings (multiply by 1M for $/1M tokens rate). Cached for 60 seconds.

GET /v1/models
curl $SURPLUS_BASE_URL/models

Reading Capabilities

GET /v1/models is the capability surface for everything that varies by model. Three fields carry it:

architecture.input_modalitiesCarries · What the model accepts: text, image, video, file, audio
supported_featuresCarries · Coarse capability labels: vision, file_input, reasoning, tools, streaming, prompt_caching, and others
supported_parametersCarries · The request knobs the model takes, including reasoning_effort, reasoning, tools. Note that include_reasoning appears on many rows but is always stripped on the chat wire (Reasoning Controls)

Check input_modalities and supported_features together for image input. They disagree on a meaningful number of rows (claude-opus-5 declares vision while its input_modalities still reads ["text"]), and the router treats a model as image-capable when either says so.

bash
# Models that accept image input, by either signal
curl -s $SURPLUS_BASE_URL/models \
  | jq -r '.data[]
      | select(((.architecture.input_modalities // []) | index("image"))
               or ((.supported_features // []) | index("vision")))
      | .id'

# Models that accept a reasoning-effort setting
curl -s $SURPLUS_BASE_URL/models \
  | jq -r '.data[] | select((.supported_parameters // []) | index("reasoning_effort")) | .id'

These values describe the model, not the individual seller offer that serves a given request. See Media Inputs, Reasoning Controls, and Provider & Model Verification.

Three capability fields, and they can disagree
input_modalitieswhat it can be fed
supported_featuresstreaming, tools, reasoning
supported_parametersthe knobs it honours
Treat them as an OR, not an AND. A model may advertise image support through input_modalities while supported_parameters omits it — either one is sufficient.

Provider Allowlist

GET/v1/providers

The curated provider allowlist, unauthenticated and cached for 5 minutes. Each entry carries id, name, base_url, host, trusted, and a cost_reference_url pointing at that provider's own published pricing. trusted is the flag the default trusted-only routing preference filters on.

Current Counts

Catalog size and the number of models with live offers both change as models are onboarded and seller liquidity moves. Use the endpoint response as the source of truth — this page prints no snapshot.