Models endpoint

GET /v1/models reference. The unauthenticated catalog endpoint, per-model pricing and capability fields, and why is_ready is not an availability signal.

GET /v1/models returns the live model catalog: ids, pricing, context windows, and capabilities. Anything it lists is served. The endpoint reference is below; Models and readiness is the guide to choosing a model from it.

GET /v1/models

List Models

Response (200) — ListModelsResponse
Field Type Required
data ModelInfo[] Yes
has_more boolean No
object string No

Current as of 2026-07-04; the live spec is at api.ambient.xyz/openapi.json.

No auth required#

The model catalog is the one part of the API that works without an API key:

curl https://api.ambient.xyz/v1/models

Two practical consequences:

  • You can call it from anywhere (scripts, dashboards, even browser JavaScript) without exposing a credential.
  • A successful call proves nothing about your key. The only way to validate a key is a real completion; the quickstart makes one.

Reading a model entry#

data is an array of model objects. The fields that drive integration decisions:

Field What it tells you
id The exact string to pass as model in requests, a case-sensitive path like z-ai/glm-5.2
is_ready An OpenRouter routing flag (whether OpenRouter routes traffic to this model). Not whether the model is served: listed models answer requests regardless of its value
context_length / max_output_length Token limits for input window and generation
pricing.input / pricing.output USD per million tokens, as floats; the source of truth for cost
supported_features Capability switches: tools, json_mode, structured_outputs, reasoning, logprobs
supported_sampling_parameters Which sampling knobs the model accepts
quantization Serving precision (e.g. fp8, int4), when published

is_ready is consumed by OpenRouter's routing and says nothing about whether Ambient is serving the model, so don't gate model selection on it. Everything the catalog lists is served; if a model has no capacity when you call it, the request itself returns 429 with "No workers available" or "Upstream request failed" (retry with short, jittered backoff or fail over; see Errors and retries). A one-liner to list the ids you can request:

curl -s https://api.ambient.xyz/v1/models | jq -r '.data[].id'

Single model lookup#

The same object is available per model id:

GET /v1/models/{model_id}

Get Model

Parameters
Parameter In Type Required
model_id path string Yes
Response (200) — ModelInfo
Field Type Required
context_length integer Yes
created integer Yes
id string Yes
input_modalities string[] Yes
max_output_length integer Yes
name string Yes
output_modalities string[] Yes
pricing ModelPricing Yes
supported_features string[] Yes
supported_sampling_parameters string[] Yes
datacenters DatacenterInfo[] | null No
description string | null No
hugging_face_id string | null No
is_ready boolean | null No
object string No
openrouter OpenRouterInfo | null No
owned_by string No
quantization string | null No

Current as of 2026-07-04; the live spec is at api.ambient.xyz/openapi.json.

curl https://api.ambient.xyz/v1/models/z-ai/glm-5.2

Model ids contain slashes and are used as literal path segments; the ids the catalog publishes today do not need URL encoding.