# How to connect ElevenLabs to OpenClaw (one API key, no MCP server)

> Connect ElevenLabs to OpenClaw with ClawLink in one click — paste your ElevenLabs API key once, then 155 tools your AI agent can call from chat. No MCP server, no config files.

Web version: https://claw-link.dev/openclaw/elevenlabs

The usual route to ElevenLabs access for OpenClaw is an MCP server you configure and keep running, plus your own OAuth app or API keys. ClawLink gives OpenClaw a more practical ElevenLabs setup: install one ClawHub skill, connect ElevenLabs in the browser, and OpenClaw can call real ElevenLabs actions from any chat surface with no auth, token refresh, or tool wiring to build yourself.

**Start here:** install the ClawLink plugin (`openclaw plugins install clawhub:clawlink-plugin`), pair it in the browser, then connect the app in the ClawLink dashboard. The interactive install prompt is on the web version of this page: https://claw-link.dev/openclaw/elevenlabs

## Setup

It takes three steps to connect OpenClaw to ElevenLabs.

1. **Install ClawLink** — add the plugin to OpenClaw once.
2. **Connect ElevenLabs** — one-click OAuth in the ClawLink dashboard.
3. **Use it from chat** — ask OpenClaw in plain English.

**Alternative for any agent (no plugin needed):** if the OpenClaw plugin route isn't available or doesn't work, any AI agent with shell access can use the ClawLink CLI instead:

```bash
npx -y @useclawlink/cli login          # sign in via browser — no API key to paste
npx -y @useclawlink/cli connect elevenlabs  # connect ElevenLabs (browser OAuth)
npx -y @useclawlink/cli actions elevenlabs  # list available actions
npx -y @useclawlink/cli run elevenlabs <action> --input '<json>'  # execute (add --confirm for writes)
```

### Install by command

The setup prompt above does all of this in one paste. By hand, it is one install command plus a browser approval:

```bash
openclaw plugins install clawhub:clawlink-plugin
```

