Skip to content

API profiles

Distinguish inference API compatibility from model identity and supplier ownership.

Status: draft. No profile is deployed or available to external suppliers.

An API profile names an exact request, response, and execution contract. A model name or a claim of “OpenAI compatibility” does not identify that contract. Choose a profile per model binding; do not select one based on the supplier’s brand.

The shared catalog records models; it does not define a universal inference body. Buyers select the native API family/profile they use. Suppliers implement the shared profiles they choose to support, and qualify separately for each model/task/profile. Gateway handlers follow those profiles rather than individual suppliers. Unsupported inputs fail explicitly.

The catalog’s upstream_interfaces describes documented source interfaces; task-level api_profiles references platform contracts. A source family name cannot be used in place of a qualified profile ID. A model may expose more than one source interface without making those interfaces interchangeable.

The defined profiles cover different native contracts. Responses now has a stateless HTTP draft for functions, reasoning, structured output, inline image input and usage. Gateway/checker implementation and real supplier qualification remain gaps. Text-only support is not the intended final product scope. Source records in the model catalog preserve upstream capabilities without claiming that CheapGPU has implemented them.

Profile Contract scope Status
openai-chat-text-v1-draft.1 Stateless text Chat Completions, one choice, JSON and SSE, usage Defined draft; not externally available
openai-responses-v1-draft.1 Stateless native Responses, functions, reasoning, structured output, inline images, JSON/SSE and usage Defined draft; not implemented or externally available
Anthropic Messages Separate message and streaming contract Not defined or supported
Video task APIs, including the Seedance integration direction Separate task creation, status, result and cancellation contract Not defined or supported
Other or vendor-specific dialects Requires documented semantics and conformance cases Not defined or supported

Contract definition, Gateway/checker implementation, supplier qualification and production acceptance need separate evidence for each capability. A defined schema alone cannot change an unsupported feature into an available one.

Both named profile IDs are accepted by the downloadable configuration schema, each with its own exact capability set and suite. An existing endpoint from OpenAI, Anthropic, BytePlus, or another provider qualifies only if its actual behavior meets a defined profile. This draft makes no claim about any provider’s current compatibility or availability.

Anthropic’s OpenAI SDK compatibility layer has documented limits, including unsupported prompt caching and ignored fields. A compatibility label is insufficient to qualify a full OpenAI profile or preserve every native Claude feature. The integration direction keeps the native Messages family separate; no automatic compatibility conversion is provided by this draft.

Gateway validates the chosen profile and the selected model’s capabilities before admission. Unsupported parameters receive an explicit error; gateway cannot remove them and submit a different request. Supplier conformance tests also check rejection of the malformed or unsupported cases defined by the profile.

Profiles preserve their native body and stream semantics. Adding a shared transport does not make different API bodies interchangeable. A cross-profile translation requires its own explicit mapping and tests; no such translation is included here.

A video task profile must define its native creation request, task identifier, status reads, terminal results, cancellation and errors. Define caller ownership, artifact access and expiry, bounded recovery, usage evidence and price conditions for that profile. A status read must not authorize another generation. A lost creation response is not proof that no task exists, and a cancellation request is not proof that generation has stopped.

Authentication, supplier qualification, quotes, wallet reservation and settlement can use the shared platform framework. Their profile-specific bindings must still be defined and verified. The catalog’s synthetic async_task example does not implement these operations or select production timeouts, charges or cancellation policy.

The existing Chat text profile requires complete conversation messages on every request. Provider-managed conversation IDs, stored responses, and continuation IDs are outside its scope. Those features need state ownership and routing affinity before a buyer can rely on them across suppliers.

Read the OpenAI Chat text profile for the exact Chat subset, the OpenAI Responses profile for native typed items and events, and the specification files for machine-readable contracts and versioning.