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

# Models & pricing

> Current Terminal model pricing for Standard and Flex windows.

# Models & pricing

Prices are in USD per 1M tokens.

## Gemma 4 31B

Model ID: `gemma-4-31b`

### Standard pricing

| Window          |  Input | Output | Cached input |
| --------------- | -----: | -----: | -----------: |
| Standard window | \$0.12 | \$0.37 |      90% off |

### Flex pricing

Gemma 4 31B Flex pricing is discounted from Standard pricing based on Pacific Time.

Windows: weekday daytime (Mon-Fri, outside 12:00AM-6:00AM PT), weekday nighttime (Mon-Fri, 12:00AM-6:00AM PT), and weekend (Sat-Sun PT).

| Flex window       | Discount | Effective input | Effective output | Cached input |
| ----------------- | -------: | --------------: | ---------------: | -----------: |
| Weekday daytime   |  20% off |         \$0.096 |          \$0.296 |      90% off |
| Weekday nighttime |  35% off |         \$0.078 |         \$0.2405 |      90% off |
| Weekend           |  50% off |          \$0.06 |          \$0.185 |      90% off |

Weekend pricing overrides the daytime and night discounts.

### Standard window request

<CodeGroup>
  ```python Python SDK theme={null}
  from openai import OpenAI

  client = OpenAI(
      base_url="https://api.terminal.fyi/v1",
      api_key="TERMINAL_API_KEY",
  )

  response = client.chat.completions.create(
      model="gemma-4-31b",
      messages=[
          {
              "role": "user",
              "content": "Draft a concise changelog entry for improved cache hit rates.",
          }
      ],
      max_tokens=8000,
  )

  print(response.choices[0].message.content)
  ```

  ```typescript TypeScript SDK theme={null}
  import OpenAI from "openai";

  const client = new OpenAI({
    baseURL: "https://api.terminal.fyi/v1",
    apiKey: process.env.TERMINAL_API_KEY,
  });

  const response = await client.chat.completions.create({
    model: "gemma-4-31b",
    messages: [
      {
        role: "user",
        content: "Draft a concise changelog entry for improved cache hit rates.",
      },
    ],
    max_tokens: 8000,
  });

  console.log(response.choices[0].message.content);
  ```

  ```python Python HTTP theme={null}
  import requests

  response = requests.post(
      "https://api.terminal.fyi/v1/chat/completions",
      headers={
          "Authorization": "Bearer TERMINAL_API_KEY",
          "Content-Type": "application/json",
      },
      json={
          "model": "gemma-4-31b",
          "messages": [
              {
                  "role": "user",
                  "content": "Draft a concise changelog entry for improved cache hit rates.",
              }
          ],
          "max_tokens": 8000,
      },
      timeout=60,
  )
  response.raise_for_status()

  completion = response.json()
  print(completion["choices"][0]["message"]["content"])
  ```

  ```typescript TypeScript HTTP theme={null}
  const response = await fetch("https://api.terminal.fyi/v1/chat/completions", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.TERMINAL_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      model: "gemma-4-31b",
      messages: [
        {
          role: "user",
          content: "Draft a concise changelog entry for improved cache hit rates.",
        },
      ],
      max_tokens: 8000,
    }),
  });
  if (!response.ok) throw new Error(await response.text());

  const completion = await response.json();
  console.log(completion.choices[0].message.content);
  ```

  ```bash cURL theme={null}
  curl -sS https://api.terminal.fyi/v1/chat/completions \
    -H "Authorization: Bearer $TERMINAL_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "gemma-4-31b",
      "messages": [
        {
          "role": "user",
          "content": "Draft a concise changelog entry for improved cache hit rates."
        }
      ],
      "max_tokens": 8000
    }' | jq
  ```
</CodeGroup>

### Flex window request

