inference-providers

Help

How to read and use this registry. Every page here is generated from the emitted catalog; nothing is hand-maintained. Start with the verification methodology if you care about where the facts come from.

What this is

A provenance-tracked registry of AI model providers. Three layers:

Every fact carries a source URL and a verification date; the rules are on the Verify page.

Reading a provider page

Reading a model page

The Offerings table lists every provider × endpoint serving the model, with wire IDs (the exact string the API expects — often differing from the canonical name), status, price, and the reasoning badge. On the models list, the Providers count is unique providers; open the popover for each provider's wire IDs (×N marks a provider serving the model on N endpoints).

Reasoning chips

The badge's first word is the control style the surface accepts:

mandatory — thinking cannot be disabled on this surface; requesting "off" is an error, not a no-op. default is the value the surface assumes when you send nothing. returns says how the reasoning comes back:thinking_blocks (Anthropic content blocks),reasoning_content (DeepSeek-style field),reasoning_summary (OpenAI Responses summaries),thought_parts (Gemini parts), or hidden (you pay for tokens you never see).

round-trips marks what you must send back unmodified in later turns, or the API rejects the request:signature (Anthropic thinking signatures),thought_signature (Gemini thought signatures),encrypted_content (OpenAI Responses reasoning items), andreasoning_content (DeepSeek replay).

Status colors

Using the data

Machine-readable artifacts live at the download page:catalog.json (the full join), providers.json / models.json (normalized layers), and per-entity files under artifacts/providers/ and artifacts/models/.

The SDK turns them into wire-shaped calls:

import {
  loadCatalog,
  resolveModel,
  authHeaders,
  buildReasoningParam,
} from "@inference-providers/sdk"

const catalog = loadCatalog()

// Resolve a provider wire id to its canonical model + offering
const { model, offering, provider } = resolveModel(
  catalog,
  "anthropic",
  "claude-sonnet-5",
)

// Auth headers for the provider's first auth method
const headers = authHeaders(provider, {
  credential: process.env.ANTHROPIC_API_KEY!,
})

// The exact wire fragment for a high-effort adaptive-thinking request
const reasoning = buildReasoningParam(offering, {
  kind: "effort",
  effort: "high",
})
// => { output_config: { effort: "high" } }

To check a live provider against the catalog, run the sync report (needs credentials for some providers; several public model lists work keyless):

pnpm --filter @inference-providers/sync run report

Staying current

Agent discovery

Troubleshooting / FAQ