Meta Muse Spark
Muse Spark is Meta's reasoning model tuned for coding and agent workflows. All three ids serve the same family, with a 1,048,576-token context window and the same capability set; they differ by checkpoint and tier. They are called through /v1/chat/completions.
| Model | Context | Input / Cache Read / Output ($/1M) | Tier |
|---|---|---|---|
meta/muse-spark-1.2 | 1M | 1.25 / 0.15 / 4.25 | Standard |
meta/muse-spark-1.1 | 1M | 1.25 / 0.15 / 4.25 | Standard |
meta/muse-spark-1.2-contributor | 1M | 0.10 / 0.002 / 0.20 | Contributor |
muse-spark-1.2 is the current checkpoint and the default choice for new work. muse-spark-1.1 is the earlier checkpoint; it costs the same and suits validated flows that want to pin their behaviour.
curl "$LLMTR_BASE_URL/v1/chat/completions" \ -H "Authorization: Bearer llmtr-your_key" \ -H "Content-Type: application/json" \ -d '{ "model": "meta/muse-spark-1.2", "messages": [ { "role": "user", "content": "Find the bug in this function." } ], "max_tokens": 2048 }'The Contributor tier and its data policy
Section titled “The Contributor tier and its data policy”meta/muse-spark-1.2-contributor is the same checkpoint as muse-spark-1.2. It costs 12x less on input and 21x less on output. Here is what pays for that:
The prompts you send to this model and the responses you receive are used by Meta to train future models.
Do not send confidential, personal, or customer data to this model; meta/muse-spark-1.2 on the standard tier returns the same answers and is not used for training. The Contributor tier is for work whose data is not sensitive, such as prototypes, load tests, and integration trials.
This tier also carries a low provider-side rate limit that is shared across LLMTR users, so it is not suited to high-volume production traffic.
Reasoning effort
Section titled “Reasoning effort”Muse Spark reasons before answering on every request, and reasoning cannot be turned off. You tune the effort with the reasoning_effort field across five levels: minimal, low, medium, high, xhigh.
reasoning_effort: "none" is not supported on this model and is rejected with 400. If you need reasoning fully off, choose a non-reasoning model.
Effort can also be supplied as a suffix on the model id:
meta/muse-spark-1.2 -> defaultmeta/muse-spark-1.2:minimal -> lowest effortmeta/muse-spark-1.2:high -> high effortmeta/muse-spark-1.2:xhigh -> highest effortcurl "$LLMTR_BASE_URL/v1/chat/completions" \ -H "Authorization: Bearer llmtr-your_key" \ -H "Content-Type: application/json" \ -d '{ "model": "meta/muse-spark-1.2", "messages": [{ "role": "user", "content": "What is 17 * 23?" }], "reasoning_effort": "minimal", "max_tokens": 512 }'Reasoning tokens are returned inside completion_tokens and billed as output. The practical consequence: if max_tokens is set too low, the budget can be spent during reasoning, leaving content empty and finish_reason set to length. Keep max_tokens generous even for short answers. See Reasoning Effort for details.
Multimodal input
Section titled “Multimodal input”Beyond text, Muse Spark accepts images, video, and PDFs. Audio input is not supported; requests containing audio are rejected with 400.
Images can be supplied either as a base64 data URL 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-spark-1.2", "messages": [{ "role": "user", "content": [ { "type": "text", "text": "What is in this screenshot?" }, { "type": "image_url", "image_url": { "url": "data:image/png;base64,iVBORw0KG..." } } ] }], "max_tokens": 1024 }'When using a remote URL, make sure the origin does not refuse the request: the provider downloads the image itself, and a failed download returns 400 with a failed to download media message. Prefer base64 for sources with restricted access.
Use the video_url content part for video and the file content part for PDFs.
Tool calling
Section titled “Tool calling”Muse Spark supports tool/function calling; you supply the tools array in standard OpenAI format and the model returns tool_calls when it needs one.
One important constraint: this model accepts only tool_choice: "auto". "required", "none", and named function choices are not supported; LLMTR rejects those requests with 400 without forwarding them to the provider.
- To let the model decide whether to call a tool, omit
tool_choiceentirely. - To prevent a tool call on a given turn, omit the
toolsarray from that request.
curl "$LLMTR_BASE_URL/v1/chat/completions" \ -H "Authorization: Bearer llmtr-your_key" \ -H "Content-Type: application/json" \ -d '{ "model": "meta/muse-spark-1.2", "messages": [{ "role": "user", "content": "What is the weather in Istanbul?" }], "tools": [{ "type": "function", "function": { "name": "get_weather", "description": "Return current weather for the given location.", "parameters": { "type": "object", "properties": { "location": { "type": "string" } }, "required": ["location"] } } }] }'See Tool Calling for the general flow.
Structured output
Section titled “Structured output”Muse Spark produces both JSON objects via response_format: { "type": "json_object" } and schema-conforming structured output via json_schema. The schema is genuinely enforced; the returned object carries the fields you declared.
Prompt cache
Section titled “Prompt cache”When the same prefix is sent again, the provider may apply a prompt cache, and cached tokens are reported in usage.prompt_tokens_details.cached_tokens. Those tokens are billed at the cache read rate instead of the full input rate.
Cache hits are not guaranteed: even identical back-to-back requests may miss on some calls. Treat the cache as a discount when planning cost, not as a fixed saving.
Context window
Section titled “Context window”All three models offer a 1,048,576-token context window. Input tokens and max_tokens share one budget, so do not set max_tokens to the full window. Requests that exceed the combined limit return 400.