Skip to main content
POST
Create configured model

Authorizations

Authorization
string
header
required

An opaque Omnara personal or organization bearer token.

Path Parameters

orgID
string
required
Pattern: ^org_[a-z2-7]{26}$
modelProviderConfigID
string
required
Pattern: ^mpc_[a-z2-7]{26}$

Body

application/json
name
string
required

User-assigned configured model name used by agent YAML as model.name. Names are unique within an active model provider config and can be renamed without changing existing agents.

Required string length: 1 - 64
provider_model_slug
string
required

Exact provider model slug sent to the provider endpoint. Free-pool, :online, and preset model ids are not accepted on Omnara-managed OpenRouter providers.

Minimum string length: 1
context_window_tokens
integer
required

Total token window for this model, including input and output.

Required range: 2 <= x <= 2147483647
max_output_tokens
integer

Optional known output-token ceiling. Omitted capacity remains unknown; selecting a discovered model can supply its published ceiling. Explicit values must not exceed the provider's supported limit.

Required range: 1 <= x <= 2147483647
default_max_output_tokens
integer

Optional normal per-request output allowance. Discovery never populates this field. When omitted, requests use the known output ceiling. If both are absent, Messages uses 64000 tokens; other formats omit the allowance. Runtime allowances are fitted to available context.

Required range: 1 <= x <= 2147483647
default_cache_retention
enum<string>

Prompt-cache preference for model requests; short when omitted. short applies the route's default caching (explicit cache breakpoints where the provider requires them) and, where the route accepts one, a stable conversation key for cache-aware routing. long prefers the route's extended cache lifetime where one exists (currently Anthropic's one-hour cache, which on Bedrock requires Claude 4.5 or newer) and behaves like short elsewhere. none sends no Omnara-managed cache controls or conversation key; providers may still cache prefixes on their own.

Available options:
none,
short,
long
supports_tools
boolean
default:true

Whether this configured model can receive tool definitions and emit tool calls. Agent configs with enabled tools are rejected when this is false.

supports_reasoning
boolean
default:false

Whether Omnara should use this model's reasoning features. For OpenAI Responses, this also enables encrypted reasoning replay for stateless calls.

default_reasoning_effort
string

Default reasoning effort to send for models/API formats that support effort-style reasoning controls. Requires supports_reasoning=true. When supported_reasoning_efforts is present, this value must be listed there.

supported_reasoning_efforts
string[]

Reasoning effort values this configured model accepts. Requires supports_reasoning=true when non-empty.

input_modalities
string[]

Input types this configured model accepts. Omnara recognizes text, image, and file; an empty list leaves capabilities unspecified.

output_modalities
string[]

Output types this configured model can return. Omnara currently consumes text output.

api_variant_options
object

Extra top-level JSON fields to include in provider requests for this configured model. Use this for provider-specific settings that Omnara does not expose as typed fields, such as OpenRouter provider routing or sampling parameters. Omnara still controls the fields it needs to run the agent correctly, including the model, prompt/messages, streaming, tools, output-token limit, and selected reasoning policy. Provider passthrough values for those fields are ignored. For OpenRouter routing options, see https://openrouter.ai/docs/guides/routing/provider-selection and general request parameters at https://openrouter.ai/docs/api/reference/parameters. Omnara-managed OpenRouter providers accept only sampling, reasoning, and per-model routing options here.

Response

Created route response.

id
string
required
Pattern: ^mdl_[a-z2-7]{26}$
org_id
string
required
Pattern: ^org_[a-z2-7]{26}$
model_provider_config_id
string
required
Pattern: ^mpc_[a-z2-7]{26}$
management_kind
enum<string>
required

Lifecycle owner. Tenant-managed resources can be changed through tenant APIs. Cluster-managed resources are installed and lifecycle-managed by the control plane; individual APIs may explicitly expose tenant-editable settings.

Available options:
tenant,
cluster
name
string
required

User-assigned configured model name used by agent YAML as model.name.

Required string length: 1 - 64
current_revision_id
string
required
Pattern: ^mrev_[a-z2-7]{26}$
provider_model_slug
string
required

Exact provider model slug sent to the provider endpoint by the current revision.

context_window_tokens
integer
required

Total token window for this model, including input and output.

max_output_tokens
integer | null
required

Known output-token ceiling for this model, or null when unknown.

supports_tools
boolean
required

Whether this configured model can receive tool definitions and emit tool calls.

supports_reasoning
boolean
required

Whether Omnara should use this model's reasoning features.

default_reasoning_effort
string
required

Default reasoning effort to send for models/API formats that support effort-style reasoning controls.

supported_reasoning_efforts
string[]
required

Reasoning effort values this configured model accepts.

input_modalities
string[]
required

Input types this configured model accepts. Omnara recognizes text, image, and file; an empty list leaves capabilities unspecified.

output_modalities
string[]
required

Output types this configured model can return.

api_variant_options
object
required

Extra top-level JSON fields to include in provider requests for this configured model. Use this for provider-specific settings that Omnara does not expose as typed fields, such as OpenRouter provider routing or sampling parameters. Omnara still controls the fields it needs to run the agent correctly, including the model, prompt/messages, streaming, tools, output-token limit, and selected reasoning policy. Provider passthrough values for those fields are ignored. For OpenRouter routing options, see https://openrouter.ai/docs/guides/routing/provider-selection and general request parameters at https://openrouter.ai/docs/api/reference/parameters. Omnara-managed OpenRouter providers accept only sampling, reasoning, and per-model routing options here.

created_at
string<date-time>
required
updated_at
string<date-time>
required
revision_created_at
string<date-time>
required
default_max_output_tokens
integer | null

Default per-request output-token cap sent to the provider unless an agent config overrides it.

default_cache_retention
enum<string>

Prompt-cache preference for model requests; short when omitted. short applies the route's default caching (explicit cache breakpoints where the provider requires them) and, where the route accepts one, a stable conversation key for cache-aware routing. long prefers the route's extended cache lifetime where one exists (currently Anthropic's one-hour cache, which on Bedrock requires Claude 4.5 or newer) and behaves like short elsewhere. none sends no Omnara-managed cache controls or conversation key; providers may still cache prefixes on their own.

Available options:
none,
short,
long