AP
Agent Provider Depot
Opinionated picks for agents
OpenAPI

Kit · 2026-10-03

Voice agent

voice

Hears or speaks on a call or a realtime channel, and confirms account-changing actions before they run.

Needs below are the JTBD ids already listed on this class, capped at 6. The pick is the current Depot Pick. The cheapest line is that job's matching sourced SKU, or unavailable. A free row is listed only when its jtbd ids include that job. This page does not rescore. cost=free does not hide that pick and does not turn a cheap paid SKU into a free one.

GET /api/kit?class=voice&cost=free · ?cost=free · all kits · class JSON

First actions

  1. /api/hub
  2. /api/decide?jtbd=voice-agents
  3. /api/quote?jtbd=voice-agents
  4. /api/kit?class=voice&cost=free
  5. /api/failures

Needs

Jobs: voice-agents, voice-agent-platform, speech-to-text, speech-synthesis, realtime-tts, production-stt, agent-pstn-telephony (omitted from this kit), multilingual-stt (omitted from this kit)

Class freeKinds field (not used to attach free rows): free_speech

  • A transcript the caller can correct
  • Confirmation before an account change

voice-agents

Depot Pick: elevenlabs · score as of 2026-09-14 · /api/jtbds/voice-agents

Depot Pick for voice-agents: elevenlabs (asOf 2026-09-14). See GET /api/jtbds/voice-agents + GET /api/methodology.

pickIsNotPriceWinner: true

Cheapest matching SKU: vapi · Vapi hosting · 0.05 usd_per_minute · not a per-million-token rate. min sourced voice-agent hosting minute among candidates; usd_per_minute only; not speech-to-text; not a speech-engine minute; not a chat $/1M rate; not quality-adjusted

Pick is not a price winner. Cheapest matching USD per voice-agent minute among candidates is vapi at 0.05. The pick has no matching sourced price. Chat input $/1M was not borrowed.

Free-only recommendation

mode: free_only · paid pick stays elevenlabs. Not a free resource. A cheap paid SKU is not in this list.

Free resources

freeMatch: jtbd

voice-agent-platform

Depot Pick: vapi · score as of 2026-09-14 · /api/jtbds/voice-agent-platform

Depot Pick for voice-agent-platform: vapi (asOf 2026-09-14). See GET /api/jtbds/voice-agent-platform + GET /api/methodology.

pickIsNotPriceWinner: false

Cheapest matching SKU: vapi · Vapi hosting · 0.05 usd_per_minute · not a per-million-token rate. min sourced voice-agent hosting minute among candidates; usd_per_minute only; not speech-to-text; not a speech-engine minute; not a chat $/1M rate; not quality-adjusted

Pick is the cheapest matching USD per voice-agent minute among candidates (0.05).

Free-only recommendation

mode: free_only · paid pick stays vapi. Not a free resource. A cheap paid SKU is not in this list.

no_free_resource_for_job

Free resources

freeMatch: none

none

speech-to-text

Depot Pick: deepgram · score as of 2026-10-19 · /api/jtbds/speech-to-text

Depot Pick for speech-to-text: deepgram (asOf 2026-10-19). See GET /api/jtbds/speech-to-text + GET /api/methodology.

pickIsNotPriceWinner: true

Cheapest matching SKU: cloudflare-workers-ai · @cf/openai/whisper audio minute · 0.0005 usd_per_minute · not a per-million-token rate. min sourced speech-to-text SKU among candidates; usd_per_minute only; not a chat $/1M rate; not quality-adjusted

Pick is not a price winner. deepgram matching USD per minute is 0.0043; cheapest among candidates is cloudflare-workers-ai at 0.0005.

Free-only recommendation

mode: free_only · paid pick stays deepgram. Not a free resource. A cheap paid SKU is not in this list.

Free resources

freeMatch: jtbd

speech-synthesis

Depot Pick: elevenlabs · score as of 2026-09-14 · /api/jtbds/speech-synthesis

Depot Pick for speech-synthesis: elevenlabs (asOf 2026-09-14). See GET /api/jtbds/speech-synthesis + GET /api/methodology.

pickIsNotPriceWinner: true

Cheapest matching SKU: deepgram · Aura-2 · 0.03 usd_per_1k_characters · not a per-million-token rate. min sourced speech-synthesis SKU among candidates; usd_per_1k_characters only; not a chat $/1M rate; not quality-adjusted

Pick is not a price winner. elevenlabs matching USD per 1k characters is 0.04; cheapest among candidates is deepgram at 0.03.

Free-only recommendation

mode: free_only · paid pick stays elevenlabs. Not a free resource. A cheap paid SKU is not in this list.

Free resources

freeMatch: jtbd

realtime-tts

Depot Pick: cartesia · score as of 2026-09-14 · /api/jtbds/realtime-tts

Depot Pick for realtime-tts: cartesia (asOf 2026-09-14). See GET /api/jtbds/realtime-tts + GET /api/methodology.

pickIsNotPriceWinner: true

Cheapest matching SKU: deepgram · Aura-2 · 0.03 usd_per_1k_characters · not a per-million-token rate. min sourced speech-synthesis SKU among candidates; usd_per_1k_characters only; not a chat $/1M rate; not quality-adjusted

Pick is not a price winner. Cheapest matching USD per 1k characters among candidates is deepgram at 0.03. The pick has no matching sourced price. Chat input $/1M was not borrowed.

Free-only recommendation

mode: free_only · paid pick stays cartesia. Not a free resource. A cheap paid SKU is not in this list.

Free resources

freeMatch: jtbd

production-stt

Depot Pick: deepgram · score as of 2026-10-19 · /api/jtbds/production-stt

Depot Pick for production-stt: deepgram (asOf 2026-10-19). See GET /api/jtbds/production-stt + GET /api/methodology.

pickIsNotPriceWinner: false

Cheapest matching SKU: deepgram · Nova-3 Monolingual pre-recorded speech-to-text · 0.0043 usd_per_minute · not a per-million-token rate. min sourced speech-to-text SKU among candidates; usd_per_minute only; not a chat $/1M rate; not quality-adjusted

Only 1 candidate has a matching USD per minute; nothing was compared, so pickIsPriceWinner is null.

Free-only recommendation

mode: free_only · paid pick stays deepgram. Not a free resource. A cheap paid SKU is not in this list.

Free resources

freeMatch: jtbd

Failure modes

  • Silent truncation silent-truncation

    Tools must return whether the payload was truncated and how long the original was. Fail the task if the answer depends on the missing span.

  • Identity confusion identity-confusion

    Bind every tool call to a user or tenant id. Refuse the call if that id changed mid-task. For a public bot, the operator owns the words the bot shows.

  • Over-refusal over-refusal

    Log refusals separately from successes. Review a sample against the written policy. Do not treat a refusal as a pass, and do not weaken a safety check to raise the pass rate.

  • Non-determinism non-determinism

    Run the task more than once and compare the end state, not a single transcript. Record the trial count next to any success rate you cite.

  • Partial tool success partial-tool-success

    Require a per-item status and a failure count. Success for the task requires the failed count to be zero or explicitly handed to a retry queue.

  • Confirmation skip confirmation-skip

    Gate those tool names on an approval id recorded before the call. A missing approval is a failure even if the downstream tool returns success.

  • Runaway spend runaway-spend

    Set a budget and a tool-call cap per task. Alert when spend jumps. Stop the run at the cap instead of summarizing a partial trace as success.

Case studies

1 related.

/api/case-studies?class=voice