Skip to main content
Compose.Market inference is a hosted API for paid model calls. It resolves a model from the generated catalog, calls the right provider adapter, meters the result, and settles the payment attached to the request. There are two public surfaces: Both surfaces use the same catalog and adapters. The difference is the contract around the call: native routes can expose Compose receipts and x402 details, while external routes keep response bodies compatible with OpenAI-style clients.

How models route

Every call starts with a public model ID from the generated catalog. The catalog row carries the provider, pricing, limits, modalities, capabilities, and optional upstreamModelId for duplicate provider rows. Duplicate upstream IDs are explicit. The priority winner keeps the bare ID; the other provider rows get readable public aliases: The model string is the contract. Compose does not inspect the prompt to guess a provider, and it does not silently fall back to a duplicate provider row.

Native endpoints

Native routes accept Compose Keys and raw x402 payment flows. Use them when your integration wants receipts, retrieval routes, or payment negotiation as part of the API contract.

External endpoints

External routes use Compose Key bearer auth. They return OpenAI-shaped JSON and SSE, and keep Compose receipts out of the response body.

How a request runs

That flow is intentionally plain: resolve the catalog row, authorize the spend, call the adapter, meter the result, settle the payment.