@apicity/elevenlabs

中文文档
0.27.0发布于 2026/11/06MITTypeScriptES Module近 30 天下载 4183

ElevenLabs provider for sound effect generation, text-to-speech, and audio APIs.

原始使用文档
文档目录7 节
  1. Installation
  2. Quick Start
  3. Real-world example: generate a sound effect, then run it th…
  4. API Reference
  5. audioIsolation
  6. audioNative
  7. convai

@apicity/elevenlabs

npm dependencies TypeScript

ElevenLabs provider for sound effect generation, text-to-speech, and audio APIs.

Runtime dependencies:

  • zod@^4.6.6 — request schemas attached to every POST endpoint as .schema

Installation

npm install @apicity/elevenlabs
# or
pnpm add @apicity/elevenlabs

Quick Start

import { createElevenLabs } from "@apicity/elevenlabs";

const elevenlabs = createElevenLabs({ apiKey: process.env.ELEVENLABS_API_KEY! });

Real-world example: generate a sound effect, then run it through Scribe v2

ElevenLabs' two flagship audio surfaces fit together cleanly: text-to- sound-effects spits out raw MP3 bytes, and Scribe v2 hands back a typed transcript with word-level timestamps plus tagged audio events. The round-trip below — generate a UI click, then transcribe a separate clip with tag_audio_events: true — mirrors what tests/integration/elevenlabs-sound-generation.test.ts and tests/integration/elevenlabs-speech-to-text.test.ts replay against tests/recordings/elevenlabs_2379486140/, so every payload, response field, and byte count below comes straight from the recorded HARs.

import { readFileSync, writeFileSync } from "node:fs";
import { createElevenLabs } from "@apicity/elevenlabs";
import type { ElevenLabsTranscript } from "@apicity/elevenlabs";

const elevenlabs = createElevenLabs({ apiKey: process.env.ELEVENLABS_API_KEY! });

// 1. Generate a 0.5s UI click. soundGeneration returns the raw MP3 as
//    an ArrayBuffer — there's no JSON wrapper, the response body is
//    audio/mpeg straight off the wire. duration_seconds (0.5–30) caps
//    the clip length and prompt_influence (0–1) trades prompt-fidelity
//    for creative variation. The factory also accepts `output_format`
//    on the same request object and silently moves it to the URL query.
const audio = await elevenlabs.v1.soundGeneration({
  text: "soft ui click",
  duration_seconds: 0.5,
  prompt_influence: 0.3,
});

writeFileSync("./click.mp3", new Uint8Array(audio));
console.log(`Generated ${audio.byteLength} bytes of audio/mpeg`);
// → "Generated 11764 bytes of audio/mpeg"
//   ElevenLabs charged 10 characters for this call (visible in the
//   `character-cost` response header on the original request).

// 2. Transcribe a separate audio clip with Scribe v2. The request goes
//    up as multipart/form-data — pass a Blob and the rest as ergonomic
//    fields; the factory packs the form, sets xi-api-key, and parses
//    the JSON response. tag_audio_events: true tells Scribe to surface
//    non-speech events ([phone beeping], [laughter], [applause]) inline
//    with words instead of dropping them.
const phoneBeep = readFileSync("./phone-beeping.mp3"); // 2,528 bytes
const file = new Blob([phoneBeep], { type: "audio/mp3" });

const result = (await elevenlabs.v1.speechToText({
  file,
  model_id: "scribe_v2",
  language_code: "eng",
  tag_audio_events: true,
})) as ElevenLabsTranscript;

// 3. The transcript is rich. `text` is the human-readable form;
//    `words` is the per-token breakdown with absolute timestamps and a
//    `type` discriminator ("word" | "spacing" | "audio_event") plus a
//    `logprob` confidence. `transcription_id` is durable — you can
//    retrieve the same transcript later through the history API.
console.log(
  `${result.language_code} · ${(result.language_probability * 100).toFixed(0)}% confident`,
);
// → "eng · 100% confident"
console.log(
  `${result.audio_duration_secs}s · transcription_id=${result.transcription_id}`,
);
// → "0.5s · transcription_id=CeeidI2QJ8kkN1mcq8HX"
console.log(result.text);
// → "[phone beeping]"

