ElevenLabs SDK — Field Guide
REV 2026-08-03PAGES 10STATUS CURRENT

SEC 02 / PACKAGES

SDK & package map

There is no single “ElevenLabs SDK” — instead there are eight official packages, one per environment, each owning a different slice of the platform.

Environment Package Primary role
Python elevenlabs REST API, async client, Agents, Speech Engine
Node.js/server JavaScript @elevenlabs/elevenlabs-js REST API and server-side Speech Engine
Browser JavaScript @elevenlabs/client Agents, browser audio, real-time Scribe
React @elevenlabs/react React bindings and hooks for Agents/Scribe
React Native @elevenlabs/react-native Mobile Agents over WebRTC
Swift ElevenLabs Swift SDK Native Apple-platform Agents
Kotlin/Android ElevenLabs Android SDK Native Android Agents
Flutter elevenlabs_agents Cross-platform mobile Agents

The package distinction that bites people

The maintained Node server package is:

@elevenlabs/elevenlabs-js

The browser conversational package is:

@elevenlabs/client

They are not interchangeable. @elevenlabs/elevenlabs-js is the broad REST client meant to run on a trusted server; @elevenlabs/client owns the microphone, WebRTC, conversation, and client-side real-time behaviour of a browser tab. Reaching for the Node package inside a browser bundle — or expecting the browser package to cover general REST operations — is the mistake this distinction exists to prevent. The official Node repository explicitly directs browser and React applications to the client and React packages instead.

What the core API actually covers

The public API surface is much broader than text-to-speech:

Media APIs Resource and platform APIs
Text to Speech Voices and voice management
Speech to Text Pronunciation dictionaries
Text to Dialogue Workspace resources
Voice Changer Agents
Voice Design Conversations
Sound Effects Agent tools
Music generation Knowledge bases
Audio Isolation Agent tests
Dubbing Phone numbers and SIP
Forced Alignment Twilio, Exotel, and WhatsApp integrations
Audio Native Batch calling
Speech Engine MCP integrations
Analytics and environment variables

That breadth means the core SDK reads closer to an automatically generated client for the full ElevenLabs platform than a focused “TTS helper.” Expect to find resources for phone numbers, knowledge bases, and batch calling alongside the audio endpoints you came for.

Typical core-client operations look like this:

client.text_to_speech.convert(...)
client.text_to_speech.stream(...)
client.voices.search(...)
client.voices.ivc.create(...)

Python exposes both ElevenLabs and AsyncElevenLabs entry points; the Node package uses a single ElevenLabsClient.

Generated-client implications

The core packages are largely generated from the API specification. That gives extensive typed coverage and rapid access to new endpoints, but it carries real consequences for how you build on top of them:

ElevenLabs’ compatibility policy treats adding response properties as a non-breaking change — clients are expected to ignore fields they don’t understand. Removing fields or changing their types incompatibly is treated as breaking. Write your response parsing accordingly, and don’t hand-edit generated files; the Node repository warns that direct edits to generated areas may be silently overwritten on the next regeneration.

Going deeper: exact versions at the research snapshot

At the time of the research snapshot (3 August 2026):

Environment Package Version
Python elevenlabs 2.60.0
Node.js/server JavaScript @elevenlabs/elevenlabs-js 2.60.0
Browser JavaScript @elevenlabs/client 1.17.0
React @elevenlabs/react 1.12.0
React Native @elevenlabs/react-native 1.2.18
Swift ElevenLabs Swift SDK 3.2.2
Kotlin/Android ElevenLabs Android SDK 0.11.1
Flutter elevenlabs_agents 0.6.1

The core Python and Node packages share a version line (both 2.60.0), while the browser, React, and mobile packages each have their own independent version line. Don’t assume that similarly dated packages expose matching interfaces — always check the changelog of the specific package you’re installing.

References