--- summary: "Meta setup, authentication, and Muse Spark model selection" title: "Meta" read_when: - You want to use Meta with OpenClaw - You need the MODEL_API_KEY env var or CLI auth choice --- The **Meta API** uses the OpenAI-compatible **Responses API** (`POST /v1/responses`) for the Muse Spark reasoning models. OpenClaw provides Meta as an official external plugin. | Property | Value | | -------------------------- | ---------------------------------- | | Provider id | `meta` | | Plugin | `@openclaw/meta-provider` | | Auth env var | `MODEL_API_KEY` | | Onboarding flag | `--auth-choice meta-api-key` | | Direct CLI flag | `--meta-api-key ` | | API | Responses API (`openai-responses`) | | Base URL | `https://api.meta.ai/v1` | | Default model | `meta/muse-spark-1.1` | | OpenClaw reasoning default | `high` (`reasoning.effort`) | ## Getting started ```bash openclaw plugins install @openclaw/meta-provider openclaw gateway restart ``` ```bash Onboarding openclaw onboard --auth-choice meta-api-key ``` ```bash Direct flag openclaw onboard --non-interactive --accept-risk --skip-health \ --auth-choice meta-api-key \ --meta-api-key "$MODEL_API_KEY" ``` ```bash Env only export MODEL_API_KEY= ``` ```bash openclaw models list --provider meta ``` Lists the static Muse Spark catalog entries. If `MODEL_API_KEY` is unresolved, `openclaw models status --json` reports the missing credential under `auth.unusableProfiles`. ## Non-interactive setup ```bash openclaw onboard --non-interactive --accept-risk --skip-health \ --mode local \ --auth-choice meta-api-key \ --meta-api-key "$MODEL_API_KEY" ``` ## Built-in catalog Prices and data-use terms come from Meta's [pricing and rate limits](https://dev.meta.ai/docs/pricing-rate-limits/) documentation. | Model ref | Name | OpenClaw input | Reasoning | Context window | Input / cached input / output per 1M tokens | | --------------------------------- | -------------------------- | -------------- | --------- | -------------- | ------------------------------------------- | | `meta/muse-spark-1.1` | Muse Spark 1.1 | text, image | yes | 1,048,576 | $1.25 / $0.15 / $4.25 | | `meta/muse-spark-1.2` | Muse Spark 1.2 | text, image | yes | 1,048,576 | $1.25 / $0.15 / $4.25 | | `meta/muse-spark-1.2-contributor` | Muse Spark 1.2 Contributor | text, image | yes | 1,048,576 | $0.10 / $0.002 / $0.20 | Meta's [pricing documentation](https://dev.meta.ai/docs/pricing-rate-limits/) and [Terms of Service](https://dev.meta.ai/legal/terms-of-service) distinguish Standard Services from Contributor/Discounted Services: - Standard Services are the default. Meta says prompts and completions submitted to Standard Services are not used to train Meta models. - By using Contributor/Discounted Services, you permit Meta to use Content submitted to and generated by those services as described in the Terms. Under the Terms, use of Discounted Services acknowledges that permission. You must not submit sensitive, confidential, or personal information to the Discounted Services. Meta's [Geographic Use Policy](https://dev.meta.ai/legal/geographic-use-policy) governs availability. It limits API access in some jurisdictions and adds end-user deployment restrictions for products built with the Contributor/Discounted model; those additional restrictions do not apply to your own use or products built with Standard Services. Capabilities: - Text and image input through OpenClaw - Tool calling and streaming - Reasoning effort: `minimal`, `low`, `medium`, `high`, `xhigh` (OpenClaw default: `high`) - Stateless encrypted reasoning replay (`store: false`, `include: ["reasoning.encrypted_content"]`) Meta's [model catalog](https://dev.meta.ai/docs/models) lists text, image, video, audio, and PDF input for these models. OpenClaw's model catalog directly represents text and image input only; the other upstream modalities are not model-manifest input values. OpenClaw explicitly selects `high` when no thinking level is configured. This is an OpenClaw default, not Meta's omitted-parameter behavior: Meta's [reasoning documentation](https://dev.meta.ai/docs/reasoning/) says that when `reasoning.effort` is omitted, the model reasons at a model-determined level. Muse Spark does not accept `reasoning.effort: "none"`. OpenClaw maps `--thinking off` to `minimal` for this provider. ## Manual config ```json5 { env: { vars: { MODEL_API_KEY: "" } }, agents: { defaults: { model: { primary: "meta/muse-spark-1.1" }, models: { "meta/muse-spark-1.1": { alias: "Muse Spark 1.1" }, }, }, }, } ``` If the Gateway runs as a daemon (launchd, systemd, Docker), make sure `MODEL_API_KEY` is available to that process — for example in `~/.openclaw/.env` or through `env.shellEnv`. A key exported only in an interactive shell will not help a managed service unless the env is imported separately. ## Smoke test ```bash export MODEL_API_KEY= pnpm test:live -- extensions/meta/meta.live.test.ts ``` The live suite exercises enabled Meta cases against `POST /v1/responses`. ## Related Choosing providers, model refs, and failover behavior. Reasoning effort levels for Muse Spark. Agent defaults and model configuration.