Models
GET /v1/models and GET /v1/models/{model} — the published catalog.
List models
GET https://api.inference.runatlas.com/v1/modelsReturns every published model. The OpenAI list envelope, with Atlas's published metadata added to each entry — additive, so an OpenAI SDK ignores the extra keys.
curl https://api.inference.runatlas.com/v1/models \
-H "Authorization: Bearer $ATLAS_API_KEY"{
"object": "list",
"data": [
{
"id": "atlas-mid-1",
"object": "model",
"created": 1749513600,
"owned_by": "atlas",
"context_length": 131072,
"max_request_bytes": 1048576,
"capabilities": {
"tool_calling": true,
"structured_output": true,
"json_schema_subset": "atlas-json-schema-subset-v1"
},
"pricing": {
"input_per_mtok": "0.50",
"output_per_mtok": "1.50",
"currency": "USD",
"provisional": true,
"reasoning_tokens_billed_as": "output"
},
"lifecycle": {
"status": "active",
"superseded_by": null,
"shutdown_at": null
}
}
]
}Fields
idstringThe identifier to send as model. Pinned to a specific set of weights — see
Model lifecycle.
owned_bystringAlways atlas.
context_lengthintegerTotal tokens across prompt and completion.
max_request_bytesintegerLargest accepted request body. Above it: 413 request_too_large.
capabilities.tool_callingbooleanSending tools to a model where this is false is refused with
model_does_not_support_tools.
capabilities.structured_outputbooleanSending response_format: json_schema where this is false is refused with
model_does_not_support_structured_output.
capabilities.json_schema_subsetstring | nullThe subset schemas are validated against, or null where structured output is
unsupported. Currently atlas-json-schema-subset-v1.
pricingobjectinput_per_mtok and output_per_mtok are decimal strings, priced per
million tokens. provisional is always true during the beta.
reasoning_tokens_billed_as is always "output", and those tokens are counted
inside completion_tokens.
lifecycleobjectstatus is active or superseded. superseded_by names the successor;
shutdown_at is when a superseded identifier stops serving.
Retrieve a model
GET https://api.inference.runatlas.com/v1/models/{model}Returns one entry in the shape above.
curl https://api.inference.runatlas.com/v1/models/atlas-mid-1 \
-H "Authorization: Bearer $ATLAS_API_KEY"The path accepts vendor-shaped identifiers containing a slash
(vendor/atlas-small-1), so a legitimate retrieve is not turned into a 404 by
the router.
Errors
| Status | Code | |
|---|---|---|
| 404 | model_not_found | The identifier was never published. |
| 404 | model_retired | It existed and has passed its shutdown date. |
Both carry type: "not_found_error" and param: "model". The code is what
lets your alerting tell a missed deprecation deadline from a typo.
Use it as data
The catalog reflects operator changes without a docs release, and it is the only
place lifecycle is published. Read it on a schedule rather than hard-coding a
model table: a status of superseded on an identifier you are pinned to is
your migration notice, and it arrives with a date attached.