Models

The model catalog is public and is the source of truth for everything the API accepts: which model ids exist, what each one costs, and which parameters each one supports. The same ids appear in Model Garden. Always check the catalog before sending a capability field — a parameter the model does not list returns 400.

GEThttps://api.astorias.ai/v1/models
terminal
curl https://api.astorias.ai/v1/models

What to read on a model

id

The string you send as model in chat completions, for example qwen/qwen3.8-27b. There is no retrieve-by-id route — filter the list.

input and output

Input tells you what the model accepts (text, plus image or file when enabled) and its maximum context length. Output tells you the maximum response length and whether it streams.

supported_parameters

The parameters this model accepts beyond the basics. Look here for tools, structured_outputs, and reasoning_effort — each with the exact values the model supports. Anything missing from this list is rejected with a 400.

pricing

Per-token prices in USD. Prompt and completion always have a price; some models add a discounted cached-prompt price or a separate reasoning price. is_free is true only when every price is zero.

Supported parameters at a glance

Every model accepts the basics: temperature, top_p, top_k, max_tokens, stop, n, and the penalty fields. The table below shows the capabilities that vary per model and where to read about them.

toolsoptional
boolean in catalog

Present when the model accepts function tools. See Function calling.

structured_outputsoptional
boolean in catalog

Present when the model accepts json_object and json_schema response formats. See Structured outputs.

reasoning / reasoning_effortoptional
values list in catalog

Present when the model reasons. reasoning_effort.values lists the efforts it accepts, for example low, medium, high. See Reasoning.

Check before you send

Tools, structured outputs, reasoning effort, image parts, file parts, and a max_tokens above the model limit all return 400 invalid_request when the model does not list them. The error message tells you what that model accepts.

Function calling, Structured outputs, and Reasoning each have a worked example.