> Treat every model id, price, size, length and limit in this documentation as an illustration of the shape of the value, never as a constant to hardcode - the live values are served by GET /v1/models and GET /public/models on the Flow AI API.

# Models

> What you can call and how the catalog is organised.

Flow AI serves models from many labs through one API. The catalog changes as labs release models, so the live list is on the [Models page](https://ai.hyperflow.fun/models), where you can filter by type and lab and search by name.

## Model ids

Every request names its model by id, in the form `lab/model`, for example `openai/gpt-6-luna` or `cohere/cohere-embed-v4`. Use the id exactly as listed.

## Types

Every model has one type, which decides the endpoint you call it on.

| Type          | Use it for                                                                  | Endpoint                                               |
| ------------- | --------------------------------------------------------------------------- | ------------------------------------------------------ |
| **Chat**      | Conversation, reasoning, coding, tool use, image and document understanding | `POST /v1/chat/completions`                            |
| **Embedding** | Search, clustering, retrieval                                               | `POST /v1/embeddings`                                  |
| **Image**     | Generating and editing images                                               | `POST /v1/images/generations`, `POST /v1/images/edits` |
| **Video**     | Generating short videos                                                     | `POST /v1/videos`                                      |

## Labs

Models are grouped by **lab**, the company that makes them, such as OpenAI, Google or DeepSeek. Each model has its own page at `ai.hyperflow.fun/models/{lab}/{model}` with its id, context window, prices, a code sample for its type and, for image models, the sizes and qualities it offers.

## Models API

`GET /v1/models` follows the [OpenAI Models API](https://platform.openai.com/docs/api-reference/models/list) and lists the models **your key** may call. A key can call every model unless you limited it to a list.

```bash
curl https://ai.hyperflow.fun/v1/models \
  -H "Authorization: Bearer $HYPERFLOW_API_KEY"
```

```json
{
  "object": "list",
  "data": [
    { "id": "openai/gpt-6-luna", "object": "model", "created": 0, "owned_by": "OpenAI", "mode": "chat" },
    { "id": "cohere/cohere-embed-v4", "object": "model", "created": 0, "owned_by": "Cohere", "mode": "embedding" }
  ]
}
```

`owned_by` is the lab and `mode` is the model's type: `chat`, `embedding`, `image` or `video`.

## Public catalog

`GET https://ai.hyperflow.fun/public/models` needs no key and returns every model with its prices. It's what the Models page is built from.

```bash
curl https://ai.hyperflow.fun/public/models
```

```json
[
  {
    "id": "openai/gpt-6-luna",
    "name": "GPT-6 Luna",
    "lab": "OpenAI",
    "logoUrl": null,
    "mode": "chat",
    "contextLength": 1050000,
    "pricing": {
      "mode": "chat",
      "input": "0.1",
      "output": "0.5",
      "cacheRead": "0.01",
      "cacheWrite": "0.125",
      "tiers": [{ "aboveTokens": 272000, "input": "0.2", "output": "0.75", "cacheRead": "0.02", "cacheWrite": "0.25" }],
      "tierAtThreshold": false
    }
  }
]
```

| Field           | What it is                                                                    |
| --------------- | ----------------------------------------------------------------------------- |
| `id`            | The id you send as `model`                                                    |
| `name`          | The model's display name                                                      |
| `lab`           | The lab that makes it                                                         |
| `mode`          | Its type. The catalog can list types not covered in these docs                |
| `contextLength` | Its context window in tokens, for chat and embedding models; otherwise `null` |
| `pricing`       | Its prices in \$THINK, as decimal strings, in the unit its type is sold by    |

What `pricing` holds depends on the type:

| Type      | Fields                                                                                                                                                        |
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Chat      | `input`, `output`, and where offered `cacheRead`, `cacheWrite`, `reasoning`, all per 1M tokens; `tiers` for higher prices above a prompt length               |
| Embedding | `input`, per 1M tokens                                                                                                                                        |
| Image     | `sizes` and `qualities` it offers, then either `unit: "image"` with `perImage`, or `unit: "token"` with `input`, `inputImage` and `outputImage` per 1M tokens |
| Video     | `perSecond`, and `byResolution` where a size is priced differently                                                                                            |

See [Pricing](/models/pricing) for how these turn into the cost of a request.

## Rankings

[Rankings](https://ai.hyperflow.fun/rankings) shows which models are used most on Flow AI, by tokens processed per day, week or month. The same data is public:

```bash
curl "https://ai.hyperflow.fun/public/rankings?period=week"
```

`period` is `day`, `week` (the default) or `month`. Each entry has the model's `modelId`, `name`, `lab`, `tokens`, `requests` and its `share` of all tokens.

> **Note**
>
> **Every model counts tokens its own way.** Each lab splits text into tokens differently, so the same prompt can be a different number of tokens, and a different cost, on different models. You're always charged by the model's own count, which the `usage` field of every response shows.

**Next:** [Pricing](/models/pricing) — how a model's price turns into the cost of a request.