// 4. Walk the words array, splitting audio events from spoken words
//    via the `type` discriminator. On a clip with no speech every
//    entry is an audio_event; on real speech you'll see "word" and
//    "spacing" entries interleaved with bracketed events.
for (const w of result.words) {
  const tag =
    w.type === "audio_event"
      ? "event"
      : w.type === "word"
        ? "word "
        : "space";
  console.log(
    `  ${tag}  [${w.start.toFixed(2)}–${w.end.toFixed(2)}s]  ${w.text}` +
      (w.logprob !== undefined ? ` (logprob ${w.logprob.toFixed(3)})` : ""),
  );
}
// → "  event  [0.00–0.44s]  [phone beeping] (logprob -0.335)"

Notes

  • soundGeneration returns binary, not JSON — the provider already reads it as arrayBuffer() and hands you an ArrayBuffer. Pass output_format: "mp3_44100_128" (or any other ElevenLabs codec string) on the request object and the factory will strip it from the body and move it to the ?output_format= URL query.
  • speechToText accepts either a file Blob or a cloud_storage_url (S3/GCS/HTTP). For long-form audio set webhook: true — the call returns a small ElevenLabsWebhookAcknowledgement instead of the transcript, and the finished result is delivered to your registered webhook. Type-narrow the union with "text" in result before reading transcript fields.
  • Set diarize: true and num_speakers to label words by speaker; the per-word speaker_id field gets populated in that mode. Combine with use_multi_channel: true for stereo audio and the response switches to ElevenLabsMultichannelTranscript (one transcript per channel under transcripts[]).
  • Errors throw ElevenLabsError with status, code, and the parsed body attached. ElevenLabs returns either FastAPI's { detail: [{msg, ...}] } shape or { detail: { status, message } }; the client normalises both into error.message.

API Reference

303 endpoints across 28 groups. Each method mirrors an upstream URL path.

audioIsolation

POST elevenlabs.v1.audioIsolation

POST https://api.elevenlabs.io/v1/audio-isolation

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.audioIsolation({ /* ... */ });

Source: packages/provider/elevenlabs/src/audio.ts

DELETE elevenlabs.v1.audioIsolation.history.delete

DELETE https://api.elevenlabs.io/v1/audio-isolation/history/{historyItemId}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.audioIsolation.history.delete({ /* ... */ });

Source: packages/provider/elevenlabs/src/audio.ts

GET elevenlabs.v1.audioIsolation.history.list

GET https://api.elevenlabs.io/v1/audio-isolation/history

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.audioIsolation.history.list({ /* ... */ });

Source: packages/provider/elevenlabs/src/audio.ts

POST elevenlabs.v1.audioIsolation.stream

POST https://api.elevenlabs.io/v1/audio-isolation/stream

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.audioIsolation.stream({ /* ... */ });

Source: packages/provider/elevenlabs/src/audio.ts

audioNative

POST elevenlabs.v1.audioNative

POST https://api.elevenlabs.io/v1/audio-native

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.audioNative({ /* ... */ });

Source: packages/provider/elevenlabs/src/audio.ts

POST elevenlabs.v1.audioNative.content.fromUrl

POST https://api.elevenlabs.io/v1/audio-native/content

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.audioNative.content.fromUrl({ /* ... */ });

Source: packages/provider/elevenlabs/src/audio.ts

POST elevenlabs.v1.audioNative.content.update

POST https://api.elevenlabs.io/v1/audio-native/{projectId}/content

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.audioNative.content.update({ /* ... */ });

Source: packages/provider/elevenlabs/src/audio.ts

GET elevenlabs.v1.audioNative.settings

