Meta Muse Glimmer
Muse Glimmer 30B is Meta's open-weight model released under Apache 2.0. It is tuned for long-running agent loops that make progress by calling tools. It is served over /v1/chat/completions.
| Model | Context | Input / Cache Read / Output ($/1M) |
|---|---|---|
meta/muse-glimmer-30b | 131,072 | 0.35 / 0.04 / 1.50 |
curl "$LLMTR_BASE_URL/v1/chat/completions" \ -H "Authorization: Bearer llmtr-your_key" \ -H "Content-Type: application/json" \ -d '{ "model": "meta/muse-glimmer-30b", "messages": [ { "role": "user", "content": "Find the bug in this function." } ], "max_tokens": 2048 }'Reasoning effort
Section titled “Reasoning effort”Muse Glimmer reasons before answering on every request. You tune that effort with the reasoning_effort field; seven values are valid: none, minimal, low, medium, high, xhigh, max.
reasoning_effort: "none" is accepted by this model but does not turn reasoning off. It is simply the lowest setting; the model still produces a reasoning trace at that level. Reasoning tokens are returned inside completion_tokens and billed at the output rate, so you pay for reasoning even when you send none. If you need a model that produces no reasoning at all, choose a non-reasoning model.
Effort can also be given as a suffix on the model id:
meta/muse-glimmer-30b -> defaultmeta/muse-glimmer-30b:none -> lowest setting (still reasons)meta/muse-glimmer-30b:minimal -> low effortmeta/muse-glimmer-30b:high -> high effortmeta/muse-glimmer-30b:max -> highest effortcurl "$LLMTR_BASE_URL/v1/chat/completions" \ -H "Authorization: Bearer llmtr-your_key" \ -H "Content-Type: application/json" \ -d '{ "model": "meta/muse-glimmer-30b", "messages": [{ "role": "user", "content": "What is 17 * 23?" }], "reasoning_effort": "low" }'Sending an invalid level rejects the request with 400, and the error message lists the supported levels. For the general behaviour of reasoning effort, see reasoning effort.
Using it together with max_tokens
Section titled “Using it together with max_tokens”Because reasoning tokens are counted inside completion_tokens, they also consume the max_tokens budget. When that budget is small, the reasoning trace eats all of it and the content comes back empty:
max_tokens | finish_reason | Returned content |
|---|---|---|
| 10 | length | empty |
| 50 | length | empty |
| 200 | stop | Ankara |
Do not set max_tokens low even when you expect a short answer; give this model at least 150-200. If you are migrating from a non-reasoning model and your max_tokens is something like 50, this is why the responses come back empty. reasoning_effort: "none" does not fully solve it, because a reasoning trace is still produced at that level.
Tool calling
Section titled “Tool calling”The model supports tool/function calling and accepts every tool_choice value: the default (auto), required, none, and a named function choice.
curl "$LLMTR_BASE_URL/v1/chat/completions" \ -H "Authorization: Bearer llmtr-your_key" \ -H "Content-Type: application/json" \ -d '{ "model": "meta/muse-glimmer-30b", "messages": [{ "role": "user", "content": "What is the weather in Istanbul?" }], "tools": [ { "type": "function", "function": { "name": "get_weather", "description": "Get the current weather for a city", "parameters": { "type": "object", "properties": { "city": { "type": "string" } }, "required": ["city"] } } } ], "tool_choice": "required" }'Responses that carry a tool call always report finish_reason as tool_calls.
Image and video input
Section titled “Image and video input”Alongside text the model accepts image and video input. Images can be sent as a base64 data URI or as a remote https URL.
curl "$LLMTR_BASE_URL/v1/chat/completions" \ -H "Authorization: Bearer llmtr-your_key" \ -H "Content-Type: application/json" \ -d '{ "model": "meta/muse-glimmer-30b", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "What is in this image?" }, { "type": "image_url", "image_url": { "url": "data:image/png;base64,iVBORw0KGgo..." } } ] } ] }'Video uses a video_url content part:
{ "type": "video_url", "video_url": { "url": "https://example.com/clip.mp4" }}This model does not accept audio input; requests containing input_audio are rejected with 400. PDF/document input is not supported either. For work that needs document reading, see Meta Muse Spark.
JSON and structured output
Section titled “JSON and structured output”The model supports both json_object and schema-conforming json_schema output.
curl "$LLMTR_BASE_URL/v1/chat/completions" \ -H "Authorization: Bearer llmtr-your_key" \ -H "Content-Type: application/json" \ -d '{ "model": "meta/muse-glimmer-30b", "messages": [{ "role": "user", "content": "Tell me about Ankara." }], "response_format": { "type": "json_schema", "json_schema": { "name": "city_info", "schema": { "type": "object", "properties": { "cityName": { "type": "string" }, "populationMillions": { "type": "number" } }, "required": ["cityName", "populationMillions"], "additionalProperties": false } } } }'Prompt cache
Section titled “Prompt cache”Repeating the same prompt prefix engages the cache, and those tokens are billed at $0.04 / 1M. The number of cached tokens is returned in prompt_tokens_details.cached_tokens. The cache is a discount, not a guarantee; the hit rate depends on prompt length and traffic.
Context window
Section titled “Context window”The context window is 131,072 tokens, and both the prompt and the output to be generated count against that ceiling. Requests that exceed it are rejected with 400.
Limits
Section titled “Limits”- Audio input is not supported.
- PDF/document input is not supported.
- Reasoning cannot be disabled;
noneis only the lowest setting. - The model is not hosted in Turkey; requests are processed on third-party infrastructure abroad.