<CodeGroup>
  ```python Python SDK theme={null}
  from openai import OpenAI

  client = OpenAI(
      base_url="https://api.terminal.fyi/v1",
      api_key="TERMINAL_API_KEY",
      timeout=1800.0,
  )

  response = client.chat.completions.create(
      model="gemma-4-31b",
      service_tier="flex",
      messages=[
          {
              "role": "user",
              "content": "Summarize a nightly batch result for an ML platform team.",
          }
      ],
      max_tokens=8000,
  )

  print(response.choices[0].message.content)
  ```

  ```typescript TypeScript SDK theme={null}
  import OpenAI from "openai";

  const client = new OpenAI({
    baseURL: "https://api.terminal.fyi/v1",
    apiKey: process.env.TERMINAL_API_KEY,
    timeout: 1_800_000,
  });

  const response = await client.chat.completions.create({
    model: "gemma-4-31b",
    service_tier: "flex",
    messages: [
      {
        role: "user",
        content: "Summarize a nightly batch result for an ML platform team.",
      },
    ],
    max_tokens: 8000,
  });

  console.log(response.choices[0].message.content);
  ```

  ```python Python HTTP theme={null}
  import requests

  response = requests.post(
      "https://api.terminal.fyi/v1/chat/completions",
      headers={
          "Authorization": "Bearer TERMINAL_API_KEY",
          "Content-Type": "application/json",
      },
      json={
          "model": "gemma-4-31b",
          "service_tier": "flex",
          "messages": [
              {
                  "role": "user",
                  "content": "Summarize a nightly batch result for an ML platform team.",
              }
          ],
          "max_tokens": 8000,
      },
      timeout=1800,
  )
  response.raise_for_status()

  completion = response.json()
  print(completion["choices"][0]["message"]["content"])
  ```

  ```typescript TypeScript HTTP theme={null}
  const response = await fetch("https://api.terminal.fyi/v1/chat/completions", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.TERMINAL_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      model: "gemma-4-31b",
      service_tier: "flex",
      messages: [
        {
          role: "user",
          content: "Summarize a nightly batch result for an ML platform team.",
        },
      ],
      max_tokens: 8000,
    }),
    signal: AbortSignal.timeout(1_800_000),
  });
  if (!response.ok) throw new Error(await response.text());

  const completion = await response.json();
  console.log(completion.choices[0].message.content);
  ```

  ```bash cURL theme={null}
  curl -sS --max-time 1800 https://api.terminal.fyi/v1/chat/completions \
    -H "Authorization: Bearer $TERMINAL_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "gemma-4-31b",
      "service_tier": "flex",
      "messages": [
        {
          "role": "user",
          "content": "Summarize a nightly batch result for an ML platform team."
        }
      ],
      "max_tokens": 8000
    }' | jq
  ```
</CodeGroup>

## MiniMax M3

Model ID: `minimax-m3`

### Standard pricing

| Window          |  Input | Output | Cached input |
| --------------- | -----: | -----: | -----------: |
| Standard window | \$0.30 | \$1.20 |      80% off |

### Flex pricing

MiniMax M3 Flex pricing is discounted from Standard pricing based on Pacific Time.

Windows: weekday daytime (Mon-Fri, outside 12:00AM-6:00AM PT), weekday nighttime (Mon-Fri, 12:00AM-6:00AM PT), and weekend (Sat-Sun PT).

| Flex window       | Discount | Effective input | Effective output |
| ----------------- | -------: | --------------: | ---------------: |
| Weekday daytime   |  20% off |          \$0.24 |           \$0.96 |
| Weekday nighttime |  35% off |         \$0.195 |           \$0.78 |
| Weekend           |  50% off |          \$0.15 |           \$0.60 |

Weekend pricing overrides the daytime and night discounts.

### Standard window request

<CodeGroup>
  ```python Python SDK theme={null}
  from openai import OpenAI

  client = OpenAI(
      base_url="https://api.terminal.fyi/v1",
      api_key="TERMINAL_API_KEY",
  )

  response = client.chat.completions.create(
      model="minimax-m3",
      messages=[
          {
              "role": "user",
              "content": "Write a compact implementation plan for adding workspace search.",
          }
      ],
      max_tokens=8000,
  )

  print(response.choices[0].message.content)
  ```

  ```typescript TypeScript SDK theme={null}
  import OpenAI from "openai";

  const client = new OpenAI({
    baseURL: "https://api.terminal.fyi/v1",
    apiKey: process.env.TERMINAL_API_KEY,
  });

  const response = await client.chat.completions.create({
    model: "minimax-m3",
    messages: [
      {
        role: "user",
        content: "Write a compact implementation plan for adding workspace search.",
      },
    ],
    max_tokens: 8000,
  });

  console.log(response.choices[0].message.content);
  ```

  ```python Python HTTP theme={null}
  import requests

  response = requests.post(
      "https://api.terminal.fyi/v1/chat/completions",
      headers={
          "Authorization": "Bearer TERMINAL_API_KEY",
          "Content-Type": "application/json",
      },
      json={
          "model": "minimax-m3",
          "messages": [
              {
                  "role": "user",
                  "content": "Write a compact implementation plan for adding workspace search.",
              }
          ],
          "max_tokens": 8000,
      },
      timeout=60,
  )
  response.raise_for_status()

  completion = response.json()
  print(completion["choices"][0]["message"]["content"])
  ```

  ```typescript TypeScript HTTP theme={null}
  const response = await fetch("https://api.terminal.fyi/v1/chat/completions", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.TERMINAL_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      model: "minimax-m3",
      messages: [
        {
          role: "user",
          content: "Write a compact implementation plan for adding workspace search.",
        },
      ],
      max_tokens: 8000,
    }),
  });
  if (!response.ok) throw new Error(await response.text());

  const completion = await response.json();
  console.log(completion.choices[0].message.content);
  ```

  ```bash cURL theme={null}
  curl -sS https://api.terminal.fyi/v1/chat/completions \
    -H "Authorization: Bearer $TERMINAL_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "minimax-m3",
      "messages": [
        {
          "role": "user",
          "content": "Write a compact implementation plan for adding workspace search."
        }
      ],
      "max_tokens": 8000
    }' | jq
  ```
