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

# Models

> Find the models available to you and choose one for a request

Every chat completion request names a model in its `model` parameter. The [List models](/api-reference/models/list-models) endpoint returns the models you can use, and [Retrieve a model](/api-reference/models/retrieve-a-model) returns one of them.

| Model ID | Created | Knowledge cutoff | Context window | Max output |
| - | - | - | - | - |
| `Beam-501B-A23B` | October 5, 2026 | June 30, 2026 | 256K<sup>1</sup> | 128K |

<Info>
  <sup>1</sup> The context window may change during the beta.
</Info>

Beam supports [reasoning](/reasoning), [tool calling](/tool-calling), and [structured outputs](/structured-outputs).

## List models

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api.reflection.ai/openai/v1/models \
    -H "Authorization: Bearer $REFLECTION_API_KEY"
  ```

  ```python Python theme={null}
  import os
  from openai import OpenAI

  client = OpenAI(
      base_url="https://api.reflection.ai/openai/v1",
      api_key=os.environ["REFLECTION_API_KEY"],
  )

  for model in client.models.list():
      print(model.id)
  ```

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

  const client = new OpenAI({
    baseURL: "https://api.reflection.ai/openai/v1",
    apiKey: process.env.REFLECTION_API_KEY,
  });

  for await (const model of client.models.list()) {
    console.log(model.id);
  }
  ```
</CodeGroup>

```json Response theme={null}
{
  "object": "list",
  "data": [
    {
      "id": "Beam-501B-A23B",
      "object": "model",
      "created": 1791158400,
      "owned_by": "reflection",
      "shutdown_date": null,
      "context_length": 262144,
      "max_output_tokens": 131072,
      "reasoning": {
        "supported_efforts": ["max", "xhigh", "high", "medium", "low"],
        "default_effort": "medium",
        "mandatory": true
      }
    }
  ]
}
```

Each model object has these fields:

| Field | Description |
| - | - |
| `id` | The identifier to pass as `model` in a request. |
| `object` | Always `model`. |
| `created` | The Unix time, in seconds, when the model was published, or `0` if its publication time isn't announced. |
| `owned_by` | The organization that owns the model. |
| `shutdown_date` | The date the model will shut down, or `null` if none has been announced. |
| `context_length` | The largest request the model supports, in tokens, counting the prompt and the generated output together. A request longer than the model accepts is rejected, not truncated. Omitted if not announced. |
| `max_output_tokens` | The most tokens the model supports generating in response to one request. Omitted if not announced. |
| `reasoning` | The model's [reasoning efforts](/reasoning#discover-supported-efforts): the `reasoning_effort` values it accepts, the effort it applies when a request omits one, and whether reasoning is always on. Omitted if not announced. |

## Retrieve a model

To get one model, request it by ID. The response is a single model object with the same fields, and an unknown or unavailable model returns `404` with code `model_not_found`.

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api.reflection.ai/openai/v1/models/Beam-501B-A23B \
    -H "Authorization: Bearer $REFLECTION_API_KEY"
  ```

  ```python Python theme={null}
  import os
  from openai import OpenAI

  client = OpenAI(
      base_url="https://api.reflection.ai/openai/v1",
      api_key=os.environ["REFLECTION_API_KEY"],
  )

  model = client.models.retrieve("Beam-501B-A23B")
  print(model.id, model.owned_by)
  ```

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

  const client = new OpenAI({
    baseURL: "https://api.reflection.ai/openai/v1",
    apiKey: process.env.REFLECTION_API_KEY,
  });

  const model = await client.models.retrieve("Beam-501B-A23B");
  console.log(model.id, model.owned_by);
  ```
</CodeGroup>

## Model lifecycle

When a model is scheduled to shut down, its `shutdown_date` is set. Plan to move to another model before that date; requests that name a model that no longer exists return `404`.

To detect upcoming shutdowns automatically, check `shutdown_date` on the models you use, for example at application startup or in a scheduled job.
