integrations/voice/elevenlabs/dist¶
Interfaces¶
ElevenLabsConversationSignedUrlRequest¶
Properties¶
agentId¶
branchId?¶
environment?¶
includeConversationId?¶
ElevenLabsConversationSignedUrlResponse¶
Indexable¶
Properties¶
signed_url?¶
signedUrl?¶
ElevenLabsCreateSpeechInput¶
Properties¶
modelId?¶
outputFormat?¶
signal?¶
text¶
voiceId¶
ElevenLabsCreateTranscriptInput¶
Properties¶
file?¶
fileName?¶
languageCode?¶
modelId?¶
signal?¶
sourceUrl?¶
timestampsGranularity?¶
ElevenLabsRawClient¶
Properties¶
conversationalAi?¶
optional conversationalAi?: {
conversations?: {
getSignedUrl: Promise<
| string
| ElevenLabsConversationSignedUrlResponse>;
};
};
conversations?¶
optional conversations?: {
getSignedUrl: Promise<
| string
| ElevenLabsConversationSignedUrlResponse>;
};
conversations.getSignedUrl()¶
Parameters¶
| Parameter | Type |
|---|---|
...args |
[ConversationsGetSignedUrlRequest, RequestOptions] |
Returns¶
Promise\<
| string
| ElevenLabsConversationSignedUrlResponse>
fetch?¶
Make a passthrough request using the SDK's configured auth, retry, logging, etc. This is useful for making requests to endpoints not yet supported in the SDK. The input can be a URL string, URL object, or Request object. Relative paths are resolved against the configured base URL.
Parameters¶
| Parameter | Type | Description |
|---|---|---|
input |
string | Request | URL |
The URL, path, or Request object. |
init? |
RequestInit |
Standard fetch RequestInit options. |
requestOptions? |
RequestOptions |
Per-request overrides (timeout, retries, headers, abort signal). |
Returns¶
Promise\<Response>
A standard Response object.
speechToText?¶
optional speechToText?: {
transcripts?: Partial<Pick<ElevenLabsClient["speechToText"]["transcripts"], "get" | "delete">>;
convert: Promise<unknown>;
};
transcripts?¶
optional transcripts?: Partial<Pick<ElevenLabsClient["speechToText"]["transcripts"], "get" | "delete">>;
convert()¶
Parameters¶
| Parameter | Type |
|---|---|
...args |
[BodySpeechToTextV1SpeechToTextPost, RequestOptions] |
Returns¶
Promise\<unknown>
textToSpeech?¶
optional textToSpeech?: {
convert: Promise<unknown>;
convertWithTimestamps?: Promise<unknown>;
stream?: Promise<unknown>;
};
convert()¶
Parameters¶
| Parameter | Type |
|---|---|
...args |
[string, BodyTextToSpeechFull, RequestOptions] |
Returns¶
Promise\<unknown>
convertWithTimestamps()?¶
Parameters¶
| Parameter | Type |
|---|---|
...args |
[string, BodyTextToSpeechFullWithTimestamps, RequestOptions] |
Returns¶
Promise\<unknown>
stream()?¶
Parameters¶
| Parameter | Type |
|---|---|
...args |
[string, StreamTextToSpeechRequest, RequestOptions] |
Returns¶
Promise\<unknown>
ElevenLabsTranscriptResponse¶
Indexable¶
Properties¶
language_code?¶
language_probability?¶
languageCode?¶
languageProbability?¶
text?¶
transcription_id?¶
transcriptionId?¶
ElevenLabsVoiceClient¶
Methods¶
createConversationSignedUrl()¶
Parameters¶
| Parameter | Type |
|---|---|
input |
{ agentId: string; signal?: AbortSignal; } |
input.agentId |
string |
input.signal? |
AbortSignal |
Returns¶
Promise\<string>
createSpeech()¶
Parameters¶
| Parameter | Type |
|---|---|
input |
ElevenLabsCreateSpeechInput |
Returns¶
Promise\<ArrayBuffer>
createTranscript()¶
Parameters¶
| Parameter | Type |
|---|---|
input |
ElevenLabsCreateTranscriptInput |
Returns¶
Promise\<ElevenLabsTranscriptResponse>
getRawClient()¶
Returns¶
Promise\<ElevenLabsRawClient>
ElevenLabsVoiceClientOptions¶
Properties¶
apiBaseUrl?¶
apiKey?¶
rawClient?¶
ElevenLabsVoiceProviderOptions¶
Extends¶
Omit\<Partial\<SpeechPipelineVoiceProviderOptions>,"provider"|"transcriptionSource"|"transcribe"|"synthesize">
Indexable¶
Properties¶
apiBaseUrl?¶
apiKey?¶
client?¶
languageCode?¶
outputFormat?¶
rawClient?¶
speechToTextModelId?¶
textToSpeechModelId?¶
voiceId¶
Variables¶
elevenLabsVoiceIntegration¶
const elevenLabsVoiceIntegration: DefinedIntegration<{
capabilities: {
audiences?: ("customer-facing" | "mixed" | "internal-support")[];
capability: string;
changesWorkflow?: boolean;
description?: string;
exposesSensitiveData?: boolean;
extension?: boolean;
label?: string;
metadata?: Record<string, unknown>;
providerObjects?: {
description?: string;
kind: string;
label?: string;
metadata?: Record<string, unknown>;
schemaName?: string;
}[];
requiresCredential?: boolean;
sideEffect?: boolean;
}[];
category: string;
channelAudiences: ("customer-facing" | "mixed" | "internal-support")[];
coverage: {
evidence: {
label: string;
url?: string;
}[];
notes: string[];
scope: | "provider-api-subset"
| "support-workflow-subset"
| "connector-required"
| "local-protocol"
| "full-provider-api";
};
credentialRequirements: {
description?: string;
id: string;
label?: string;
metadata?: Record<string, unknown>;
required: boolean;
scopes: string[];
}[];
directions: (
| "send-only"
| "receive-only"
| "bidirectional"
| "inbound-only"
| "outbound-only")[];
id: string;
limitations: string[];
maintainers: {
name: string;
type: "official" | "community" | "unknown" | "partner";
url?: string;
}[];
metadata?: Record<string, unknown>;
name: string;
operations: {
alias: string;
audience?: "customer-facing" | "mixed" | "internal-support";
audiences?: ("customer-facing" | "mixed" | "internal-support")[];
capability: string;
changesWorkflow?: boolean;
description?: string;
exposesSensitiveData?: boolean;
extension: boolean;
externallyVisible?: boolean;
inputSchema?: unknown;
inputSchemaName?: string;
inputSchemaRef?: string;
label?: string;
metadata?: Record<string, unknown>;
outputSchema?: unknown;
outputSchemaName?: string;
outputSchemaRef?: string;
providerObject?: string;
providerObjects?: {
description?: string;
kind: string;
label?: string;
metadata?: Record<string, unknown>;
schemaName?: string;
}[];
providerOperation?: string;
requiredPolicyIds?: string[];
requiresApproval?: boolean;
requiresCredential?: boolean;
sideEffect?: boolean;
}[];
packageName: string;
privacyNotes: string[];
provider: string;
trustLevel: "official" | "community" | "verified" | "experimental";
} & {
capabilities: readonly [{
audiences: readonly ["customer-facing"];
capability: "send";
description: "Creates or streams speech audio with ElevenLabs Text to Speech.";
exposesSensitiveData: true;
label: "Create speech audio";
providerObjects: readonly [{
kind: "elevenlabsVoice";
label: "ElevenLabs Voice";
}, {
kind: "elevenlabsSpeechGeneration";
label: "ElevenLabs Speech Generation";
}];
requiresCredential: true;
sideEffect: true;
}, {
audiences: readonly ["customer-facing"];
capability: "receive";
description: "Creates signed URLs for authorized ElevenLabs Conversational AI sessions and reads conversation transcripts.";
exposesSensitiveData: true;
label: "Receive conversational voice";
providerObjects: readonly [{
kind: "elevenlabsConversation";
label: "ElevenLabs Conversation";
}];
requiresCredential: true;
}, {
audiences: readonly ["customer-facing", "internal-support"];
capability: "media";
description: "Reads generated audio streams, conversation audio, speech timing alignments, and speech-to-text transcript resources.";
exposesSensitiveData: true;
label: "Voice media and transcripts";
providerObjects: readonly [{
kind: "elevenlabsAudio";
label: "ElevenLabs Audio";
}, {
kind: "elevenlabsTranscript";
label: "ElevenLabs Transcript";
}];
requiresCredential: true;
}];
category: "voice";
channelAudiences: readonly ["customer-facing", "mixed"];
coverage: {
evidence: readonly [{
label: "ElevenLabs JavaScript SDK package";
url: "https://www.npmjs.com/package/@elevenlabs/elevenlabs-js";
}, {
label: "ElevenLabs API reference";
url: "https://elevenlabs.io/docs/api-reference";
}, {
label: "ElevenLabs Speech to Text";
url: "https://elevenlabs.io/docs/api-reference/speech-to-text/convert";
}, {
label: "ElevenLabs Text to Speech";
url: "https://elevenlabs.io/docs/api-reference/text-to-speech/convert";
}];
notes: readonly ["Implements normalized Cognidesk speech, transcription, and conversational session helpers with the official ElevenLabs JavaScript SDK.", "Raw ElevenLabs SDK access is exposed as an escape hatch; this package does not re-export the whole SDK as Cognidesk-owned API coverage.", "Realtime WebSocket transport behavior, telephony carrier setup, workspace administration, retention, and live agent routing remain SDK-user/provider configuration."];
scope: "provider-api-subset";
};
credentialRequirements: readonly [{
description: "Server-side ElevenLabs credential used by the official SDK for voice API requests.";
id: "elevenlabs-api-key";
label: "ElevenLabs API key";
metadata: {
minimumAccess: readonly ["text-to-speech", "speech-to-text", "conversational-ai", "voices:read", "models:read"];
scopeKind: "provider-permission";
};
required: true;
}];
directions: readonly ["send-only", "receive-only", "bidirectional"];
id: "voice.elevenlabs";
limitations: readonly ["Realtime WebSocket transport behavior, telephony setup, batch calling, call recording policy, consent, retention, and live agent routing remain SDK-user/provider configuration."];
maintainers: readonly [{
name: "Cognidesk";
type: "official";
}];
metadata: {
implementation: {
sdkPackage: "@elevenlabs/elevenlabs-js";
strategy: "official-sdk";
verifiedAt: "2026-06-21";
verifiedVersion: "2.53.1";
};
rawClient: {
coverage: "upstream-sdk";
export: "getRawClient";
};
};
name: "ElevenLabs Voice";
operations: readonly [{
alias: "voice.speak";
audiences: readonly ["customer-facing"];
capability: "send";
exposesSensitiveData: true;
label: "Create speech";
providerObject: "elevenlabsAudio";
providerOperation: "createSpeech";
sideEffect: true;
}, {
alias: "voice.turn.finalize";
audiences: readonly ["customer-facing", "internal-support"];
capability: "receive";
exposesSensitiveData: true;
label: "Create transcript";
providerObject: "elevenlabsTranscript";
providerOperation: "createTranscript";
sideEffect: true;
}, {
alias: "elevenlabs.conversation.authorize";
audiences: readonly ["customer-facing"];
capability: "receive";
exposesSensitiveData: true;
extension: true;
label: "Create conversation signed URL";
providerObject: "elevenlabsConversation";
providerOperation: "createConversationSignedUrl";
sideEffect: true;
}];
packageName: "@cognidesk/integration-voice-elevenlabs";
privacyNotes: readonly ["Text prompts, generated speech, uploaded audio/video, transcript text, conversation IDs, and conversation audio can contain personal data and are sent to or read from ElevenLabs.", "ElevenLabs API keys must remain server-side. Use signed URLs or single-use tokens for browser/client conversation startup instead of exposing the API key."];
provider: "elevenlabs";
trustLevel: "official";
}, unknown, {
elevenlabs.conversation.authorize: (input, context) => Promise<string>;
voice.speak: (input, context) => Promise<ArrayBuffer>;
voice.turn.finalize: (input, context) => Promise<ElevenLabsTranscriptResponse>;
}>;
Functions¶
createElevenLabsVoiceClient()¶
Parameters¶
| Parameter | Type |
|---|---|
options |
ElevenLabsVoiceClientOptions |
Returns¶
createElevenLabsVoiceProvider()¶
Parameters¶
| Parameter | Type |
|---|---|
options |
ElevenLabsVoiceProviderOptions |
Returns¶
elevenLabsVoiceCredentialStatuses()¶
function elevenLabsVoiceCredentialStatuses(input): {
expiresAt?: string;
message?: string;
providerPackageId?: string;
requirementId: string;
scopes?: string[];
state: | "required"
| "configured"
| "permission-blocked"
| "not-required"
| "missing"
| "expired"
| "insufficient-scope"
| "unavailable";
}[];
Parameters¶
| Parameter | Type |
|---|---|
input |
{ apiKey?: string; } |
input.apiKey? |
string |
Returns¶
{
expiresAt?: string;
message?: string;
providerPackageId?: string;
requirementId: string;
scopes?: string[];
state: | "required"
| "configured"
| "permission-blocked"
| "not-required"
| "missing"
| "expired"
| "insufficient-scope"
| "unavailable";
}[]
References¶
elevenLabsVoiceProviderManifest¶
Re-exports elevenLabsVoiceProviderManifest