</CodeGroup>

### Flex window request

<CodeGroup>
  ```python Python SDK theme={null}
  from openai import OpenAI

  client = OpenAI(
      base_url="https://api.terminal.fyi/v1",
      api_key="TERMINAL_API_KEY",
      timeout=1800.0,
  )

  response = client.chat.completions.create(
      model="minimax-m3",
      service_tier="flex",
      messages=[
          {
              "role": "user",
              "content": "Turn these benchmark notes into three prioritized next steps.",
          }
      ],
      max_tokens=8000,
  )

  print(response.choices[0].message.content)
  ```

  ```typescript TypeScript SDK theme={null}
  import OpenAI from "openai";

  const client = new OpenAI({
    baseURL: "https://api.terminal.fyi/v1",
    apiKey: process.env.TERMINAL_API_KEY,
    timeout: 1_800_000,
  });

  const response = await client.chat.completions.create({
    model: "minimax-m3",
    service_tier: "flex",
    messages: [
      {
        role: "user",
        content: "Turn these benchmark notes into three prioritized next steps.",
      },
    ],
    max_tokens: 8000,
  });

  console.log(response.choices[0].message.content);
  ```

  ```python Python HTTP theme={null}
  import requests

  response = requests.post(
      "https://api.terminal.fyi/v1/chat/completions",
      headers={
          "Authorization": "Bearer TERMINAL_API_KEY",
          "Content-Type": "application/json",
      },
      json={
          "model": "minimax-m3",
          "service_tier": "flex",
          "messages": [
              {
                  "role": "user",
                  "content": "Turn these benchmark notes into three prioritized next steps.",
              }
          ],
          "max_tokens": 8000,
      },
      timeout=1800,
  )
  response.raise_for_status()

  completion = response.json()
  print(completion["choices"][0]["message"]["content"])
  ```

  ```typescript TypeScript HTTP theme={null}
  const response = await fetch("https://api.terminal.fyi/v1/chat/completions", {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.TERMINAL_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      model: "minimax-m3",
      service_tier: "flex",
      messages: [
        {
          role: "user",
          content: "Turn these benchmark notes into three prioritized next steps.",
        },
      ],
      max_tokens: 8000,
    }),
    signal: AbortSignal.timeout(1_800_000),
  });
  if (!response.ok) throw new Error(await response.text());

  const completion = await response.json();
  console.log(completion.choices[0].message.content);
  ```

  ```bash cURL theme={null}
  curl -sS --max-time 1800 https://api.terminal.fyi/v1/chat/completions \
    -H "Authorization: Bearer $TERMINAL_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "minimax-m3",
      "service_tier": "flex",
      "messages": [
        {
          "role": "user",
          "content": "Turn these benchmark notes into three prioritized next steps."
        }
      ],
      "max_tokens": 8000
    }' | jq
  ```
</CodeGroup>

## Request-only models

The following models are request-only. Email [shubham@terminal.fyi](mailto:shubham@terminal.fyi) with the model name, expected token volume, and whether you need Standard, Flex, or both.

| Model                   | Status       |
| ----------------------- | ------------ |
| GLM 5.2                 | Request only |
| DeepSeek V4 Pro         | Request only |
| Kimi K2.6               | Request only |
| DeepSeek V4 Flash       | Request only |
| NVIDIA Nemotron 3 Ultra | Request only |

## API keys

To request access, email [shubham@terminal.fyi](mailto:shubham@terminal.fyi).
