npm.io
0.2.0 • Published 8h ago

@eldritchlogic/bland-ai-sdk

Licence
MIT
Version
0.2.0
Deps
0
Size
2.9 MB
Vulns
0
Weekly
0

@eldritchlogic/bland-ai-sdk

Unofficial TypeScript SDK for the Bland AI API with full coverage of every documented endpoint — all 329 routes across calls, conversational pathways, voices, TTS, SMS, knowledge bases, evals, agent testing, memory, SIP/BYOT trunking, triage, organizations, the v2 batches/tools APIs, and more.

  • Complete: every route on docs.bland.ai has a typed method (enforced by an automated coverage test).
  • Typed: request params and responses are typed from the official docs, with JSDoc on every method and field.
  • Zero dependencies: built on the global fetch; works in Node ≥ 18.17, Bun, Deno, and modern browsers.
  • Dual module: ESM and CJS builds with full .d.ts declarations.

Install

npm install @eldritchlogic/bland-ai-sdk

Quickstart

import BlandAI from "@eldritchlogic/bland-ai-sdk";

const bland = new BlandAI({ apiKey: process.env.BLAND_API_KEY });

// Send a phone call
const { call_id } = await bland.calls.send({
  phone_number: "+15555555555",
  task: "Call the customer, confirm their appointment for tomorrow at 10am.",
  voice: "maya",
});

// Fetch its details + transcript later
const call = await bland.calls.get(call_id);
console.log(call.concatenated_transcript);

Configuration

const bland = new BlandAI({
  apiKey: "sk-...",              // or set BLAND_API_KEY in the environment
  baseUrl: "https://api.bland.ai", // or https://us.api.bland.ai / https://eu.api.bland.ai
  encryptedKey: "...",           // BYOT (Bring Your Own Twilio) key, sent on every request
  orgId: "...",                  // sent as x-bland-org-id on every request
  timeoutMs: 60_000,             // per-request timeout (default 60s)
  maxRetries: 2,                 // GET-only retries on 408/429/5xx (default 2)
  fetch: customFetch,            // bring your own fetch implementation
  defaultHeaders: { ... },       // merged into every request
});

Every method also accepts a final options argument for per-request control:

await bland.calls.list({ limit: 10 }, {
  signal: abortController.signal,
  timeoutMs: 10_000,
  headers: { "x-custom": "1" },
  encryptedKey: "per-request-byot-key",
});

Error handling

import { BlandAPIError, BlandTimeoutError, BlandConnectionError } from "@eldritchlogic/bland-ai-sdk";

try {
  await bland.calls.send({ phone_number: "+1555", task: "..." });
} catch (err) {
  if (err instanceof BlandAPIError) {
    console.error(err.status, err.code, err.message, err.body);
  } else if (err instanceof BlandTimeoutError) {
    // request exceeded timeoutMs
  } else if (err instanceof BlandConnectionError) {
    // network failure (DNS, reset, ...)
  }
}

Resources

Client property Area
bland.calls Send/list/stop calls, analysis, recordings, live transcript streams
bland.pathways Conversational pathways: CRUD, versions, folders, chat, AI generation
bland.evals Evals platform: agents, runs, workbench, templates, status
bland.agentTesting Test scenarios, runs, batches, simulation sets, tornado
bland.voices Voice presets, cloning, samples, settings, ratings
bland.speak Text-to-speech generation and streaming, TTS models
bland.sms SMS conversations, sending, batches, numbers, webhooks
bland.inboundNumbers Inbound number purchase and configuration
bland.knowledge Knowledge bases: learn from text/files/web, crawl, chat
bland.vectors Legacy vector knowledge bases, media/text upload
bland.memory Persistent agent memory stores and users
bland.sip SIP / BYOT trunking, discovery, porting, test calls
bland.triage Issue triage: issues, flags, relations, comments, categories
bland.personas Personas, versions, inbound phone attachment
bland.widgets Web call widgets, threads, custom components
bland.organizations Org management, members, permissions, billing, versions
bland.account Account details, audit logs, encrypted (BYOT) keys
bland.tools Custom tools agents can call mid-conversation
bland.webAgents Web agents
bland.contacts Contacts CRUD, find, merge, resolve
bland.alarms Monitoring alarms and history
bland.guardRails Agent guard rails
bland.citationSchemas Post-call citation schemas
bland.blockedNumbers Blocked numbers
bland.customDialingPools Custom outbound dialing pools
bland.translationSessions Live translation sessions
bland.postcallWebhooks Post-call webhooks
bland.prompts Saved prompts
bland.v2 API v2: call batches (v2.batches) and integration tools (v2.tools)

