The model catalog lists the models runs can use and the default that applies when a run does not name one. It needs no API key.
/v1/modelsitemsarraydefault_modelstringmodel field.custom_models_allowedbooleanitems.idstringmodel, such as anthropic/claude-haiku-5.5.namestringcontext_lengthintegerpricingobjectprompt is input and completion is output.supported_parametersstring[]curl $EPHEMERAL_URL/v1/models{
"items": [
{
"id": "anthropic/claude-haiku-5.5",
"name": "Anthropic: Claude Haiku 5.5",
"context_length": 1000000,
"pricing": {
"prompt": "0.0000001",
"completion": "0.0000005",
"input_cache_read": "0.00000001",
"input_cache_write": "0.000000125",
"input_cache_write_1h": "0.0000002",
"overrides": [{ "min_prompt_tokens": 100000, "prompt": "0.0000005", "completion": "0.0000025" }]
},
"supported_parameters": ["max_tokens", "reasoning", "tool_choice", "tools"]
}
],
"default_model": "anthropic/claude-haiku-5.5",
"custom_models_allowed": false
}Hosted catalog
On the hosted service the catalog lists the models Ephemeral can bill safely. A model is listed when it has input and output token prices and no other charges that cannot be bounded in advance. Cached input and long-context price tiers (overrides) are fine: each call is authorized at the model's most expensive tier and charged what the provider reports. When the provider publishes the parameters a model supports, the list must include tools, because the agent works through tool calls. custom_models_allowed is false.
The catalog is cached for one minute. Prices are checked again before every model call, and each call is authorized against the run's budget at the current price. If a model stops qualifying, calls to it are refused and the run fails. See budgets and billing.
Self-hosted catalog
A self-hosted installation lists only its configured default model, and custom_models_allowed is true. Runs can name any model ID that your inference endpoint accepts. The catalog does not query or expose your inference credentials.