Select an available model
Read the free catalog and select a model ID and mode that your key can access.
Read the free catalog and select a model ID and mode that your key can access.
Set BASE_URL to your HTTPS API origin without a trailing slash or /v1, and pass API_KEY from your credential store. OpenAI-compatible SDKs use ${BASE_URL}/v1; Anthropic-compatible SDKs use BASE_URL.
The model list depends on your organization, API key permissions, and current catalog. Reading it does not start generation or debit credits. Read the catalog when configuring a client and refresh it before selecting a model if access may have changed.
printf 'Authorization: Bearer %s\n' "$API_KEY" \
| curl -q -H @- "$BASE_URL/v1/models"
printf 'Authorization: Bearer %s\n' "$API_KEY" \
| curl -q -H @- "$BASE_URL/v1/models/gpt-5.6-sol"
The list has object "list" and a data array. Choose an entry's id, for example gpt-5.6-sol when present. The second request returns that model's card or HTTP 404 if the ID is not available. Display names are for people; requests use id. The catalog declares reasoning, tool and search capabilities, but it currently has no separate image, audio or document flags. A specific request also depends on your plan, protocol and current execution availability.
| Field | How to use it |
|---|---|
id | Entry identifier for model in API requests and client configuration. Select it from the catalog rather than deriving it from the display name. |
display_name, description | Human-facing name and explanation in a model picker. They may change while id stays the same. |
is_default | Initial selection hint for this organization. Preserve the user's explicit model choice. |
capabilities | Declares streaming, tools, reasoning, structuredOutput, jailbreak, webSearch, contextWindowTokens and defaultMaxOutputTokens. It does not confirm media support; see reasoning and media. |
created, created_at, owned_by, object, type | Compatibility fields for OpenAI and Anthropic catalog formats. Use capabilities to determine supported features. |
The list also includes has_more: false; first_id and last_id are omitted when it is empty. Select from data rather than treating those fields as a range of available IDs. Catalog capabilities describe the model; the actual request also checks plan permissions and current execution availability.
When a model supports Jailbreak, the catalog also includes an entry with a -jailbreak suffix, such as gpt-5.6-sol-jailbreak. This selects the same model with Jailbreak on refusal enabled. In this mode, a Jailbreak answer may follow a refusal if your plan permits it. Use the base ID, such as gpt-5.6-sol, for regular mode. Select the additional ID only when it appears in your catalog; the suffix itself does not grant access.
models:read. A browser session cannot replace the Bearer key in an external client.GET /v1/models returns 401 or 403, fix authentication before attempting generation.model_not_found, select a current id. Editing the display name will not resolve this error.Use the selected ID in your first Responses request. If the list is empty, check account access and limits before sending a paid request. For repeatable CLI setup, use unlimgpt models.