Skip to content

integrations/voice/elevenlabs/dist

Interfaces

ElevenLabsConversationSignedUrlRequest

Properties

agentId
agentId: string;
branchId?
optional branchId?: string;
environment?
optional environment?: string;
includeConversationId?
optional includeConversationId?: boolean;

ElevenLabsConversationSignedUrlResponse

Indexable

[key: string]: unknown

Properties

signed_url?
optional signed_url?: string;
signedUrl?
optional signedUrl?: string;

ElevenLabsCreateSpeechInput

Properties

modelId?
optional modelId?: string;
outputFormat?
optional outputFormat?: string;
signal?
optional signal?: AbortSignal;
text
text: string;
voiceId
voiceId: string;

ElevenLabsCreateTranscriptInput

Properties

file?
optional file?: Blob;
fileName?
optional fileName?: string;
languageCode?
optional languageCode?: string;
modelId?
optional modelId?: string;
signal?
optional signal?: AbortSignal;
sourceUrl?
optional sourceUrl?: string;
timestampsGranularity?
optional timestampsGranularity?: "none" | "word" | "character";

ElevenLabsRawClient

Properties

conversationalAi?
optional conversationalAi?: {
  conversations?: {
     getSignedUrl: Promise<
        | string
       | ElevenLabsConversationSignedUrlResponse>;
  };
};
conversations?
optional conversations?: {
  getSignedUrl: Promise<
     | string
    | ElevenLabsConversationSignedUrlResponse>;
};
conversations.getSignedUrl()
getSignedUrl(...args): Promise<
  | string
| ElevenLabsConversationSignedUrlResponse>;
Parameters
Parameter Type
...args [ConversationsGetSignedUrlRequest, RequestOptions]
Returns

Promise\< | string | ElevenLabsConversationSignedUrlResponse>

fetch?
optional fetch?: (input, init?, requestOptions?) => Promise<Response>;

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()
convert(...args): Promise<unknown>;
Parameters
Parameter Type
...args [BodySpeechToTextV1SpeechToTextPost, RequestOptions]
Returns

Promise\<unknown>

textToSpeech?
optional textToSpeech?: {
  convert: Promise<unknown>;
  convertWithTimestamps?: Promise<unknown>;
  stream?: Promise<unknown>;
};
convert()
convert(...args): Promise<unknown>;
Parameters
Parameter Type
...args [string, BodyTextToSpeechFull, RequestOptions]
Returns

Promise\<unknown>

convertWithTimestamps()?
optional convertWithTimestamps(...args): Promise<unknown>;
Parameters
Parameter Type
...args [string, BodyTextToSpeechFullWithTimestamps, RequestOptions]
Returns

Promise\<unknown>

stream()?
optional stream(...args): Promise<unknown>;
Parameters
Parameter Type
...args [string, StreamTextToSpeechRequest, RequestOptions]
Returns

Promise\<unknown>


ElevenLabsTranscriptResponse

Indexable

[key: string]: unknown

Properties

language_code?
optional language_code?: string;
language_probability?
optional language_probability?: number;
languageCode?
optional languageCode?: string;
languageProbability?
optional languageProbability?: number;
text?
optional text?: string;
transcription_id?
optional transcription_id?: string;
transcriptionId?
optional transcriptionId?: string;

ElevenLabsVoiceClient

Methods

createConversationSignedUrl()
createConversationSignedUrl(input): Promise<string>;
Parameters
Parameter Type
input { agentId: string; signal?: AbortSignal; }
input.agentId string
input.signal? AbortSignal
Returns

Promise\<string>

createSpeech()
createSpeech(input): Promise<ArrayBuffer>;
Parameters
Parameter Type
input ElevenLabsCreateSpeechInput
Returns

Promise\<ArrayBuffer>

createTranscript()
createTranscript(input): Promise<ElevenLabsTranscriptResponse>;
Parameters
Parameter Type
input ElevenLabsCreateTranscriptInput
Returns

Promise\<ElevenLabsTranscriptResponse>

getRawClient()
getRawClient(): Promise<ElevenLabsRawClient>;
Returns

Promise\<ElevenLabsRawClient>


ElevenLabsVoiceClientOptions

Properties

apiBaseUrl?
optional apiBaseUrl?: string;
apiKey?
optional apiKey?: string;
rawClient?
optional rawClient?: ElevenLabsRawClient;

ElevenLabsVoiceProviderOptions

Extends

  • Omit\<Partial\<SpeechPipelineVoiceProviderOptions>, "provider" | "transcriptionSource" | "transcribe" | "synthesize">

Indexable

[key: string]: SpeechPipelineVoiceProviderOptions
[key: number]: SpeechPipelineVoiceProviderOptions
[key: symbol]: SpeechPipelineVoiceProviderOptions

Properties

apiBaseUrl?
optional apiBaseUrl?: string;
apiKey?
optional apiKey?: string;
client?
optional client?: ElevenLabsVoiceClient;
languageCode?
optional languageCode?: string;
outputFormat?
optional outputFormat?: string;
rawClient?
optional rawClient?: ElevenLabsRawClient;
speechToTextModelId?
optional speechToTextModelId?: string;
textToSpeechModelId?
optional textToSpeechModelId?: string;
voiceId
voiceId: string;

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()

function createElevenLabsVoiceClient(options): ElevenLabsVoiceClient;

Parameters

Parameter Type
options ElevenLabsVoiceClientOptions

Returns

ElevenLabsVoiceClient


createElevenLabsVoiceProvider()

function createElevenLabsVoiceProvider(options): VoiceProvider;

Parameters

Parameter Type
options ElevenLabsVoiceProviderOptions

Returns

VoiceProvider


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