Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.compose.market/llms.txt

Use this file to discover all available pages before exploring further.

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:
SurfaceBase pathWho it is for
Native Compose inference/v1Clients that want x402 negotiation, Compose receipts, response retrieval, and full model metadata.
External OpenAI-compatible inference/external/v1IDEs and apps that already speak the OpenAI API shape and only support bearer auth.
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:
Public model IDProvider selectedProvider wire model
gpt-5.5azuregpt-5.5
openai/gpt-5.5openaigpt-5.5
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

MethodPathDescription
GET/v1/modelsGenerated catalog used by the API.
GET/v1/models/allExtended generated catalog, when present.
POST/v1/models/searchSearch and filter by provider, modality, operation, streaming, context, and price.
GET/v1/modalitiesModality catalogs derived from model metadata.
POST/v1/chat/completionsOpenAI-shaped chat completions.
POST/v1/responsesOpenAI-shaped Responses-style input and output.
POST/v1/embeddingsEmbeddings.
POST/v1/images/generationsImage generation.
POST/v1/images/editsImage editing.
POST/v1/audio/speechText to speech.
POST/v1/audio/transcriptionsSpeech to text.
POST/v1/videos/generationsVideo generation submission.
GET/v1/videos/{id}Video job status.
GET/v1/videos/{id}/streamVideo job status over SSE.
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

MethodPathDescription
GET/external/v1/modelsOpenAI-shaped model list for external clients.
POST/external/v1/chat/completionsChat completions with Compose Key auth.
POST/external/v1/responsesResponses-style calls with Compose Key auth.
POST/external/v1/embeddingsEmbeddings with Compose Key auth.
POST/external/v1/images/generationsImage generation with Compose Key auth.
POST/external/v1/audio/speechSpeech generation with Compose Key auth.
POST/external/v1/audio/transcriptionsTranscription with Compose Key auth.
POST/external/v1/videos/generationsVideo generation with Compose Key auth.
GET/.well-known/opencodeRemote OpenCode config.
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.