Moondream: Moondream 3.1 vs Reflection: Beam 1.0 501B A23B
A side-by-side comparison of Moondream: Moondream 3.1 ($1.05 / 1M tokens) and Reflection: Beam 1.0 501B A23B ($1.05 / 1M tokens) using current USD prices and capabilities from the api14 catalog. Both run through the same OpenAI-compatible API.
Specifications
| Moondream: Moondream 3.1 | Reflection: Beam 1.0 501B A23B | |
|---|---|---|
| Provider | Moondream | Reflection |
| Input | $1.05 / 1M tokens | $1.05 / 1M tokens |
| Output | $8.75 / 1M tokens | $3.50 / 1M tokens |
| Cache read | - | $0.14 / 1M tokens |
| Context window | 32,000 | 1,048,576 |
| Max output | 4,096 | 943,718 |
| Input | text, image | text |
| Output | text | text |
| Tool calling | ||
| Structured output | ||
| Reasoning control | ||
| Added | Oct 15, 2026 | Oct 16, 2026 |
Key differences
- Both have about the same input price.
- Reflection: Beam 1.0 501B A23B is 60% cheaper on output tokens.
- Reflection: Beam 1.0 501B A23B reads 32.8× more context (1,048,576 tokens).
- Only Reflection: Beam 1.0 501B A23B supports tool calling.
- Only Reflection: Beam 1.0 501B A23B supports structured JSON output.
- A request with 1,000 input and 500 output tokens costs $0.00542 with Moondream: Moondream 3.1 and $0.00280 with Reflection: Beam 1.0 501B A23B.
In depth
Moondream: Moondream 3.1 is made by Moondream, and Reflection: Beam 1.0 501B A23B is made by Reflection. Both are listed on api14 under the text category, meaning both are general purpose language models rather than specialised single purpose systems. The naming tells you something about their shape: Moondream 3.1 is a 9B model with an A2B active parameter scheme, while Beam 1.0 is a 501B model with A23B active parameters. In practice that means Moondream is the smaller, lighter option and Beam is the much larger one, which is worth keeping in mind when you think about latency and throughput on your side.
The clearest functional split is in what each model accepts and what it can do. Moondream 3.1 takes both text and image input and returns text, so it is the only one of the two that can look at an image at all. Beam 1.0 takes text only. On context, Beam is the bigger of the two by a wide margin: Moondream 3.1 offers 32,000 tokens, while Beam 1.0 offers 1,048,576 tokens, so if you need to pass in very long documents or long conversation histories, Beam is the one that will hold them. Beam also exposes a much wider set of request parameters, including tools, tool choice, structured outputs, response format, logprobs, top logprobs, logit bias, seed, stop, frequency and presence penalties, repetition penalty, min p, top k, and reasoning effort. Moondream's supported parameters are narrower: include reasoning, max completion tokens, max tokens, reasoning, temperature, and top p. So tool calling and structured output are Beam only, and reasoning support is present on both, with no meaningful difference recorded between them on that front.
For picking between them, start with the input type. If your task involves an image, a screenshot, a diagram, or any visual input alongside text, Moondream 3.1 is the only option here, and that decides it. If your task is pure text, the next question is length and structure. Very long inputs, or anything that needs to fit inside a single call rather than being chunked, point to Beam 1.0 because of its much larger context window. If you need the model to call tools, return structured output in a specific format, or give you logprobs and fine grained sampling controls, Beam is again the one that supports those parameters. Moondream 3.1 is the better fit when you want a smaller model for straightforward text generation, or when you need vision, and you are happy to work within a 32,000 token context and a smaller parameter surface.
Calling either model through api14 works the same way, because the API is OpenAI compatible. You point your existing OpenAI client at the api14 base URL, send your usual chat completions request, and set the model field to the id you want. To use Moondream, set the model id to "moondream/moondream3.1-9b-a2b". To use Beam, set it to "reflection/beam-1.0-501b-a23b". Everything else in the request body stays the same shape, so switching between the two is a one line change to the model id, plus whatever parameters you rely on that only one of them supports. If you use tools or structured outputs, remember those belong to Beam, so a request that depends on them will not carry over to Moondream unchanged.
Switch with one string
Both models use the same endpoint and request shape. Change the model value from "moondream/moondream3.1-9b-a2b" to "reflection/beam-1.0-501b-a23b" and prompts, streaming and tools keep working.
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api14.com/api/v1",
apiKey: process.env.API14_API_KEY,
});
const result = await client.chat.completions.create({
"model": "reflection/beam-1.0-501b-a23b",
"messages": [
{
"role": "user",
"content": "Explain vector databases in two sentences."
}
]
});
console.log(result.choices[0].message.content);
More comparisons
- LiquidAI: LFM3-1.7B vs Ricursive: Ripple 65B Preview
- LiquidAI: LFM3-1.7B vs Crouton Alpha
- LiquidAI: LFM3-1.7B vs Tencent: Hy4
- LiquidAI: LFM3-1.7B vs Z.ai: GLM 5.3 FlashX Legal
- Ricursive: Ripple 65B Preview vs Crouton Alpha
- Ricursive: Ripple 65B Preview vs Tencent: Hy4
- Ricursive: Ripple 65B Preview vs Z.ai: GLM 5.3 FlashX Legal
- Crouton Alpha vs Tencent: Hy4