Returns the list of available models. If your API key has an allowed-model list configured, the response is filtered to that list.
Responses carry Cache-Control: private, max-age=60.
Capability booleans mean true = supported, false = unsupported; an omitted field means support is unverified. Distinguish sampling, json_mode, json_mode_with_tools, web_search_with_tools, structured_outputs, parallel_tool_calls, and image_mask. limits.reasoning_efforts, limits.supported_sizes, limits.supported_qualities, limits.supported_durations, and limits.max_images describe model-specific values. An empty list means there are no supported values. If a public model ID has several provider routes, metadata exposes only values guaranteed across them. Check each endpoint's documentation for combinations and generation/editing differences.
Parameters by provider route
GET /v1/models returns parameter_constraints as [{ provider, parameters }]. provider is a normalized provider slug; parameters groups API parameter keys under chat, image-generation, image-edit, and video. Each constraint uses supported, type, allowed_values, minimum, and maximum for support, allowed values, and ranges. Example: {"provider":"google-vertex","parameters":{"chat":{"temperature":{"supported":true,"type":"number","minimum":0,"maximum":2}}}}.
Nested fields use dotted keys such as response_format.type and extra_body.google.top_k. Omitted means unverified, not unrestricted. Generation and editing constraints can differ. Use the intersection across routes; do not combine their allowed values into a union. Existing capabilities and limits retain common guarantees. Older API responses may omit parameter_constraints entirely.
The live model options in these docs and Playground use the same model metadata. Unverified models remain listed. Explicit unsupported parameters or invalid values are validated before credit reservation and return 400 with error.code: "unsupported_parameter" and the offending field in error.param. Recheck saved options when switching models.
Returns
created is an epoch value for OpenAI compatibility; registered_at (the date the model was registered with the gateway) and released_at (the model's release date) are separate fields.
supply tells you where the model is served from — first_party means clouds everyais
contracts directly, community means third-party supplier GPUs (your prompts are processed on
hardware everyais does not operate), and mixed means both are available. Community supply is
off by default on every account; enable it in dashboard settings. While it is off, community-only
models are hidden from your key's list. Chat, Messages, and Responses return 404 model_not_found
when no callable candidate remains.
pricing.unit is one of per_1m_tokens, per_image, or per_second. Video models also include variant unit prices as {key, price} entries in pricing.variants[].
pricing.is_free === true means customer input, output, and cache tokens are free.
Web search is billed separately. Do not infer free pricing from a numeric price of 0;
an absent or false flag must not be displayed as free.
Public token prices use the input/output pair from the eligible endpoint with the lowest sum of input and output rates.
Standard and long-context tiers are selected independently; cache rates come from the same endpoint as the corresponding tier. Input and output minimums from different routes are not combined.
Media rates are compared within the same billing unit, and variant rates within the same key and meta. All displayed prices include display discounts and exclude markup.
The billed amount is calculated separately by applying the account rate at request time. A manually pinned model reference remains a billing basis; it does not fix the public lowest price.
pricing.conditions lists the consent required for the displayed lowest rates: community_supply means allowing community supply,
and training_use means allowing routes where providers train on prompts and responses.
Conditions needed by the selected standard tier, long-context tier, media rates, and variants are combined; the field is omitted when none are needed. Do not infer price conditions from the model-wide supply or training_use classification.
The public catalog labels these conditions; authenticated key catalogs select rates only from routes permitted by the account or organization.
discount_percent is the current public promotion available to all users. A model-specific promotion takes precedence over a global model promotion; the value is null when none applies.
List price and shown discount (pricing.list / pricing.discount_percent)
pricing.list is the provider's published list price (before discount), populated only for
the keys that also appear above as pricing.input_per_1m etc. Both list and shown prices exclude markup.
The public catalog's pricing shows the lowest rates among eligible endpoints, never the billed amount. Models without a list price omit the
pricing.list field entirely.
pricing.discount_percent computes (1 − shown/list) × 100 for each key in pricing.list, then
shows the minimum percentage only when every comparable rate is discounted. Undiscounted rates
count as 0%, so a cache-only discount does not become a model-wide discount. When only some rates
are discounted, pricing.list remains and pricing.discount_percent is omitted.
When no rate is discounted, both fields are omitted.
⚠️ This is a different axis from the top-level discount_percent (the everyais promotion
discount above). pricing.discount_percent is the shown rate's discount off the provider's list
price, while the top-level discount_percent is the currently active everyais promotion. The two
values are independent and can both be present at once.
{
"pricing": {
"unit": "per_1m_tokens",
"input_per_1m": 0.75,
"output_per_1m": 3.75,
"cache_read_per_1m": 0.075,
"list": {
"input_per_1m": 1.5,
"output_per_1m": 7.5,
"cache_read_per_1m": 0.15
},
"discount_percent": 50
}
}Display metadata fields
name- Human-readable display name
description- Model summary. Currently written in Korean only; null when absent
series- Model family token (
claude,gemini,gpt, …). null when unknown input_modalities- Input modalities —
text,image output_modalities- Output modalities —
text,image,video knowledge_cutoff- Training knowledge cutoff as
YYYY-MM-DD. Populated only for models with an official vendor announcement; null otherwise (we do not fill in estimates) price_search_per_query- Reference cost per search billing unit (USD): an executed Google query or a search-enabled Z.AI request. null when unsupported or no public reference cost is available — never 0
available- Whether the model is callable right now
aliases- Public inbound names that resolve to this id (last-segment, dotted versions, curated Cursor/OpenAI ids). Not extra catalog rows
capabilities.vision is true whenever input_modalities contains image.
Use capabilities.web_search to determine support. price_search_per_query is numeric only
when a public reference cost is available, so it may be null while the capability is true.
The Claude model above accepts image input, so vision is true; it does not support web search.
GET /v1/models/{model}
Retrieve a single model. Model ids contain slashes, so append the id to the path as-is.
GET /v1/models/everyais/gemini-3-5-flashIf the model does not exist or you do not have access to it, the endpoint returns 404 model_not_found.
Training use and long-context pricing
training_use describes provider use of prompts and completions for training: never, opt_in,
mixed (both endpoint types), or none (no active endpoints).
This consent is separate from community supply and is off by default. Organization keys use organization consent.
Without consent, training-only models are filtered out. Chat, Messages, and Responses
return 404 model_not_found when no callable candidate remains.
When pricing.long_context is present, the higher tier applies when input tokens exceed threshold_tokens.
The base tier's lowest rates are the top-level pricing.input_per_1m / pricing.output_per_1m.
The long-context tier uses pricing.long_context.input_per_1m / output_per_1m;
long_context.base_input_per_1m / base_output_per_1m are compatibility aliases for the long-context costs.
Catalog prices are not a billing quote.
Use response cost headers and usage records for the amount billed under your account's rates.