> ## Documentation Index
> Fetch the complete documentation index at: https://docs.freemodel.app/llms.txt
> Use this file to discover all available pages before exploring further.

# GPT-5.4 Nano

> Call OpenAI GPT-5.4 Nano (`gpt-5.4-nano`) through FreeModel with per-million-token pricing and curl examples.

`gpt-5.4-nano` is the smallest GPT-5.4 tier, suited to classification, extraction, routing, and short replies. Send it OpenAI-compatible chat requests through FreeModel with one API key.

## Price per 1M tokens

| Property     | Value                                                  |
| ------------ | ------------------------------------------------------ |
| Model ID     | `gpt-5.4-nano`                                         |
| Input price  | \$0.24 per 1M tokens                                   |
| Output price | \$1.50 per 1M tokens (reasoning tokens bill as output) |
| Cached input | \$0.03 per 1M tokens                                   |
| Streaming    | Supported with `stream: true`                          |

Confirm live rates on the [models page](https://freemodel.app/models/gpt-5) before production rollout.

<ParamField body="model" type="string" required>
  Set to `gpt-5.4-nano`.
</ParamField>

<ParamField body="messages" type="array" required>
  Ordered system, user, and assistant messages.
</ParamField>

<ParamField body="stream" type="boolean" default="false">
  Set to `true` to receive server-sent events. The final event carries token usage.
</ParamField>

<ParamField body="max_completion_tokens" type="integer">
  Caps generated tokens, including reasoning. GPT-5 models do not accept `max_tokens`.
</ParamField>

## Request (curl)

```bash theme={null}
curl https://api.freemodel.app/v1/chat/completions \
  -H "Authorization: Bearer $FREEMODEL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.4-nano",
    "messages": [{"role": "user", "content": "Summarize this design decision in three bullets."}]
  }'
```

Streaming example:

```bash theme={null}
curl -N https://api.freemodel.app/v1/chat/completions \
  -H "Authorization: Bearer $FREEMODEL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.4-nano",
    "stream": true,
    "messages": [{"role": "user", "content": "Outline a 5-step API migration plan."}]
  }'
```

Responses API example:

```bash theme={null}
curl https://api.freemodel.app/v1/responses \
  -H "Authorization: Bearer $FREEMODEL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.4-nano",
    "input": "List three risks in this rollout plan."
  }'
```

Read generated text from `choices[0].message.content`. See [Chat Completions protocol](/api-reference/chat-completions) for streaming and response fields.

## Supported protocols

| Format           | Path                        |
| ---------------- | --------------------------- |
| Chat Completions | `POST /v1/chat/completions` |
| Responses        | `POST /v1/responses`        |

<Note>
  FreeModel forwards each protocol only to routes that serve it natively; it does not
  translate between protocols. Billing uses the input, output, and cached token
  counts the provider reports.
</Note>
