Canonical docs: https://apidoc.cometapi.com/integrations/openclaw
Use this guide to configure OpenClaw with CometAPI by setting the base URL, API key, and model or provider options. Use CometAPI as the model provider for OpenClaw — 500+ models in one API.
- Node.js ≥ 22 — recommended via nvm
- A CometAPI account with an active API key — get yours here
Log in to the CometAPI console. Click Add API Key and copy your CometAPI API key.
Recommended — use the official installer:
curl -fsSL https://openclaw.ai/install.sh | bashOr install via npm:
npm install -g openclaw@latestThen run the setup wizard once:
openclaw onboard --install-daemonDuring onboarding, choose Skip in the Model/Auth step if you want to configure CometAPI manually. After onboarding, confirm the gateway is running:
openclaw gateway status
openclaw dashboardWrite your key to ~/.openclaw/.env so it is available to the daemon without being hardcoded in config files:
printf 'COMETAPI_KEY=%s\n' "$COMETAPI_KEY" >> ~/.openclaw/.env
chmod 600 ~/.openclaw/.envNote If you already inject
COMETAPI_KEYthrough your shell, service manager, or a secrets workflow, skip this step — the config below uses${COMETAPI_KEY}regardless of how the variable is set.
CometAPI supports four API formats. Add one or more provider blocks to ~/.openclaw/openclaw.json:
| Provider | API Format | Endpoint called | Base URL |
|---|---|---|---|
cometapi-openai |
openai-completions |
POST /v1/chat/completions |
https://api.cometapi.com/v1 |
cometapi-openai-responses |
openai-responses |
POST /v1/responses |
https://api.cometapi.com/v1 |
cometapi-claude |
anthropic-messages |
POST /messages |
https://api.cometapi.com |
cometapi-google |
google-generative-ai |
POST /v1beta/... |
https://api.cometapi.com/v1beta |
{
"agents": {
"defaults": {
"model": {
"primary": "cometapi-claude/your-claude-model-id"
}
}
},
"models": {
"mode": "merge",
"providers": {
"cometapi-openai": {
"baseUrl": "https://api.cometapi.com/v1",
"apiKey": "${COMETAPI_KEY}",
"api": "openai-completions",
"models": [{ "id": "your-chat-model-id", "name": "OpenAI-compatible text model" }]
},
"cometapi-openai-responses": {
"baseUrl": "https://api.cometapi.com/v1",
"apiKey": "${COMETAPI_KEY}",
"api": "openai-responses",
"models": [{ "id": "your-responses-model-id", "name": "Responses API model" }]
},
"cometapi-claude": {
"baseUrl": "https://api.cometapi.com",
"apiKey": "${COMETAPI_KEY}",
"api": "anthropic-messages",
"models": [{ "id": "your-claude-model-id", "name": "Claude family model" }]
},
"cometapi-google": {
"baseUrl": "https://api.cometapi.com/v1beta",
"apiKey": "${COMETAPI_KEY}",
"api": "google-generative-ai",
"models": [{ "id": "your-gemini-model-id", "name": "Gemini family model" }]
}
}
}
}You can keep only the providers you need, or keep all four to route between formats using provider/model references.
Replace each your-...-model-id placeholder with a current model ID from the CometAPI Models page that matches the provider block.
Note Use
cometapi-openai-responses(api: "openai-responses") for models that require the OpenAI Responses API. Usecometapi-openai(api: "openai-completions") for models on the classic Chat Completions path. Both share the samebaseUrl(https://api.cometapi.com/v1); the only difference is which downstream endpoint OpenClaw calls.
Note The
auth-profiles.jsonfile is not required for this setup. Provider keys are resolved frommodels.providers.*.apiKeyvia the${COMETAPI_KEY}env var.auth-profiles.jsonis only needed if you want per-profile credential rotation across multiple keys.
Restart the gateway after adding .env or changing provider config:
openclaw gateway restartThen run diagnostics:
openclaw models status
openclaw models list --provider cometapi-claude
openclaw doctorA successful setup looks like:
openclaw models statusresolves the primary model tocometapi-claude/your-claude-model-idwith no missing-auth warnings for CometAPI providersopenclaw models list --provider cometapi-claudelists your configured modelsopenclaw doctorreports no config or auth errors for CometAPI providers
# Set the default model in config
openclaw models set cometapi-claude/your-claude-model-id
# Switch for the current chat session
/model cometapi-openai/your-chat-model-id
/model cometapi-openai-responses/your-responses-model-id
/model cometapi-claude/your-claude-model-id
/model cometapi-google/your-gemini-model-idIf you are fixing a broken older setup, stop the gateway, remove ~/.openclaw, then rerun onboarding before applying the CometAPI config:
openclaw gateway stop
rm -rf ~/.openclaw
openclaw onboard --install-daemonThis removes all local config, sessions, logs, auth state, and workspaces. Then follow Steps 3–5 again.


