OpenUI

Models

Find and use model identifiers supported by OpenUI Gateway.

OpenUI Gateway supports hundreds of models from OpenAI, Anthropic, Google, Meta, Mistral, and other model labs.

Pass the model ID directly to the model field in either the Chat Completions or Responses API:

const response = await gateway.chat.completions.create({
  model: "openai/gpt-5.6-sol",
  messages,
});

Availability and capabilities

Input and output modalities, context length, tool support, and supported parameters vary by model. For models served via OpenRouter, please check the pricing and context windows on the models page.

For Generative UI, choose a model that produces text and follows structured output instructions reliably. Use the OpenUI model benchmarks as a guide when comparing models, alongside the latency, cost, context length, and capabilities required by your application. Gateway can validate and correct eligible OpenUI Lang errors, but the selected model still determines the quality and latency of the generated interface. See Reliability for details.

Add your own provider credentials with BYOK. For managed model usage and Gateway credits, see Pricing.

Supported models

See the Gateway models page for every supported model, including free models, with context windows and pricing. OpenUI Gateway uses OpenRouter to serve third-party models from providers other than OpenAI, Anthropic, and Google Gemini. To require Zero Data Retention (ZDR) endpoints, select or exclude providers, or set other routing preferences, use the provider object.

Model IDs normally follow an {author}/{model-slug} format, such as openai/gpt-5.6-sol.

Use the complete ID. Do not pass only the model name:

model: "openai/gpt-5.6-sol" // Correct
model: "gpt-5.6-sol"        // Missing the author

Provider routing

OpenUI Gateway allows routing your request to a model provider of your choice. To configure routing, populate the provider object in Chat Completions or the Responses API.

Provider routing settings affect throughput, availability, and data retention. Before pinning or restricting providers, read each provider's policy on OpenRouter to understand what that endpoint does with your data and how it behaves under load.

Example: run google/gemma-4-31b-it only on Cerebras:

const response = await gateway.chat.completions.create({
  model: "google/gemma-4-31b-it",
  messages,
  provider: {
    only: ["cerebras/fp16"],
  },
});

Provider slugs in order, only, and ignore must match OpenRouter exactly — including variants such as cerebras/fp16. On the model page on OpenRouter, open the provider list and use the copy button next to the provider name to get the exact slug.

The structure of the provider object is:

Important fields

FieldTypeDefaultDescription
orderstring[]—Provider slugs to try in order (for example, ["anthropic", "openai"]). OpenRouter uses the first available provider in the list for the requested model.
zdrboolean—When true, restrict routing to Zero Data Retention (ZDR) endpoints that do not retain prompts.
onlystring[]—Allow only these provider slugs. Other providers are excluded, even if they serve the same model.
ignorestring[]—Skip these provider slugs when routing. Remaining eligible providers can still be used.

Other fields

FieldTypeDefaultDescription
allow_fallbacksbooleantrueWhen true (default), fall back to other providers if your chosen provider is unavailable. When false, the request fails if the selected provider cannot serve it.
require_parametersbooleanfalseWhen true, route only to providers that support every parameter in your request. By default, providers ignore parameters they do not support.
data_collection"allow" | "deny""allow""allow" (default) permits providers that may store or train on data. "deny" restricts routing to providers that do not collect user data. See Provider Logging for each provider's data policy.
enforce_distillable_textboolean—When true, route only to models whose authors have enabled text distillation. Useful for fine-tuning or distillation workflows.
quantizationsstring[]—Filter providers by quantization level. Common values include int4, int8, fp8, and fp16.
sortstring | { by: string; partition?: string }—Sort providers by "price", "throughput", or "latency". Can be a string or an object with by and optional partition. Disables default load balancing.
preferred_min_throughputnumber | Record<string, number>—Prefer providers above this throughput (tokens/sec). Accepts a number (p50) or percentile cutoffs. Sub-threshold endpoints are deprioritized, not excluded.
preferred_max_latencynumber | Record<string, number>—Prefer providers below this latency (seconds). Accepts a number (p50) or percentile cutoffs. Above-threshold endpoints are deprioritized, not excluded.

For more details on each routing option, see Provider Routing in the OpenRouter docs.

On this page