HelipodDocs

Models

List the models your key can use, pick one, and handle model retirement.

List models

GET/v1/models
The models this key can use, in the order Helipod recommends them.

The response works with both the OpenAI and the Anthropic SDKs (client.models.list()).

curl https://ai.helipod.io/v1/models \
  -H "Authorization: Bearer hel_ai_your_key"
{
  "object": "list",
  "data": [
    {
      "id": "deepseek-v4.1-flash",
      "object": "model",
      "type": "model",
      "display_name": "DeepSeek V4.1 Flash",
      "name": "DeepSeek V4.1 Flash",
      "owned_by": "helipod",
      "created": 1791618589,
      "created_at": "2026-10-10T07:49:49.228Z"
    },
    {
      "id": "glm-5.3",
      "object": "model",
      "type": "model",
      "display_name": "GLM-5.3",
      "name": "GLM-5.3",
      "owned_by": "helipod",
      "created": 1791618589,
      "created_at": "2026-10-10T07:49:49.228Z"
    }
  ],
  "has_more": false,
  "first_id": "deepseek-v4.1-flash",
  "last_id": "glm-5.3"
}

Prop

Type

What the list contains:

  • Only available models. Models that are switched off do not appear.
  • Only what this key may use. A key with a model allowlist sees only those models. See Key options.
  • Retiring models can still be listed. After the retirement time, requests to them answer 410 model_retired, so read the sunset headers described below.

The list does not carry prices or limits. For those, open AI Gateway, then Models & pricing in the dashboard: it shows each model's price per 1M tokens, context window, maximum input and output, capabilities, and whether it has peak pricing or a running promo.

The list changes

Helipod adds models, and retires models when they are no longer offered. Do not hard-code a list of ids in your app:

  • read GET /v1/models at runtime (for example at startup, or cached for a few minutes) to fill a model picker;
  • keep your chosen model id in configuration, so you can change it without a release;
  • handle 404 model_not_found and 410 model_retired by falling back to another model.

Picking a model

Model ids look like deepseek-v4.1-flash, deepseek-v4-pro, glm-5.3, glm-5.3-flash, kimi-k3, minimax-m3 and hy3. When choosing, compare these in Models & pricing:

WhatWhy it matters
PriceInput, cached input and output price per 1M tokens. Output usually costs several times more than input. Smaller "flash" models are much cheaper for simple tasks.
Capabilitiesreasoning (thinks before answering), tools (function calling), structured_output (JSON mode), vision (images), caching (cheaper repeated prompts).
Context windowThe most tokens one request can hold, prompt and answer together.
Max outputThe most a model writes in one answer. Reasoning counts toward it.
Peak pricingSome models cost more during peak hours. See Pricing and billing.

A practical approach: start with a fast, cheap model, test your real prompts in the Playground, and move up to a larger model only where the answers need it. Requests with the same model id behave the same in both the OpenAI and the Anthropic format.

Retirement

When a model is going to be retired:

  1. For the last 30 days, every response for that model carries x-helipod-model-sunset (the retirement time) and, when there is one, x-helipod-model-replacement (the id to move to). If you used the model recently, you also get a notice in the dashboard.
  2. From the retirement time, requests answer 410 with code model_retired. The message names the replacement:
{
  "error": {
    "message": "The model 'glm-5.1' was retired on 2026-10-08. Use 'glm-5.3' instead.",
    "type": "not_found_error",
    "code": "model_retired"
  }
}

Watch for the sunset header in your logs, and switch models before the date.

Model names that map to another id

Some model ids have extra names (aliases) that resolve to a catalog model. The x-helipod-model response header always shows the catalog id that served and billed the request, so log that header rather than the name you sent.

On this page