GET https://api.elevenlabs.io/v1/audio-native/{projectId}/settings

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.audioNative.settings({ /* ... */ });

Source: packages/provider/elevenlabs/src/audio.ts

convai

GET elevenlabs.v1.convai.agent.knowledgeBase.size

GET https://api.elevenlabs.io/v1/convai/agent/{agentId}/knowledge-base/size

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agent.knowledgeBase.size({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.agent.llmUsage.calculate

POST https://api.elevenlabs.io/v1/convai/agent/{agentId}/llm-usage/calculate

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agent.llmUsage.calculate({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.agentTesting.bulkMove

POST https://api.elevenlabs.io/v1/convai/agent-testing/bulk-move

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agentTesting.bulkMove({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.agentTesting.create

POST https://api.elevenlabs.io/v1/convai/agent-testing/create

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agentTesting.create({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

DELETE elevenlabs.v1.convai.agentTesting.delete

DELETE https://api.elevenlabs.io/v1/convai/agent-testing/{testId}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agentTesting.delete({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.agentTesting.folders.create

POST https://api.elevenlabs.io/v1/convai/agent-testing/folders

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agentTesting.folders.create({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

DELETE elevenlabs.v1.convai.agentTesting.folders.delete

DELETE https://api.elevenlabs.io/v1/convai/agent-testing/folders/{folderId}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agentTesting.folders.delete({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.agentTesting.folders.get

GET https://api.elevenlabs.io/v1/convai/agent-testing/folders/{folderId}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agentTesting.folders.get({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

PATCH elevenlabs.v1.convai.agentTesting.folders.update

PATCH https://api.elevenlabs.io/v1/convai/agent-testing/folders/{folderId}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agentTesting.folders.update({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.agentTesting.get

GET https://api.elevenlabs.io/v1/convai/agent-testing/{testId}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agentTesting.get({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.agentTesting.list

GET https://api.elevenlabs.io/v1/convai/agent-testing

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agentTesting.list({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.agentTesting.summaries

POST https://api.elevenlabs.io/v1/convai/agent-testing/summaries

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agentTesting.summaries({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

PUT elevenlabs.v1.convai.agentTesting.update

PUT https://api.elevenlabs.io/v1/convai/agent-testing/{testId}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agentTesting.update({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.agents.avatar

POST https://api.elevenlabs.io/v1/convai/agents/{agentId}/avatar

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agents.avatar({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.agents.branches

GET https://api.elevenlabs.io/v1/convai/agents/{agentId}/branches

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agents.branches({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.agents.branches.create

POST https://api.elevenlabs.io/v1/convai/agents/{agentId}/branches

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agents.branches.create({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.agents.branches.get

GET https://api.elevenlabs.io/v1/convai/agents/{agentId}/branches/{branchId}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agents.branches.get({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.agents.branches.merge

POST https://api.elevenlabs.io/v1/convai/agents/{agentId}/branches/{sourceBranchId}/merge

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agents.branches.merge({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.agents.branches.mergePreview

GET https://api.elevenlabs.io/v1/convai/agents/{agentId}/branches/{sourceBranchId}/merge-preview

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agents.branches.mergePreview({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.agents.branches.rebase

POST https://api.elevenlabs.io/v1/convai/agents/{agentId}/branches/{branchId}/rebase

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agents.branches.rebase({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.agents.branches.rebasePreview

GET https://api.elevenlabs.io/v1/convai/agents/{agentId}/branches/{branchId}/rebase-preview

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agents.branches.rebasePreview({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

PATCH elevenlabs.v1.convai.agents.branches.update

PATCH https://api.elevenlabs.io/v1/convai/agents/{agentId}/branches/{branchId}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agents.branches.update({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.agents.create

POST https://api.elevenlabs.io/v1/convai/agents/create

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agents.create({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

DELETE elevenlabs.v1.convai.agents.delete

DELETE https://api.elevenlabs.io/v1/convai/agents/{agentId}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agents.delete({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.agents.deployments

POST https://api.elevenlabs.io/v1/convai/agents/{agentId}/deployments

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agents.deployments({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.agents.drafts.create

POST https://api.elevenlabs.io/v1/convai/agents/{agentId}/drafts

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agents.drafts.create({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

DELETE elevenlabs.v1.convai.agents.drafts.delete

DELETE https://api.elevenlabs.io/v1/convai/agents/{agentId}/drafts

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agents.drafts.delete({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.agents.duplicate

POST https://api.elevenlabs.io/v1/convai/agents/{agentId}/duplicate

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agents.duplicate({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.agents.get

GET https://api.elevenlabs.io/v1/convai/agents/{agentId}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agents.get({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.agents.link

GET https://api.elevenlabs.io/v1/convai/agents/{agentId}/link

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agents.link({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.agents.list

GET https://api.elevenlabs.io/v1/convai/agents

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agents.list({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.agents.runTests

POST https://api.elevenlabs.io/v1/convai/agents/{agentId}/run-tests

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agents.runTests({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.agents.simulateConversation

POST https://api.elevenlabs.io/v1/convai/agents/{agentId}/simulate-conversation

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agents.simulateConversation({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.agents.simulateConversation.stream

POST https://api.elevenlabs.io/v1/convai/agents/{agentId}/simulate-conversation/stream

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agents.simulateConversation.stream({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.agents.summaries

GET https://api.elevenlabs.io/v1/convai/agents/summaries

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agents.summaries({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.agents.topics

GET https://api.elevenlabs.io/v1/convai/agents/{agentId}/topics

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agents.topics({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

PATCH elevenlabs.v1.convai.agents.update

PATCH https://api.elevenlabs.io/v1/convai/agents/{agentId}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agents.update({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.agents.versions.get

GET https://api.elevenlabs.io/v1/convai/agents/{agentId}/versions/{versionId}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agents.versions.get({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.agents.widget

GET https://api.elevenlabs.io/v1/convai/agents/{agentId}/widget

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.agents.widget({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.analytics.liveCount

GET https://api.elevenlabs.io/v1/convai/analytics/live-count

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.analytics.liveCount({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.batchCalling.cancel

POST https://api.elevenlabs.io/v1/convai/batch-calling/{batchId}/cancel

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.batchCalling.cancel({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

DELETE elevenlabs.v1.convai.batchCalling.delete

DELETE https://api.elevenlabs.io/v1/convai/batch-calling/{batchId}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.batchCalling.delete({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.batchCalling.get

GET https://api.elevenlabs.io/v1/convai/batch-calling/{batchId}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.batchCalling.get({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.batchCalling.retry

POST https://api.elevenlabs.io/v1/convai/batch-calling/{batchId}/retry

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.batchCalling.retry({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.batchCalling.submit

POST https://api.elevenlabs.io/v1/convai/batch-calling/submit

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.batchCalling.submit({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.batchCalling.workspace

GET https://api.elevenlabs.io/v1/convai/batch-calling/workspace

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.batchCalling.workspace({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.conversation.getSignedUrl

GET https://api.elevenlabs.io/v1/convai/conversation/get-signed-url

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.conversation.getSignedUrl({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.conversation.token

GET https://api.elevenlabs.io/v1/convai/conversation/token

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.conversation.token({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.conversations.analysis

POST https://api.elevenlabs.io/v1/convai/conversations/{conversationId}/analysis/run

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.conversations.analysis({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.conversations.analysis.evaluations

POST https://api.elevenlabs.io/v1/convai/conversations/{conversationId}/analysis/evaluations/run

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.conversations.analysis.evaluations({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.conversations.audio

GET https://api.elevenlabs.io/v1/convai/conversations/{conversationId}/audio

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.conversations.audio({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

DELETE elevenlabs.v1.convai.conversations.delete

DELETE https://api.elevenlabs.io/v1/convai/conversations/{conversationId}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.conversations.delete({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.conversations.feedback

POST https://api.elevenlabs.io/v1/convai/conversations/{conversationId}/feedback

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.conversations.feedback({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.conversations.files

POST https://api.elevenlabs.io/v1/convai/conversations/{conversationId}/files

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.conversations.files({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

DELETE elevenlabs.v1.convai.conversations.files.delete

DELETE https://api.elevenlabs.io/v1/convai/conversations/{conversationId}/files/{fileId}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.conversations.files.delete({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.conversations.get

GET https://api.elevenlabs.io/v1/convai/conversations/{conversationId}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.conversations.get({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.conversations.list

GET https://api.elevenlabs.io/v1/convai/conversations

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.conversations.list({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.conversations.messages.smartSearch

GET https://api.elevenlabs.io/v1/convai/conversations/messages/smart-search

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.conversations.messages.smartSearch({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.conversations.messages.textSearch

GET https://api.elevenlabs.io/v1/convai/conversations/messages/text-search

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.conversations.messages.textSearch({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.conversations.sipMessages

GET https://api.elevenlabs.io/v1/convai/conversations/{conversationId}/sip-messages

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.conversations.sipMessages({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.conversations.tags

POST https://api.elevenlabs.io/v1/convai/conversations/{conversationId}/tags

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.conversations.tags({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

DELETE elevenlabs.v1.convai.conversations.tags.unassign

DELETE https://api.elevenlabs.io/v1/convai/conversations/{conversationId}/tags/{tagId}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.conversations.tags.unassign({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.environmentVariables.create

POST https://api.elevenlabs.io/v1/convai/environment-variables

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.environmentVariables.create({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.environmentVariables.get

GET https://api.elevenlabs.io/v1/convai/environment-variables/{envVarId}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.environmentVariables.get({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.environmentVariables.list

GET https://api.elevenlabs.io/v1/convai/environment-variables

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.environmentVariables.list({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

PATCH elevenlabs.v1.convai.environmentVariables.update

PATCH https://api.elevenlabs.io/v1/convai/environment-variables/{envVarId}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.environmentVariables.update({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.exotel.outboundCall

POST https://api.elevenlabs.io/v1/convai/exotel/outbound-call

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.exotel.outboundCall({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.knowledgeBase.bulkMove

POST https://api.elevenlabs.io/v1/convai/knowledge-base/bulk-move

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.knowledgeBase.bulkMove({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.knowledgeBase.chunks

GET https://api.elevenlabs.io/v1/convai/knowledge-base/{documentationId}/chunks

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.knowledgeBase.chunks({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.knowledgeBase.chunks.get

GET https://api.elevenlabs.io/v1/convai/knowledge-base/{documentationId}/chunk/{chunkId}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.knowledgeBase.chunks.get({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.knowledgeBase.content

GET https://api.elevenlabs.io/v1/convai/knowledge-base/{documentationId}/content

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.knowledgeBase.content({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

DELETE elevenlabs.v1.convai.knowledgeBase.delete

DELETE https://api.elevenlabs.io/v1/convai/knowledge-base/{documentationId}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.knowledgeBase.delete({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.knowledgeBase.dependentAgents

GET https://api.elevenlabs.io/v1/convai/knowledge-base/{documentationId}/dependent-agents

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.knowledgeBase.dependentAgents({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.knowledgeBase.file

POST https://api.elevenlabs.io/v1/convai/knowledge-base/file

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.knowledgeBase.file({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.knowledgeBase.folder

POST https://api.elevenlabs.io/v1/convai/knowledge-base/folder

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.knowledgeBase.folder({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.knowledgeBase.get

GET https://api.elevenlabs.io/v1/convai/knowledge-base/{documentationId}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.knowledgeBase.get({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.knowledgeBase.list

GET https://api.elevenlabs.io/v1/convai/knowledge-base

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.knowledgeBase.list({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.knowledgeBase.move

POST https://api.elevenlabs.io/v1/convai/knowledge-base/{documentId}/move

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.knowledgeBase.move({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.knowledgeBase.ragIndex

GET https://api.elevenlabs.io/v1/convai/knowledge-base/rag-index

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.knowledgeBase.ragIndex();

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.knowledgeBase.ragIndex.batch

POST https://api.elevenlabs.io/v1/convai/knowledge-base/rag-index

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.knowledgeBase.ragIndex.batch({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.knowledgeBase.ragIndex.compute

POST https://api.elevenlabs.io/v1/convai/knowledge-base/{documentationId}/rag-index

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.knowledgeBase.ragIndex.compute({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

DELETE elevenlabs.v1.convai.knowledgeBase.ragIndex.delete

DELETE https://api.elevenlabs.io/v1/convai/knowledge-base/{documentationId}/rag-index/{ragIndexId}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.knowledgeBase.ragIndex.delete({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.knowledgeBase.ragIndex.get

GET https://api.elevenlabs.io/v1/convai/knowledge-base/{documentationId}/rag-index

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.knowledgeBase.ragIndex.get({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.knowledgeBase.refresh

POST https://api.elevenlabs.io/v1/convai/knowledge-base/{documentationId}/refresh

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.knowledgeBase.refresh({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.knowledgeBase.search

GET https://api.elevenlabs.io/v1/convai/knowledge-base/search

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.knowledgeBase.search({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.knowledgeBase.sourceFileUrl

GET https://api.elevenlabs.io/v1/convai/knowledge-base/{documentationId}/source-file-url

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.knowledgeBase.sourceFileUrl({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.knowledgeBase.summaries

GET https://api.elevenlabs.io/v1/convai/knowledge-base/summaries

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.knowledgeBase.summaries({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.knowledgeBase.text

POST https://api.elevenlabs.io/v1/convai/knowledge-base/text

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.knowledgeBase.text({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

PATCH elevenlabs.v1.convai.knowledgeBase.update

PATCH https://api.elevenlabs.io/v1/convai/knowledge-base/{documentationId}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.knowledgeBase.update({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

PATCH elevenlabs.v1.convai.knowledgeBase.updateFile

PATCH https://api.elevenlabs.io/v1/convai/knowledge-base/{documentationId}/update-file

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.knowledgeBase.updateFile({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.knowledgeBase.url

POST https://api.elevenlabs.io/v1/convai/knowledge-base/url

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.knowledgeBase.url({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.llm.list

GET https://api.elevenlabs.io/v1/convai/llm/list

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.llm.list();

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.llmUsage.calculate

POST https://api.elevenlabs.io/v1/convai/llm-usage/calculate

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.llmUsage.calculate({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.mcpServers.create

POST https://api.elevenlabs.io/v1/convai/mcp-servers

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.mcpServers.create({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

DELETE elevenlabs.v1.convai.mcpServers.delete

DELETE https://api.elevenlabs.io/v1/convai/mcp-servers/{mcpServerId}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.mcpServers.delete({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.mcpServers.get

GET https://api.elevenlabs.io/v1/convai/mcp-servers/{mcpServerId}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.mcpServers.get({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.mcpServers.list

GET https://api.elevenlabs.io/v1/convai/mcp-servers

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.mcpServers.list();

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.mcpServers.toolApprovals.create

POST https://api.elevenlabs.io/v1/convai/mcp-servers/{mcpServerId}/tool-approvals

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.mcpServers.toolApprovals.create({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

DELETE elevenlabs.v1.convai.mcpServers.toolApprovals.delete

DELETE https://api.elevenlabs.io/v1/convai/mcp-servers/{mcpServerId}/tool-approvals/{toolName}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.mcpServers.toolApprovals.delete({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.mcpServers.toolConfigs.create

POST https://api.elevenlabs.io/v1/convai/mcp-servers/{mcpServerId}/tool-configs

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.mcpServers.toolConfigs.create({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

DELETE elevenlabs.v1.convai.mcpServers.toolConfigs.delete

DELETE https://api.elevenlabs.io/v1/convai/mcp-servers/{mcpServerId}/tool-configs/{toolName}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.mcpServers.toolConfigs.delete({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.mcpServers.toolConfigs.get

GET https://api.elevenlabs.io/v1/convai/mcp-servers/{mcpServerId}/tool-configs/{toolName}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.mcpServers.toolConfigs.get({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

PATCH elevenlabs.v1.convai.mcpServers.toolConfigs.update

PATCH https://api.elevenlabs.io/v1/convai/mcp-servers/{mcpServerId}/tool-configs/{toolName}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.mcpServers.toolConfigs.update({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.mcpServers.tools

GET https://api.elevenlabs.io/v1/convai/mcp-servers/{mcpServerId}/tools

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.mcpServers.tools({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

PATCH elevenlabs.v1.convai.mcpServers.update

PATCH https://api.elevenlabs.io/v1/convai/mcp-servers/{mcpServerId}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.mcpServers.update({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.phoneNumbers.create

POST https://api.elevenlabs.io/v1/convai/phone-numbers

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.phoneNumbers.create({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

DELETE elevenlabs.v1.convai.phoneNumbers.delete

DELETE https://api.elevenlabs.io/v1/convai/phone-numbers/{phoneNumberId}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.phoneNumbers.delete({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.phoneNumbers.get

GET https://api.elevenlabs.io/v1/convai/phone-numbers/{phoneNumberId}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.phoneNumbers.get({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.phoneNumbers.list

GET https://api.elevenlabs.io/v1/convai/phone-numbers

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.phoneNumbers.list({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

GET elevenlabs.v1.convai.phoneNumbers.sipMessages

GET https://api.elevenlabs.io/v1/convai/phone-numbers/{phoneNumberId}/sip-messages

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.phoneNumbers.sipMessages({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

PATCH elevenlabs.v1.convai.phoneNumbers.update

PATCH https://api.elevenlabs.io/v1/convai/phone-numbers/{phoneNumberId}

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.phoneNumbers.update({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

POST elevenlabs.v1.convai.secrets.create

POST https://api.elevenlabs.io/v1/convai/secrets

Cost tier: expensive

Upstream docs ↗

const res = await elevenlabs.v1.convai.secrets.create({ /* ... */ });

Source: packages/provider/elevenlabs/src/convai.ts

DELETE elevenlabs.v1.convai.secrets.delete

DELETE https://api.elevenlabs.io/v1/convai/secrets/{secretId}

Cost tier: expensive

[Upstream docs ↗](https://elevenlabs.io/docs/api-reference/workspa

版本与发布记录

@apicity/elevenlabs 共发布 90 个版本,首次发布于 2026/05/10;过去 12 个月发布了 90 个版本。

版本发布日期距今
0.27.0latest2026/11/06今天
0.26.02026/11/051 天前
0.25.02026/11/033 天前
0.24.12026/11/024 天前
0.24.02026/11/014 天前
0.23.12026/11/015 天前

关于 @apicity/elevenlabs 的常见问题

@apicity/elevenlabs 是什么?

ElevenLabs provider for sound effect generation, text-to-speech, and audio APIs.

如何安装 @apicity/elevenlabs?

在项目目录运行 npm install @apicity/elevenlabs,或使用 pnpm add / yarn add / bun add。

@apicity/elevenlabs 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@apicity/elevenlabs 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@apicity/elevenlabs 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=18.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@apicity/elevenlabs 可以商用吗?

@apicity/elevenlabs 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@apicity/elevenlabs 的下载量有多少?

根据 npm 官方下载统计,@apicity/elevenlabs 在 2026/10/06 – 2026/11/04 这 30 天内被下载 4,183 次,日均约 139 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@apicity/elevenlabs 还在维护吗?

最新版本 0.27.0 发布于 2026/11/06(今天);至今共发布 90 个版本,其中过去 12 个月发布了 90 个;首次发布于 2026/05/10。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。