Undocumented or brand-new endpoint? Use the escape hatch:

await bland.request({ method: "POST", path: "/v1/some/new/endpoint", body: { ... } });

WebSocket streams

Two Bland features are WebSocket-based. The SDK ships the message types and the token/URL plumbing; bring your own WebSocket (native in browsers, Node ≥ 21, Bun, or the ws package):

// Live post-transfer transcript
const { data } = await bland.calls.getTranscriptStreamUrl(callId);
const ws = new WebSocket(data.url);

// Bidirectional streaming TTS
const wsUrl = bland.speak.streamInputUrl(); // wss://api.bland.ai/v1/speak/stream-input

Full API coverage

Every documented Bland AI endpoint and the SDK method that calls it. Generated from source by scripts/gen-api-table.mjs; a test suite asserts the mapping stays complete.

Show all endpoints
SDK method Endpoint
Account.listAuditLogs() GET /v1/audit/logs
Account.get() GET /v1/me
Account.createEncryptedKey() POST /v1/accounts
Account.deleteEncryptedKey() POST /v1/accounts/delete
AgentTesting.deleteScenario() DELETE /v1/agent-testing/scenarios/{id}
AgentTesting.getAnalytics() GET /v1/agent-testing/analytics/{pathwayId}
AgentTesting.getEnhancedAnalytics() GET /v1/agent-testing/analytics/{pathwayId}/enhanced
AgentTesting.getBatch() GET /v1/agent-testing/batches/{id}
AgentTesting.listRuns() GET /v1/agent-testing/runs
AgentTesting.getRun() GET /v1/agent-testing/runs/{id}
AgentTesting.listScenarios() GET /v1/agent-testing/scenarios
AgentTesting.getScenario() GET /v1/agent-testing/scenarios/{id}
AgentTesting.getSimulationSet() GET /v1/agent-testing/simulation-sets/{id}
AgentTesting.listTemplates() GET /v1/agent-testing/templates
AgentTesting.getTornadoStatus() GET /v1/agent-testing/tornado/{id}/status
AgentTesting.getActiveTornado() GET /v1/agent-testing/tornado/active
AgentTesting.batchRun() POST /v1/agent-testing/batch-run
AgentTesting.analyzeRun() POST /v1/agent-testing/runs/{id}/analyze
AgentTesting.createScenario() POST /v1/agent-testing/scenarios
AgentTesting.runScenario() POST /v1/agent-testing/scenarios/{id}/run
AgentTesting.generateScenarioFromCall() POST /v1/agent-testing/scenarios/generate-from-call
AgentTesting.createSimulationSet() POST /v1/agent-testing/simulation-sets
AgentTesting.cloneTemplate() POST /v1/agent-testing/templates/{id}/clone
AgentTesting.cancelTornado() POST /v1/agent-testing/tornado/{id}/cancel
AgentTesting.startTornado() POST /v1/agent-testing/tornado/start
AgentTesting.updateScenario() PUT /v1/agent-testing/scenarios/{id}
Alarms.delete() DELETE /v1/alarms/{id}
Alarms.list() GET /v1/alarms
Alarms.get() GET /v1/alarms/{id}
Alarms.listEvents() GET /v1/alarms/history
Alarms.update() PATCH /v1/alarms/{id}
Alarms.create() POST /v1/alarms
Alarms.notify() POST /v1/alarms/{id}/notify
Alarms.toggle() POST /v1/alarms/{id}/toggle
Alarms.trigger() POST /v1/alarms/{id}/trigger
BlockedNumbers.delete() DELETE /v1/blocked_numbers/{block_id}
BlockedNumbers.list() GET /v1/blocked_numbers
BlockedNumbers.get() GET /v1/blocked_numbers/{block_id}
BlockedNumbers.create() POST /v1/blocked_numbers
BlockedNumbers.edit() POST /v1/blocked_numbers/{block_id}/edit
Calls.list() GET /v1/calls
Calls.get() GET /v1/calls/{call_id}
Calls.getCorrectedTranscript() GET /v1/calls/{call_id}/correct
Calls.listActive() GET /v1/calls/active
Calls.getEventStream() GET /v1/event_stream/{call_id}
Calls.getRecording() GET /v1/recordings/{call_id}
Calls.send() POST /v1/calls
Calls.sendSimple() POST /v1/calls
Calls.sendPathway() POST /v1/calls
Calls.analyze() POST /v1/calls/{call_id}/analyze
Calls.listen() POST /v1/calls/{call_id}/listen
Calls.stop() POST /v1/calls/{call_id}/stop
Calls.getTranscriptStreamUrl() POST /v1/calls/{call_id}/transcript-stream/token
Calls.stopAll() POST /v1/calls/active/stop
Calls.transfer() POST /v1/calls/active/transfer
CitationSchemas.get() GET /v1/citation_schemas/
CitationSchemas.backfillStatus() GET /v1/citation_schemas/backfill/status/{workflow_id}
CitationSchemas.list() GET /v1/citation_schemas/list
CitationSchemas.update() PATCH /v1/citation_schemas/
CitationSchemas.create() POST /v1/citation_schemas/
CitationSchemas.backfill() POST /v1/citation_schemas/backfill
Contacts.list() GET /v1/contacts
Contacts.get() GET /v1/contacts/{contact_id}
Contacts.update() PATCH /v1/contacts/{contact_id}
Contacts.find() POST /v1/contacts/find
Contacts.merge() POST /v1/contacts/merge
Contacts.resolve() POST /v1/contacts/resolve
CustomDialingPools.list() GET /v1/custom-dialing-pools
CustomDialingPools.get() GET /v1/custom-dialing-pools/{pool_id}
CustomDialingPools.create() POST /v1/custom-dialing-pools
CustomDialingPools.update() POST /v1/custom-dialing-pools/{pool_id}/update
Evals.status() GET /v1/evals/status
EvalsAgents.delete() DELETE /v1/evals/agents/{eval_agent_id}
EvalsAgents.list() GET /v1/evals/agents
EvalsAgents.get() GET /v1/evals/agents/{eval_agent_id}
EvalsAgents.listVersions() GET /v1/evals/agents/{eval_agent_id}/versions
EvalsAgents.getVersion() GET /v1/evals/agents/{eval_agent_id}/versions/{version_id}
EvalsAgents.update() PATCH /v1/evals/agents/{eval_agent_id}
EvalsAgents.updateVersion() PATCH /v1/evals/agents/{eval_agent_id}/versions/{version_id}
EvalsAgents.create() POST /v1/evals/agents
EvalsAgents.publish() POST /v1/evals/agents/{eval_agent_id}/publications
EvalsAgents.createVersion() POST /v1/evals/agents/{eval_agent_id}/versions
EvalsRuns.list() GET /v1/evals/runs
EvalsRuns.get() GET /v1/evals/runs/{run_id}
EvalsRuns.listAgentResults() GET /v1/evals/runs/{run_id}/agent-results
EvalsRuns.listAgentSnapshots() GET /v1/evals/runs/{run_id}/agent-snapshots
EvalsRuns.listCallResults() GET /v1/evals/runs/{run_id}/call-results
EvalsRuns.create() POST /v1/evals/runs
EvalsRuns.cancel() POST /v1/evals/runs/{run_id}/cancellations
EvalsRuns.estimate() POST /v1/evals/runs/estimates
EvalsTemplates.deleteUserTemplate() DELETE /v1/evals/user-templates/{id}
EvalsTemplates.listAgentTemplates() GET /v1/evals/agent-templates
EvalsTemplates.getAgentTemplate() GET /v1/evals/agent-templates/{template_key}
EvalsTemplates.listUserTemplates() GET /v1/evals/user-templates
EvalsTemplates.getUserTemplate() GET /v1/evals/user-templates/{id}
EvalsTemplates.updateUserTemplate() PATCH /v1/evals/user-templates/{id}
EvalsTemplates.createUserTemplate() POST /v1/evals/user-templates
EvalsWorkbench.delete() DELETE /v1/evals/workbench-setups/{setup_id}
EvalsWorkbench.list() GET /v1/evals/workbench-setups
EvalsWorkbench.get() GET /v1/evals/workbench-setups/{setup_id}
EvalsWorkbench.listVersions() GET /v1/evals/workbench-setups/{setup_id}/versions
EvalsWorkbench.getVersion() GET /v1/evals/workbench-setups/{setup_id}/versions/{version_id}
EvalsWorkbench.update() PATCH /v1/evals/workbench-setups/{setup_id}
EvalsWorkbench.updateVersion() PATCH /v1/evals/workbench-setups/{setup_id}/versions/{version_id}
EvalsWorkbench.create() POST /v1/evals/workbench-setups
EvalsWorkbench.publish() POST /v1/evals/workbench-setups/{setup_id}/publications
EvalsWorkbench.createVersion() POST /v1/evals/workbench-setups/{setup_id}/versions
GuardRails.delete() DELETE /v1/guard_rails/{guard_rail_id}
GuardRails.list() GET /v1/guard_rails
GuardRails.get() GET /v1/guard_rails/{guard_rail_id}
GuardRails.update() PATCH /v1/guard_rails/{guard_rail_id}
GuardRails.create() POST /v1/guard_rails
InboundNumbers.list() GET /v1/inbound
InboundNumbers.get() GET /v1/inbound/{phone_number}
InboundNumbers.updateLabel() POST /inbound/update_label
InboundNumbers.purchase() POST /numbers/purchase
InboundNumbers.update() POST /v1/inbound/{phone_number}
InboundNumbers.delete() POST /v1/inbound/{phone_number}/delete
InboundNumbers.insert() POST /v1/inbound/insert
InboundNumbers.createSession() POST /v1/inbound/session
Knowledge.delete() DELETE /v1/knowledge/{knowledge_base_id}
Knowledge.list() GET /v1/knowledge
Knowledge.get() GET /v1/knowledge/{knowledge_base_id}
Knowledge.chat() POST /v1/knowledge/chat
Knowledge.crawl() POST /v1/knowledge/crawl
Knowledge.learnText() POST /v1/knowledge/learn
Knowledge.learnFile() POST /v1/knowledge/learn
Knowledge.learnWeb() POST /v1/knowledge/learn
Knowledge.update() PUT /v1/knowledge/{knowledge_base_id}
Memory.list() GET /v1/memory
Memory.get() GET /v1/memory/{memory_id}
Memory.getChanges() GET /v1/memory/changes
Memory.getContact() GET /v1/memory/contact/{memory_id}
Memory.listContactMessages() GET /v1/memory/contact/{memory_id}/messages
Memory.getContext() GET /v1/memory/context
Memory.updateContactFacts() PATCH /v1/memory/contact/{memory_id}/facts
Memory.updateContactSummary() PATCH /v1/memory/contact/{memory_id}/summary
Memory.addCall() POST /v1/memory/{memory_id}/add-call
Memory.addUser() POST /v1/memory/{memory_id}/add-user
Memory.deleteCall() POST /v1/memory/{memory_id}/call/{call_id}/delete
Memory.delete() POST /v1/memory/{memory_id}/delete
Memory.update() POST /v1/memory/{memory_id}/update
Memory.getUser() POST /v1/memory/{memory_id}/user
Memory.deleteUser() POST /v1/memory/{memory_id}/user/delete
Memory.searchUserCalls() POST /v1/memory/{memory_id}/user/search
Memory.updateUser() POST /v1/memory/{memory_id}/user/update
Memory.createContact() POST /v1/memory/contact
Memory.create() POST /v1/memory/create
Memory.setEnabled() POST /v1/memory/enable
Memory.resetContact() POST /v1/memory/reset
Organizations.delete() DELETE /v1/orgs/{org_id}
Organizations.leave() DELETE /v1/orgs/self/leave
Organizations.get() GET /v1/orgs/{org_id}
Organizations.getBilling() GET /v1/orgs/{org_id}/billing
Organizations.getBillingRefill() GET /v1/orgs/{org_id}/billing/refill
Organizations.listMembers() GET /v1/orgs/{org_id}/members
Organizations.getCurrentVersion() GET /v1/orgs/{org_id}/versions/{service}/current
Organizations.listVersions() GET /v1/orgs/{org_id}/versions/{service}/list
Organizations.listSelfMemberships() GET /v1/orgs/self/memberships
Organizations.updateMembers() PATCH /v1/orgs/{org_id}/members
Organizations.updateMemberPermissions() PATCH /v1/orgs/{org_id}/members/permissions
Organizations.updateProperties() PATCH /v1/orgs/{org_id}/properties
Organizations.updateVersion() PATCH /v1/orgs/{org_id}/versions/{service}
Organizations.create() POST /v1/orgs/create
Pathways.delete() DELETE /v1/pathway/{pathway_id}
Pathways.deleteVersion() DELETE /v1/pathway/{pathway_id}/version/{version_id}
Pathways.deleteFolder() DELETE /v1/pathway/folders/{folder_id}
Pathways.getNodeTestRun() GET /v1/node_tests/run/:id
Pathways.list() GET /v1/pathway
Pathways.get() GET /v1/pathway/{pathway_id}
Pathways.getVersion() GET /v1/pathway/{pathway_id}/version/{version_id}
Pathways.listVersions() GET /v1/pathway/{pathway_id}/versions
Pathways.getChat() GET /v1/pathway/chat/{id}
Pathways.listFolders() GET /v1/pathway/folders
Pathways.listFolderPathways() GET /v1/pathway/folders/{folder_id}/pathways
Pathways.getGenerateStatus() GET /v1/pathway/generate/status/{job_id}
Pathways.getSession() GET /v1/pathway/session
Pathways.updateFolder() PATCH /v1/pathway/folders/{folder_id}
Pathways.invokeNodeTest() POST /v1/node_tests/invoke
Pathways.update() POST /v1/pathway/{pathway_id}
Pathways.promote() POST /v1/pathway/{pathway_id}/publish
Pathways.createVersion() POST /v1/pathway/{pathway_id}/version
Pathways.updateVersion() POST /v1/pathway/{pathway_id}/version/{version_number}
Pathways.sendChatMessage() POST /v1/pathway/chat/{id}
Pathways.createChat() POST /v1/pathway/chat/create
Pathways.create() POST /v1/pathway/create
Pathways.createFolder() POST /v1/pathway/folders
Pathways.moveToFolder() POST /v1/pathway/folders/move
Pathways.generate() POST /v1/pathway/generate
Personas.delete() DELETE /v1/personas/{persona_id}
Personas.list() GET /v1/personas
Personas.get() GET /v1/personas/{persona_id}
Personas.listVersions() GET /v1/personas/{persona_id}/versions
Personas.getVersion() GET /v1/personas/{persona_id}/versions/{version_id}
Personas.update() PATCH /v1/personas/{persona_id}
Personas.updateNumberSettings() PATCH /v1/personas/{persona_id}/inbound/{phone_number}/settings
Personas.create() POST /v1/personas
Personas.attachNumbers() POST /v1/personas/{persona_id}/inbound/attach
Personas.detachNumbers() POST /v1/personas/{persona_id}/inbound/detach
Personas.promoteVersion() POST /v1/personas/{persona_id}/versions/promote
PostCallWebhooks.get() GET /v1/postcall/webhooks/{call_id}
PostCallWebhooks.create() POST /v1/postcall/webhooks/create
PostCallWebhooks.resend() POST /v1/postcall/webhooks/resend
Prompts.list() GET /v1/prompts
Prompts.get() GET /v1/prompts/{prompt_id}
Prompts.create() POST /v1/prompts
Sip.cancelPort() DELETE /v1/sip/port/{id}
Sip.getConfig() GET /v1/sip
Sip.getCallLogs() GET /v1/sip/calls
Sip.getDiscoveryStatus() GET /v1/sip/discover/status
Sip.getFirewallIps() GET /v1/sip/firewall-ips
Sip.generatePassword() GET /v1/sip/generate-password
Sip.listNumbers() GET /v1/sip/numbers
Sip.getOutboundSetup() GET /v1/sip/outbound-setup
Sip.listPortRequests() GET /v1/sip/port
Sip.checkPortability() GET /v1/sip/port/check
Sip.getTrunkHealth() GET /v1/sip/status
Sip.getTestCallStatus() GET /v1/sip/test-call/status
Sip.updateConfig() PATCH /v1/sip/config
Sip.attach() POST /v1/sip/attach
Sip.detach() POST /v1/sip/detach
Sip.discover() POST /v1/sip/discover
Sip.parseDestination() POST /v1/sip/parse-destination
Sip.uploadPortDocument() POST /v1/sip/port/document
Sip.initiatePort() POST /v1/sip/port/initiate
Sip.sendTestCall() POST /v1/sip/test-call
Sip.updateDirection() POST /v1/sip/update
Sms.deleteConversation() DELETE /v1/sms/conversations/{id}
Sms.deleteMessages() DELETE /v1/sms/conversations/{id}/messages
Sms.listConversations() GET /v1/sms/conversations
Sms.getConversationWebhook() GET /v1/sms/conversations/{conversationId}/webhook
Sms.getConversation() GET /v1/sms/conversations/{id}
Sms.listNumbers() GET /v1/sms/numbers
Sms.updateConversation() PATCH /v1/sms/conversations/{conversation_id}
Sms.analyze() POST /v1/sms/analyze
Sms.sendBatch() POST /v1/sms/batch
Sms.createConversation() POST /v1/sms/create
Sms.updateNumber() POST /v1/sms/number/update
Sms.send() POST /v1/sms/send
Speak.listModels() GET /v1/models
Speak.listGenerations() GET /v1/speak/samples
Speak.getGeneration() GET /v1/speak/samples/{id}
Speak.generate() POST /v1/speak
Speak.stream() POST /v1/speak/stream
Speak.mintStreamInputToken() POST /v1/speak/stream-input/token
Speak.streamInputUrl() WS wss://api.bland.ai/v1/speak/stream-input
Tools.delete() DELETE /v1/tools/{tool_id}
Tools.list() GET /v1/tools
Tools.get() GET /v1/tools/{tool_id}
Tools.create() POST /v1/tools
Tools.update() POST /v1/tools/{tool_id}
TranslationSessions.end() DELETE /v1/translation/sessions/{session_id}
TranslationSessions.get() GET /v1/translation/sessions/{session_id}
TranslationSessions.create() POST /v1/translation/sessions
Triage.deleteIssue() DELETE /v1/triage/issues/{id}
Triage.detachCall() DELETE /v1/triage/issues/{id}/calls/{call_id}
Triage.removeFlag() DELETE /v1/triage/issues/{id}/flags/{flag_id}
Triage.removeRelation() DELETE /v1/triage/issues/{id}/relations/{relation_id}
Triage.removeResource() DELETE /v1/triage/issues/{id}/resources/{resource_link_id}
Triage.listAgents() GET /v1/triage/agents
Triage.listCategories() GET /v1/triage/categories
Triage.listFlagTypes() GET /v1/triage/flag-types
Triage.listIssues() GET /v1/triage/issues
Triage.getIssue() GET /v1/triage/issues/{id}
Triage.listActivity() GET /v1/triage/issues/{id}/activity
Triage.getAffectedContext() GET /v1/triage/issues/{id}/affected
Triage.listFlags() GET /v1/triage/issues/{id}/flags
Triage.listRelations() GET /v1/triage/issues/{id}/relations
Triage.listResources() GET /v1/triage/issues/{id}/resources
Triage.updateIssue() PATCH /v1/triage/issues/{id}
Triage.createCategory() POST /v1/triage/categories
Triage.createIssue() POST /v1/triage/issues
Triage.createAgentSession() POST /v1/triage/issues/{id}/agent-sessions
Triage.promptNorm() POST /v1/triage/issues/{id}/agent-sessions/{session_id}/prompts
Triage.addComment() POST /v1/triage/issues/{id}/comments
Triage.addFlag() POST /v1/triage/issues/{id}/flags
Triage.linkRelatedIssue() POST /v1/triage/issues/{id}/relations
Triage.attachResource() POST /v1/triage/issues/{id}/resources
Triage.attachCall() PUT /v1/triage/issues/{id}/calls/{call_id}
Triage.markViewed() PUT /v1/triage/issues/{id}/view
V2Batches.get() GET /v2/batches/{batch_id}
V2Batches.logs() GET /v2/batches/{batch_id}/logs
V2Batches.list() GET /v2/batches/list
V2Batches.stop() POST /v2/batches/{batch_id}/stop
V2Batches.create() POST /v2/batches/create
V2Tools.list() GET /v2/tools
V2Tools.logs() GET /v2/tools/logs
V2Tools.logStats() GET /v2/tools/logs/stats
V2Tools.create() POST /v2/tools
V2Tools.update() POST /v2/tools/{tool_id}
Vectors.delete() DELETE /v1/knowledgebases/{vector_id}
Vectors.list() GET /v1/knowledgebases
Vectors.get() GET /v1/knowledgebases/{vector_id}
Vectors.update() PATCH /v1/knowledgebases/{vector_id}
Vectors.create() POST /v1/knowledgebases
Vectors.uploadText() POST /v1/knowledgebases/upload
Vectors.uploadMedia() POST /v1/knowledgebases/upload-media
Voices.delete() DELETE /v1/voices/{id}
Voices.deleteRating() DELETE /v1/voices/{id}/rate
Voices.deleteSamples() DELETE /v1/voices/{id}/samples
Voices.list() GET /v1/voices
Voices.get() GET /v1/voices/{id}
Voices.listSamples() GET /v1/voices/{id}/samples
Voices.getSample() GET /v1/voices/{id}/samples/{sample_id}
Voices.getSettings() GET /v1/voices/{id}/settings
Voices.listShared() GET /v1/voices/shared
Voices.updateConfig() PATCH /v1/voices/{id}/config
Voices.rename() PATCH /v1/voices/{id}/rename
Voices.updateSampleTranscriptions() PATCH /v1/voices/{id}/samples
Voices.rate() POST /v1/voices/{id}/rate
Voices.updateSettings() POST /v1/voices/{id}/settings
Voices.checkNameAvailability() POST /v1/voices/check_name_availability
Voices.clone() POST /v1/voices/clone
Voices.addLibraryVoice() POST /v1/voices/library/add/{id}
Voices.addSamples() POST /v1/voices/samples
WebAgents.list() GET /v1/agents
WebAgents.create() POST /v1/agents
WebAgents.update() POST /v1/agents/{agent_id}
WebAgents.authorize() POST /v1/agents/{agent_id}/authorize
WebAgents.delete() POST /v1/agents/{agent_id}/delete
Widgets.deleteCustomComponent() DELETE /v1/widget/custom_components/{id}
Widgets.get() GET /v1/widget/{id}
Widgets.getThreads() GET /v1/widget/{id}/threads
Widgets.listCustomComponents() GET /v1/widget/custom_components
Widgets.list() GET /v1/widgets
Widgets.update() PATCH /v1/widget/{id}
Widgets.updateCustomComponent() PATCH /v1/widget/custom_components/{id}
Widgets.create() POST /v1/widget
Widgets.sendLiveAgentMessage() POST /v1/widget/{id}/threads/{thread_id}/webhook
Widgets.createCustomComponent() POST /v1/widget/custom_components

License

MIT

Keywords