Skip to main content
Piramyd’s model catalog is live and changes as providers release new models, retire old ones, and adjust tier availability. Always call GET /v1/models at startup — or per request in dynamic environments — and select the model that matches the capabilities you need. Never hardcode a model ID: what works today may be gone tomorrow, and a fresher or cheaper model may be the right choice tomorrow.

GET /v1/models

Returns the full model catalog as an OpenAI-compatible list object. Each entry includes capability flags, modality declarations, context window sizes, and the exact endpoint paths the model supports. Authentication: Authorization: Bearer sk-<your-key>

Response shape

Response fields

string
Always "list". Matches the OpenAI list object envelope.
array
Array of model objects. Each object contains the fields described below.
string
required
The model identifier. Pass this value as the model parameter in any inference request. See Model ID normalization for accepted formats.
string
Human-readable display name for the model, suitable for UI presentation.
string
Always "model".
string
The upstream provider that owns the model weights — for example anthropic, openai. Use this to filter by provider.
string
Same value as owned_by. Present for compatibility with OpenRouter-style tooling that expects a provider field.
string
Model type. "chat" for all current conversational models.
string
The subscription tier required to access this model. One of "free", "pro", or "premium". Check your plan against this field before selecting a model.
string[]
The API endpoint paths this model supports — for example ["/v1/chat/completions", "/v1/responses"]. Check this array before routing a request to a specific endpoint.
string[]
High-level capability tags — for example ["text", "vision", "tool_use"]. Use these for broad filtering; prefer the boolean flags below for programmatic checks.
string[]
The input types this model accepts — for example ["text", "image"]. Only send image content to models that declare "image" here.
string[]
The output types this model produces — for example ["text"].
integer
Maximum number of input tokens the model accepts in a single request. Use this to validate your prompt length before sending.
integer
Alias of context_length. Present for compatibility with tooling that expects a context_window field. Both values are identical.
integer
Maximum tokens the model can generate in a single response. Cap your max_tokens parameter at or below this value.
integer
Alias of max_output_tokens. Present for compatibility with tooling that uses the newer OpenAI max_completion_tokens field name. Both values are identical.
boolean
true if the model supports OpenAI-style function/tool calling. Always check this before including a tools array in your request — sending tools to an unsupported model returns an error.
boolean
true if the model accepts image inputs via the image_url content type. This means the model can read images sent in a chat or responses request — not generate them.
boolean
true if the model supports chain-of-thought / extended reasoning modes.
string
Human-readable description of the model’s strengths and intended use cases.
string
"list" means the model appears in the public catalog. Models with other values are accessible by ID but do not surface in the listing.

Filter for tool-capable models

Use the response to build a filtered list at startup, then pick a model that matches your needs:

GET /v1/models/{model_id}

Retrieve metadata for a single model by its ID. Useful for validating a model ID at startup or refreshing a cached entry. Authentication: Authorization: Bearer sk-<your-key>

Model ID normalization

The API accepts model IDs in several equivalent formats — useful when working with IDs copied from different sources. All of the following resolve to the same model:

GET /v1/tiers

Returns a tier and model availability overview, showing which models are accessible on each subscription tier. Authentication: Authorization: Bearer sk-<your-key> Use this endpoint to check which models your current plan unlocks — or to build a tier selection UI that shows users what they gain by upgrading.
If you only need to know whether a specific model is available on your plan, check the tier field on the individual model object from GET /v1/models and compare it against your subscription. Use GET /v1/tiers when you want the full picture across all plans.

Never hardcode model IDs. The catalog changes: models are added, deprecated, and renamed as providers ship updates. Always call GET /v1/models at startup (or per-request in dynamic pipelines) and select a model based on its capability flags. Hardcoded IDs will break silently or return 404 when a model is retired.