Model ID
Use with the Workers AI binding, the AI Gateway REST API, or the Unified API.
Calling the provider directly? Use the provider's model name instead, including with provider-native endpoints or the provider's own SDK. For example, Anthropic's name for anthropic/claude-opus-4.8 is claude-opus-4-8.
- Third-party
- Zero data retention
Beam-1.0-501B-A23B is Reflection AI's open-weights mixture-of-experts model with 501B total parameters and 23B active parameters, built for coding, reasoning, and agentic workloads.
| Model Info | |
|---|---|
| Context Window ↗ | 262,144 tokens |
| Terms and License | link ↗ |
| More information | link ↗ |
| Zero data retention | Yes |
| Request formats | Chat Completions |
| Pricing |
|
const response = await env.AI.run(
'reflection-ai/beam-1.0-501b-a23b',
{
messages: [{ role: 'user', content: 'Explain why the sky is blue in one sentence.' }],
max_completion_tokens: 256,
reasoning_effort: 'low',
},
)
console.log(response)curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/v1/chat/completions \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"model": "reflection-ai/beam-1.0-501b-a23b",
"messages": [
{
"role": "user",
"content": "Explain why the sky is blue in one sentence."
}
],
"max_completion_tokens": 256,
"reasoning_effort": "low"
}'The sky is blue because sunlight undergoes Rayleigh scattering in the atmosphere, which preferentially redirects shorter blue wavelengths toward your eyes.
{
"id": "chatcmpl-002d24bd-de9c-4bab-947d-47f77166eb5c",
"object": "chat.completion",
"created": 1792089654,
"model": "reflection-ai/beam-1.0-501b-a23b",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "The sky is blue because sunlight undergoes Rayleigh scattering in the atmosphere, which preferentially redirects shorter blue wavelengths toward your eyes.",
"refusal": null,
"reasoning_content": "The user asks: \"Explain why the sky is blue in one sentence.\" Straightforward. Need one sentence. Ensure accuracy: Rayleigh scattering scatters shorter blue wavelengths more. Provide concise. No safety issues."
},
"finish_reason": "stop",
"logprobs": null
}
],
"usage": {
"prompt_tokens": 506,
"completion_tokens": 79,
"total_tokens": 585,
"prompt_tokens_details": {
"cached_tokens": 448
},
"completion_tokens_details": {
"reasoning_tokens": 50
}
}
}Structured project status — Return a typed project status summary using structured output
const response = await env.AI.run(
'reflection-ai/beam-1.0-501b-a23b',
{
messages: [
{
role: 'user',
content:
'Summarize this project update: API integration is complete, security review is scheduled for Friday, and the mobile client is blocked on final design assets.',
},
],
max_completion_tokens: 512,
response_format: {
type: 'json_schema',
json_schema: {
name: 'project_status',
strict: true,
schema: {
type: 'object',
properties: {
overall_status: { type: 'string', enum: ['on_track', 'at_risk', 'blocked'] },
completed: { type: 'array', items: { type: 'string' } },
next_steps: { type: 'array', items: { type: 'string' } },
blockers: { type: 'array', items: { type: 'string' } },
},
required: ['overall_status', 'completed', 'next_steps', 'blockers'],
additionalProperties: false,
},
},
},
},
)
console.log(response)curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/v1/chat/completions \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"model": "reflection-ai/beam-1.0-501b-a23b",
"messages": [
{
"role": "user",
"content": "Summarize this project update: API integration is complete, security review is scheduled for Friday, and the mobile client is blocked on final design assets."
}
],
"max_completion_tokens": 512,
"response_format": {
"type": "json_schema",
"json_schema": {
"name": "project_status",
"strict": true,
"schema": {
"type": "object",
"properties": {
"overall_status": {
"type": "string",
"enum": [
"on_track",
"at_risk",
"blocked"
]
},
"completed": {
"type": "array",
"items": {
"type": "string"
}
},
"next_steps": {
"type": "array",
"items": {
"type": "string"
}
},
"blockers": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"overall_status",
"completed",
"next_steps",
"blockers"
],
"additionalProperties": false
}
}
}
}'{"overall_status": "on_track",
"completed": ["API integration"],
"next_steps": ["Security review scheduled for Friday"],
"blockers": ["Mobile client awaiting final design assets"]}{
"id": "chatcmpl-781353f2-706b-4d56-b771-c785968bbf97",
"object": "chat.completion",
"created": 1792089661,
"model": "reflection-ai/beam-1.0-501b-a23b",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "{\"overall_status\": \"on_track\",\n\"completed\": [\"API integration\"],\n\"next_steps\": [\"Security review scheduled for Friday\"],\n\"blockers\": [\"Mobile client awaiting final design assets\"]}",
"refusal": null,
"reasoning_content": "The user wants a summary of a project update. Straightforward. Just summarize."
},
"finish_reason": "stop",
"logprobs": null
}
],
"usage": {
"prompt_tokens": 527,
"completion_tokens": 64,
"total_tokens": 591,
"prompt_tokens_details": {
"cached_tokens": 512
},
"completion_tokens_details": {
"reasoning_tokens": 18
}
}
}Weather tool call — Choose a weather lookup function and supply its arguments
const response = await env.AI.run(
'reflection-ai/beam-1.0-501b-a23b',
{
messages: [{ role: 'user', content: 'What is the weather in Lisbon today?' }],
max_completion_tokens: 256,
tool_choice: 'required',
tools: [
{
type: 'function',
function: {
name: 'get_weather',
description: 'Look up the current weather for a city.',
parameters: {
type: 'object',
properties: {
city: { type: 'string' },
units: { type: 'string', enum: ['celsius', 'fahrenheit'] },
},
required: ['city', 'units'],
additionalProperties: false,
},
},
},
],
},
)
console.log(response)curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/v1/chat/completions \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"model": "reflection-ai/beam-1.0-501b-a23b",
"messages": [
{
"role": "user",
"content": "What is the weather in Lisbon today?"
}
],
"max_completion_tokens": 256,
"tool_choice": "required",
"tools": [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "Look up the current weather for a city.",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"units": {
"type": "string",
"enum": [
"celsius",
"fahrenheit"
]
}
},
"required": [
"city",
"units"
],
"additionalProperties": false
}
}
}
]
}'{
"id": "chatcmpl-fda9d6ad-dcb0-4b60-9e5a-4d78f406ecc1",
"object": "chat.completion",
"created": 1792089672,
"model": "reflection-ai/beam-1.0-501b-a23b",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": null,
"tool_calls": [
{
"id": "call-c105de7f-4e34-4ce9-bab9-ef2e6a89b645",
"type": "function",
"function": {
"name": "get_weather",
"arguments": "{\"city\": \"Lisbon\", \"units\": \"celsius\"}"
}
}
],
"refusal": null,
"reasoning_content": "The user is asking about the weather in Lisbon today. I have a tool to get weather. Let me call it with city Lisbon and units... the user didn't specify units. Celsius is reasonable default, but maybe I should pick. Let me use celsius as default. Actually, let me just call."
},
"finish_reason": "tool_calls",
"logprobs": null
}
],
"usage": {
"prompt_tokens": 544,
"completion_tokens": 92,
"total_tokens": 636,
"prompt_tokens_details": {
"cached_tokens": 512
},
"completion_tokens_details": {
"reasoning_tokens": 69
}
}
}Scheduling reasoning — Reason through a scheduling constraint with system guidance
const response = await env.AI.run(
'reflection-ai/beam-1.0-501b-a23b',
{
messages: [
{
role: 'system',
content: 'Answer concisely and show the scheduling logic in two bullet points.',
},
{
role: 'user',
content:
'Maya is available Monday and Wednesday. Theo is available Wednesday and Thursday. Priya is available Monday, Wednesday, and Friday. Which day should they schedule a 90-minute meeting, and why?',
},
{ role: 'user', content: 'The meeting must include all three attendees.' },
{ role: 'user', content: 'Please give the recommendation.' },
],
max_completion_tokens: 384,
reasoning_effort: 'medium',
},
)
console.log(response)curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/v1/chat/completions \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"model": "reflection-ai/beam-1.0-501b-a23b",
"messages": [
{
"role": "system",
"content": "Answer concisely and show the scheduling logic in two bullet points."
},
{
"role": "user",
"content": "Maya is available Monday and Wednesday. Theo is available Wednesday and Thursday. Priya is available Monday, Wednesday, and Friday. Which day should they schedule a 90-minute meeting, and why?"
},
{
"role": "user",
"content": "The meeting must include all three attendees."
},
{
"role": "user",
"content": "Please give the recommendation."
}
],
"max_completion_tokens": 384,
"reasoning_effort": "medium"
}'- All three must attend, so the meeting day must be in the intersection of Maya's (Mon, Wed), Theo's (Wed, Thu), and Priya's (Mon, Wed, Fri) calendars; only Wednesday appears for all three. - Therefore, schedule the 90-minute meeting on Wednesday, since it is the only day all attendees are available.
{
"id": "chatcmpl-26cd51e7-33f7-4048-93f0-69f51b1c66cc",
"object": "chat.completion",
"created": 1792089681,
"model": "reflection-ai/beam-1.0-501b-a23b",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "- All three must attend, so the meeting day must be in the intersection of Maya's (Mon, Wed), Theo's (Wed, Thu), and Priya's (Mon, Wed, Fri) calendars; only Wednesday appears for all three.\n- Therefore, schedule the 90-minute meeting on Wednesday, since it is the only day all attendees are available.",
"refusal": null,
"reasoning_content": "The user asks: Maya available Mon/Wed, Theo available Wed/Thu, Priya available Mon/Wed/Fri. Meeting must include all three. Need schedule 90-min meeting. Which day should schedule and why? Concise, two bullet points showing scheduling logic. Constraints: all three must attend. Intersection: Maya ∩ Theo = Wed; Priya ∩ {Wed} = Wed. So Wednesday is common day. Need 90-minute meeting—presumably available all day? No time specifics. So recommend Wednesday; only day all three available. Answer with two bullet points.\n\nNeed ensure not violate policy. Fine.\n\nLet's craft concise."
},
"finish_reason": "stop",
"logprobs": null
}
],
"usage": {
"prompt_tokens": 572,
"completion_tokens": 218,
"total_tokens": 790,
"prompt_tokens_details": {
"cached_tokens": 448
},
"completion_tokens_details": {
"reasoning_tokens": 138
}
}
}▶messages[]
arrayrequiredtemperature
numberminimum: 0maximum: 2max_tokens
numberexclusiveMinimum: 0max_completion_tokens
numberexclusiveMinimum: 0top_p
numberminimum: 0maximum: 1frequency_penalty
numberminimum: -2maximum: 2presence_penalty
numberminimum: -2maximum: 2stream
boolean▶stream_options{}
object▶tools[]
arraytool_choice
response_format
▶modalities[]
array▶audio{}
objectreasoning_effort
stringOptional reasoning control; availability and accepted values are model-dependent.id
stringobject
stringcreated
numbermodel
string▶choices[]
array▶usage{}
object