Atlas Inference

Models

GET /v1/models and GET /v1/models/{model} — the published catalog.

List models

GET https://api.inference.runatlas.com/v1/models

Returns 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

idstring

The identifier to send as model. Pinned to a specific set of weights — see Model lifecycle.

owned_bystring

Always atlas.

context_lengthinteger

Total tokens across prompt and completion.

max_request_bytesinteger

Largest accepted request body. Above it: 413 request_too_large.

capabilities.tool_callingboolean

Sending tools to a model where this is false is refused with model_does_not_support_tools.

capabilities.structured_outputboolean

Sending response_format: json_schema where this is false is refused with model_does_not_support_structured_output.

capabilities.json_schema_subsetstring | null

The subset schemas are validated against, or null where structured output is unsupported. Currently atlas-json-schema-subset-v1.

pricingobject

input_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.

lifecycleobject

status 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

StatusCode
404model_not_foundThe identifier was never published.
404model_retiredIt 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.

On this page