Then ask OpenClaw to set up ClawLink. It starts browser pairing and prints an approval link — open it, approve the device, return to the chat, and say `done`. Finally, connect ElevenLabs in the [ClawLink dashboard](https://claw-link.dev/dashboard) — paste your ElevenLabs API key once.

Verify the connection by asking OpenClaw:

> Read the file, then call elevenlabs_get_voices and pick a voice_id, then call elevenlabs_text_to_speech with that voice_id and the file's text (max 10,000 characters). Return the audio.

### Using a different agent?

The OpenClaw plugin is one client of ClawLink's MCP server. Claude Code, Cursor, Codex, or any agent that can run a shell command pairs with the same ClawLink account through the CLI:

```bash
npx -y @useclawlink/cli login
```

`login` opens the same browser approval and stores a credential locally. Once ElevenLabs is connected in the dashboard, that agent calls the same 155 ElevenLabs tools over MCP. Full setup for MCP clients and shell agents: [connect apps to any AI agent](https://claw-link.dev/learn/connect-apps-to-any-ai-agent).

## ElevenLabs MCP for OpenClaw

Looking for a ElevenLabs MCP server for OpenClaw? ClawLink connects ElevenLabs to OpenClaw and exposes 155 ElevenLabs tools your agent can call over [MCP](https://claw-link.dev/learn/what-is-an-mcp-server), with [hosted auth](https://claw-link.dev/learn/oauth-for-ai-agents) and nothing to run or maintain yourself. Using Hermes instead? The [Hermes ElevenLabs integration](https://claw-link.dev/hermes/elevenlabs) works the same way.

One thing you will need either way: an ElevenLabs API key. ElevenLabs authenticates API access with keys (the `xi-api-key` header), not OAuth — even their own MCP server takes `ELEVENLABS_API_KEY`. Create one at elevenlabs.io/app/settings/api-keys (it starts with `sk_` and is shown once), paste it into ClawLink, and OpenClaw calls the 155 tools on this page from any chat surface. The key stays out of your env files and out of any server you run.

## What the OpenClaw ElevenLabs integration can do

155 ElevenLabs tools are ready for OpenClaw once the account is connected. The 30 below are the ones people reach for most; your agent can call all 155.

### 30 of 155 ElevenLabs tools for OpenClaw

| Tool | What it does |
|---|---|
| **Create conversational agent** `elevenlabs_create_conversational_agent` | Create a conversational AI agent |
| **Download history items** `elevenlabs_download_history_items` | Download audio from history |
| **Generate a random voice** `elevenlabs_generate_a_random_voice` | Generate a unique random voice |
| **Get convai agents summaries** `elevenlabs_get_convai_agents_summaries` | List conversational AI agents |
| **Get dubbing project metadata** `elevenlabs_get_dubbing_project_metadata` | Get dubbing project metadata |
| **Get history item by ID** `elevenlabs_get_history_item_by_id` | Get a history audio item |
| **Get models** `elevenlabs_get_models` | List available models |
| **Get project by ID** `elevenlabs_get_project_by_id` | Get a specific project |
| **Get projects** `elevenlabs_get_projects` | List ElevenLabs projects |
| **Get user subscription info** `elevenlabs_get_user_subscription_info` | Get subscription usage and limits |
| **Get voice** `elevenlabs_get_voice` | Get details for a specific voice |
| **Get voices** `elevenlabs_get_voices` | List available ElevenLabs voices |
| **List dubs** `elevenlabs_list_dubs` | List dubbing projects |
| **Speech to speech** `elevenlabs_speech_to_speech` | Transform audio from one voice to another |
| **Text to speech** `elevenlabs_text_to_speech` | Convert text to speech using ElevenLabs voices |
| **Calculate convai agent llm usage** `elevenlabs_calculate_convai_agent_llm_usage` | Calculate expected number of LLM tokens needed for a conversational AI agent |
| **Calculate convai llm usage** `elevenlabs_calculate_convai_llm_usage` | Calculate expected LLM usage costs for conversational AI agents |
| **Create music plan** `elevenlabs_create_music_plan` | Generate a music composition plan from a text prompt using ElevenLabs Music API |
| **Create similar voices** `elevenlabs_create_similar_voices` | Returns a list of shared voices similar to the provided audio sample |
| **Get a profile page** `elevenlabs_get_a_profile_page` | Retrieves the profile information for the authenticated ElevenLabs user (identified by API key) |
| **Get agent details** `elevenlabs_get_agent_details` | Retrieve available Conversational AI agents and outbound-capable Twilio phone numbers |
| **Get agent link** `elevenlabs_get_agent_link` | Get the current shareable link for a Conversational AI agent |
| **Get audio from history item** `elevenlabs_get_audio_from_history_item` | Retrieves the audio content for a specific history item from ElevenLabs, using a |
| **Get audio from sample** `elevenlabs_get_audio_from_sample` | Retrieves the audio for a given `sample_id` that must belong to the specified `voice_id` |
| **Get audio native settings** `elevenlabs_get_audio_native_settings` | Retrieve player settings for a specific Audio Native project |
| **Get chapter by ID** `elevenlabs_get_chapter_by_id` | Fetches comprehensive details for a specific chapter within a given project, including its |
| **Get chapter snapshots** `elevenlabs_get_chapter_snapshots` | Retrieves all saved version snapshots for a specific chapter within a given project, enabling |
| **Get chapters** `elevenlabs_get_chapters` | Retrieves a list of all chapters, their details, and conversion status for a project, useful |
| **Get convai agent** `elevenlabs_get_convai_agent` | Retrieve the complete configuration for a specific Conversational AI agent by ID |
| **Get convai agent knowledge base size** `elevenlabs_get_convai_agent_knowledge_base_size` | Retrieve the number of pages in a conversational AI agent's knowledge base |

## Example prompts

**Turn a file into speech**

> Read the file, then call elevenlabs_get_voices and pick a voice_id, then call elevenlabs_text_to_speech with that voice_id and the file's text (max 10,000 characters). Return the audio.

**Check plan and credit usage**

> Call elevenlabs_get_user_subscription_info and tell me the current plan, character/credit usage, and the next reset date. If a paid feature like instant voice cloning is missing, say so.

**Add a pronunciation dictionary**

> Call elevenlabs_add_a_pronunciation_dictionary with the .pls lexicon file I attached, a name, and workspace access. If the key lacks the pronunciation_dictionaries_write permission, tell me exactly which permission is missing.

**Create a conversational agent**

> Create a conversational AI agent in ElevenLabs with elevenlabs_create_conversational_agent. The conversation_config argument is required — ask me for the agent's prompt and LLM choice before calling, and confirm the rest of the config before you finish.

## What to tell the agent when it calls ElevenLabs

Verified against the live ElevenLabs tool schemas (2026-08-02) and real call history on the ClawLink runtime. These are the traps that actually show up in production calls:

- `elevenlabs_text_to_speech` requires `voice_id` and `text`. `voice_id` is the 20-character id from `elevenlabs_get_voices`, never the voice name — passing "Rachel" fails with `voice_not_found`. `model_id` defaults to `eleven_monolingual_v1`; `eleven_turbo_v2_5` or a v3 model is the low-latency choice. `output_format` defaults to `mp3_44100_128`. Text is capped at 10,000 characters (30,000 on Flash/Turbo v2 models). Models are gated by plan: if the default model fails with a plan or model-not-found error, call `elevenlabs_get_user_subscription_info` first and pick a model the account's plan actually serves.
- Call `elevenlabs_get_voices` first when a speech request fails: it returns real `voice_id` values and confirms the key can read the voice library at all.
- `elevenlabs_add_a_pronunciation_dictionary` takes a lexicon file object (.pls XML). It fails with a 400 `invalid_parameters` when the file is malformed, and with a permission error when the key lacks `pronunciation_dictionaries_write`.
- `elevenlabs_create_conversational_agent` requires the `conversation_config` object (agent prompt, LLM, and language settings) — there is no valid call without it.
- Tool names are literal: there is no `elevenlabs_list_voices` or `elevenlabs_list_models` — the tools are `elevenlabs_get_voices` and `elevenlabs_get_models`. Agents that guess `list_*` get a "tool not found" error.
- Audio and subscription reads (`elevenlabs_get_user_subscription_info`, `elevenlabs_get_history_item_by_id`) work on any key; writes like instant voice cloning and some music tools are gated by the ElevenLabs plan, not by the key permissions.

## ClawLink vs. building it yourself

The alternative to ClawLink is usually manual API key setup plus your own token handling, permission troubleshooting, and tool plumbing for OpenClaw. That is fine if you want to build and maintain the integration yourself. Most teams just want ElevenLabs working from chat.

| | Manual | ClawLink |
|---|---|---|
| **Credential handling** | Collect, validate, store, and rotate the ElevenLabs API key yourself, then make sure every tool call uses the right account. | Users complete the hosted ClawLink setup once and the connected ElevenLabs account becomes available to the agent without you building credential management. |
| **Ongoing maintenance** | You own refresh logic, permission debugging, environment config, and every provider-specific edge case for ElevenLabs. | ClawLink handles the repetitive integration plumbing so your team can focus on the workflow instead of the infrastructure. |
| **Agent usability** | You still need to expose the right ElevenLabs actions to the runtime in a format your agent can reliably use. | 155 tools for ElevenLabs are already exposed through ClawLink, so the agent can read and act from chat immediately. |

## ClawLink vs. Composio

Composio also exposes ElevenLabs to AI agents. It is developer infrastructure: Python and TypeScript SDKs, an MCP server, and a catalog past 1,000 apps, aimed at teams shipping agent products. ClawLink is built for OpenClaw users instead. You install the plugin once, connect ElevenLabs in the browser, and the 155 tools above work from chat. There is no SDK and no config file, and the ElevenLabs key you paste at setup is stored server-side rather than kept in your environment. Choosing between them? Read the full [Composio alternatives](https://claw-link.dev/hub/composio-alternatives) comparison.

### OpenClaw installed the ElevenLabs skill but can't call the tools
The ClawHub skill teaches OpenClaw about ElevenLabs, but the calls run through the ClawLink plugin and your connected account. Make sure ElevenLabs is connected in the dashboard, then start a fresh chat so OpenClaw reloads the tool catalog. If OpenClaw runs as a persistent gateway, restart it so the new tools register.

### Connection succeeds but no tools appear
Reconnect ElevenLabs from the dashboard, then start a fresh chat if the runtime still has the old tool catalog loaded.

### "Tool schema not loaded yet" error when calling ElevenLabs tools
ElevenLabs tool schemas load on demand the first time a tool runs and are cached after that, so this error usually clears on its own: wait a few seconds and retry the same request. If every ElevenLabs call keeps failing with it in a fresh chat, reconnect from the dashboard, and contact support if it still persists — that pattern points to a configuration problem on our side, not something you can fix by reconnecting again.

### ElevenLabs returns 403 or "permission denied" on one action while others work
Two usual causes. The connected account may not have access to the specific workspace, inbox, store, or project in the request — check that first. If access looks right, the agent may have sent a placeholder value (like "YOUR_ID" or an example id from documentation) instead of a real one: ask it to run a list or search tool first, then retry the action with a real id from those results. Most failures at this stage are one of these two, not ClawLink bugs.

### "The API key you used is missing the permission pronunciation_dictionaries_write"
This is an ElevenLabs key-permission error, not a ClawLink failure: the connected key is valid but its scoped permissions don't include the endpoint the tool called. The permission name in the message tells you exactly which capability is missing (pronunciation_dictionaries_write, voices_read, and so on). Fix it in ElevenLabs: edit the key's permissions at elevenlabs.io/app/settings/api-keys to include the required scope, or create a key without scope restriction for the workflow. Then retry the same tool call from chat.

### ElevenLabs returns "Invalid API key" after working before
Three ElevenLabs-side causes, in practice: (1) user API keys can be created with an expiry (15 minutes to 30 days) and stop authenticating with exactly this 401 once they lapse — rotate to a new key; (2) a key committed to a public GitHub repo is auto-disabled by ElevenLabs' secret scanning (disable_reason exposed_publicly) — create a new key; (3) the key was rotated or deleted in ElevenLabs. In all three cases, reconnect ElevenLabs in the ClawLink dashboard with a fresh key and retry.

### "A voice with voice_id ... was not found" when the agent speaks
ElevenLabs addresses voices by a 20-character voice_id, not by name — passing "Spanda" or "Rachel" as the voice fails with voice_not_found. Ask the agent to call the get voices tool first (elevenlabs_get_voices) and use a voice_id from its results in the text-to-speech call. The voice_id is stable; the display name is not an argument.

### "Unusual activity has been detected on your account, so Free Tier access has been disabled"
ElevenLabs disables Free-tier API access when it detects a proxy or VPN on the request path, or when multiple free accounts share infrastructure — the agent's calls then fail until you upgrade. Two options: run the calls from a residential IP without a VPN, or upgrade the ElevenLabs plan, which lifts the restriction.

### "Your subscription does not include instant voice cloning. Please upgrade your plan."
Instant voice cloning is a paid-plan feature on ElevenLabs (Free is 10,000 credits/month and does not include it; Starter at $6/month does, per elevenlabs.io/pricing). The tool will keep failing on this error until the ElevenLabs plan includes the capability — no reconnect or key change fixes it.

### "Connection 1214 needs to be reconnected before elevenlabs_text_to_speech can run"
The ElevenLabs connection in ClawLink has been invalidated — usually a rotated or deleted API key. Reconnect ElevenLabs from the dashboard with the current key, then retry the same tool call in a fresh chat. Reconnecting is a one-time paste; no OpenClaw config changes are needed.

### xi-api-key: __OPENCLAW_REDACTED__ in the macOS talk-mode request to ElevenLabs
This is a self-hosted OpenClaw bug, not a ClawLink failure: OpenClaw's talk mode in the macOS app sent the literal redaction sentinel `__OPENCLAW_REDACTED__` as the `xi-api-key` header instead of the configured key, so ElevenLabs replied with a fallback voice (openclaw/openclaw issue #14586). It is fixed upstream in openclaw/openclaw #14613; update OpenClaw. The ClawLink connection sends the stored key on every call and has no talk-mode step where a sentinel could substitute for it.

### API key setup works but results look incomplete
Double-check that the API key for ElevenLabs has the right scopes or account access. A valid key can still be too limited for some reads or writes.

### Is there a OpenClaw ElevenLabs integration?
Yes. ClawLink is the fastest way to connect OpenClaw to ElevenLabs: link your ElevenLabs account once in the browser and OpenClaw can call the ElevenLabs API through 155 ready-made tools — no custom code or token handling.

### How do I add ElevenLabs to OpenClaw with ClawLink?
Paste the setup prompt from this page into OpenClaw. It installs the ClawLink ElevenLabs skill from ClawHub, then you click Connect in the dashboard to authorize ElevenLabs. OpenClaw calls the tools from the next message — no config files, and the ElevenLabs key you paste is stored server-side instead of in your environment.

### How long does it take to connect ElevenLabs to OpenClaw?
About two minutes. Sign in, click Connect next to ElevenLabs in the dashboard, authenticate, and OpenClaw can use it from the next chat message.

### Why use ClawLink instead of wiring ElevenLabs up myself?
The alternative to ClawLink is usually manual API key setup plus your own token handling, permission troubleshooting, and tool plumbing for OpenClaw. That is fine if you want to build and maintain the integration yourself. Most teams just want ElevenLabs working from chat.

### Does ElevenLabs support OAuth?
No. ElevenLabs authenticates every API request with an API key sent as the `xi-api-key` header; there is no OAuth flow for their API, which is why the r/openclaw thread asking about an ElevenLabs subscription over OAuth goes unanswered. Every route has the same prerequisite: a key from elevenlabs.io/app/settings/api-keys. ClawLink just removes the parts a key normally drags in — the env file, the config block, and the server you would otherwise keep running to expose the tools to OpenClaw.

### Is it safe to connect ElevenLabs to OpenClaw?
The key is a secret: anyone holding it can spend your ElevenLabs credits and use your voices. ClawLink stores the key for you rather than leaving it in a config file on your machine, and you control the blast radius: create a dedicated key at elevenlabs.io/app/settings/api-keys, give it only the API permissions the agent needs (scoped keys are supported), and rotate or delete it anytime without touching OpenClaw. ElevenLabs also lets you set a credit cap on the key, so an unexpected bill is bounded.

### Why does ElevenLabs fail with "missing the permission ..."?
That error means the API key is valid but its scoped permissions do not cover the endpoint the agent called — for example "The API key you used is missing the permission pronunciation_dictionaries_write". Create the key with the permissions your workflow needs, or use a key without scope restriction if the agent should have full workspace access. A free-plan key will also fail specific actions regardless of permission: instant voice cloning requires a paid plan.

### OpenClaw installed the ElevenLabs skill but can't call the tools
The ClawHub skill teaches OpenClaw about ElevenLabs, but the calls run through the ClawLink plugin and your connected account. Make sure ElevenLabs is connected in the dashboard, then start a fresh chat so OpenClaw reloads the tool catalog. If OpenClaw runs as a persistent gateway, restart it so the new tools register.

## Related

- [OpenClaw DataRobot integration](https://claw-link.dev/openclaw/datarobot) — DataRobot is a machine learning platform that automates model building, deployment, and monitoring, enabling organizations to derive predictive insights from large datasets.
- [Chatbotkit tools](https://claw-link.dev/openclaw/chatbotkit) — ChatBotKit is a platform that enables developers to build and manage AI-powered chatbots, offering comprehensive APIs and SDKs for seamless integration into applications.
- [Griptape tools](https://claw-link.dev/openclaw/griptape) — Griptape is a comprehensive platform offering tools and frameworks for building, deploying, and scaling generative AI applications.
