Integration guides · 2026-08-28

muse-spark-1.2-contributor: LLMTR model ID and endpoint

Configure the correct LLMTR model ID and Chat Completions endpoint for Muse Spark Contributor, with a Python request that reads credentials from the environment.

LLMTR editorial diagram for muse-spark-1.2-contributor: LLMTR model ID and endpoint, showing three labeled concepts in a sequence or comparison.

Which model ID should LLMTR receive?

For muse-spark-1.2-contributor, set the LLMTR request’s model field to meta/muse-spark-1.2-contributor and call POST /v1/chat/completions. The model ID belongs in the JSON body, not in the URL path. Using the full identifier explicitly selects both the provider and the Contributor tier.

Meta’s August 5, 2026 announcement describes Muse Spark 1.2 as a coding-focused update available through Meta Model API. LLMTR access uses your LLMTR address and credentials. Installing the Muse Code terminal client is not a prerequisite for this HTTP integration; the client application and the model’s API identifier are separate things.

Read the Contributor data warning first

According to LLMTR’s Contributor model notice, prompts and completions may be used to train Meta models. Do not submit confidential, personal or customer data. The example below contains only a generic software-testing question; do not replace it with a real support record, production log or private repository content.

A successful connection does not establish that sharing the data is appropriate. Review the entire input before testing, including system messages, conversation history and any tool results added later. Stop if the task is incompatible with this training policy, and separately review the current data terms of the service you intend to use.

Separate the address, credentials and model field

Here, LLMTR_BASE_URL is a complete API base URL that already contains /v1. The code appends only /chat/completions. This avoids duplicating the version path or accidentally calling the website interface. Obtain the documented base URL for your LLMTR environment.

LLMTR_API_KEY must contain an LLMTR-issued key. Direct Meta access has a separate endpoint and credential configuration. Do not send your LLMTR key to a provider endpoint or blindly replace the full LLMTR identifier with the shorter name from a provider example.

Connection contract for the first request
FieldValue or ruleCheck
modelmeta/muse-spark-1.2-contributorFull identifier in the body
LLMTR_BASE_URLComplete LLMTR API base URLInclude /v1 only once
HTTP method and pathPOST /v1/chat/completionsNot a Responses request
AuthorizationBearer and LLMTR_API_KEYRead credentials from the environment
messagesArray containing role and contentStart with text only

Prepare one text request in Python

This example uses Python’s standard library, without an additional SDK. Set both environment variables before launching it. Running the code sends a real request that may incur charges; no live call was made for this article. The 2048 value is an example output budget, not an advertised model maximum.

The response stays in memory, but its text is not printed. Console output contains only the finish reason, whether content exists and usage metadata. The 120-second client timeout is an application waiting decision, not a latency guarantee.

Contributor Chat Completions request using environment variables

import json
import os
from urllib import error, request

base_url = os.environ["LLMTR_BASE_URL"].rstrip("/")
payload = {
    "model": "meta/muse-spark-1.2-contributor",
    "messages": [{
        "role": "user",
        "content": "Why does an empty list need its own test case? Explain in three sentences."
    }],
    "reasoning_effort": "minimal",
    "max_tokens": 2048,
    "stream": False
}
req = request.Request(
    f"{base_url}/chat/completions",
    data=json.dumps(payload).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {os.environ['LLMTR_API_KEY']}",
        "Content-Type": "application/json"
    },
    method="POST"
)
try:
    with request.urlopen(req, timeout=120) as response:
        result = json.load(response)
except error.HTTPError as exc:
    raise RuntimeError(f"HTTP {exc.code}; check request and access settings.") from None

choice = result["choices"][0]
content = choice["message"].get("content") or ""
print(json.dumps({
    "finish_reason": choice.get("finish_reason"),
    "has_content": bool(content),
    "usage": result.get("usage", {})
}))

Check the API contract your client expects

Changing the model field is insufficient if your client only sends Responses requests. This LLMTR row has a Chat Completions binding; do not assume support through /v1/responses. Put text in the content field of a user message within messages. Leave tools, files and parameters copied from other models out of the first request.

For this family, the gateway accepts minimal, low, medium, high and xhigh as reasoning_effort values; none is unsupported. When adding tools, tool_choice can only be auto or omitted. Omit tools when you do not want tool calls; a client that automatically adds tool_choice: none can make the request invalid.

Evaluate content and the finish reason together

HTTP success does not necessarily mean a usable answer. Inspect the message in choices alongside finish_reason. A value of length can indicate that the output budget was exhausted; reasoning may leave the final answer incomplete. Assess task size and output allowance instead of simply changing the model name.

Do not log prompts, completions or keys in production. Diagnose issues using status codes, safe error types and usage metrics. On August 28, 2026, Meta’s model and pricing/rate-limit pages required login. This guide therefore provides no current token tariff, fixed request quota or speed guarantee; verify capacity separately.

Frequently asked questions

Why include the meta/ prefix?

LLMTR identifiers combine the provider and model slug. The full identifier keeps the selected provider and tier explicit in application configuration, instead of relying on a display name.

Should I append /v1 to my base URL?

This example assumes LLMTR_BASE_URL already contains the API version path. It appends only /chat/completions. Inspect the resulting address and ensure it does not contain /v1/v1.

Does Contributor mean free access?

No. Contributor identifies a data-policy and pricing tier. The name does not provide free or unlimited access; check the applicable charges and your account’s access before sending requests.

Related posts