# APIFleet > Build, test and operate AI voice agents through the dashboard, REST API and MCP. Configure assistants, tools, knowledge and carrier routes, inspect calls and run conversation simulations. REST base: https://apifleet.dev, with Authorization: Bearer . MCP: https://apifleet.dev/mcp (stateless Streamable HTTP), using the same key. Keys apply to one workspace; no MCP OAuth flow is currently provided. ## API and MCP - [Getting started](https://apifleet.dev/docs#quickstart): Make a first authenticated request and configure an assistant. - [Authentication](https://apifleet.dev/docs/authentication): Workspace keys, permissions, cookies and throttling. - [Errors](https://apifleet.dev/docs/errors): HTTP failures, JSON-RPC errors, revisions, billing and retry behavior. - [MCP](https://apifleet.dev/docs/mcp): Tool discovery, client configuration and request/result examples. - [API reference](https://apifleet.dev/docs/api): All documented operations, parameters, effects and paired REST/MCP examples. - [OpenAPI 3.1](https://apifleet.dev/.well-known/openapi.json): The same REST operation catalog as a machine-readable schema. - [MCP discovery](https://apifleet.dev/.well-known/mcp.json): Transport address, authentication and tool names. - [Full reference](https://apifleet.dev/llms-full.txt): Complete API/MCP instructions plus public guides and comparisons. ## Help - [First assistant](https://apifleet.dev/docs#quickstart): Sign in, create a key and save an assistant before moving traffic. - [Assistant configuration](https://apifleet.dev/docs#assistants): Instructions, realtime or cascading pipelines, model, voice and revisions. - [Carrier routing](https://apifleet.dev/docs#providers): Connect a number through Telnyx, Twilio, Voximplant or VoIPCloud. - [Calls and recordings](https://apifleet.dev/docs#calls): Read logs, pagination, transcripts, recordings and waveform data. - [HTTP integrations](https://apifleet.dev/docs#tools): Configure tools and attach them to an assistant. - [Knowledge](https://apifleet.dev/docs#knowledge): Add documents and choose which assistant can use them. - [Conversation testing](https://apifleet.dev/docs#simulations): Personas, scenarios, evaluations and asynchronous runs. - [Webhooks](https://apifleet.dev/docs#webhooks): Verify signatures, handle retries and receive lifecycle events. - [Provider credentials](https://apifleet.dev/docs#credentials): Enter secrets in the dashboard or a trusted backend, outside model conversations. - [Costs and prepaid funding](https://apifleet.dev/docs#billing): USD 0.03 per connected AI minute plus provider/carrier usage; USD 10 minimum top-up. - [Your workspace](https://apifleet.dev/app/assistants): Sign in to manage resources; API keys apply to one workspace. ## Billing and permissions USD 0.03 per connected AI minute, billed per second, plus AI provider and carrier usage. Minimum prepaid top-up USD 10. No monthly subscription, trial or free credits. Customer-owned provider usage is not charged twice. Check the actual wallet and policy before paid work; consumers cannot select an internal exemption. Owners fund in /app/billing and enter provider secrets in /app/credentials. Workspace API keys grant full workspace access. Tools identify read, write, destructive and external effects. Paid MCP actions require confirm:true after user approval. REST-only secret entry, checkout and audio workflows are labeled below. Do not infer full dashboard/MCP parity or automatic retry safety. New workspace access is currently limited; contact mariano@apifleet.dev. ## MCP billing status check_entitlements takes {} and reads selected wallet/policy fields plus the funding path without making a payment or call. Other exact tool names, routes and examples appear below and in /docs/api. ## Endpoints ### Assistants - [List assistants](https://apifleet.dev/docs/api#list-assistants): GET /assistants (MCP tool list_assistants) - [Get assistant](https://apifleet.dev/docs/api#get-assistant): GET /assistants/{id} (MCP tool get_assistant) - [Create assistant](https://apifleet.dev/docs/api#create-assistant): POST /assistants (MCP tool create_assistant) - [Update assistant](https://apifleet.dev/docs/api#update-assistant): PATCH /assistants/{id} (MCP tool update_assistant) - [Delete assistant](https://apifleet.dev/docs/api#delete-assistant): DELETE /assistants/{id} (MCP tool delete_assistant) - [Set assistant tools](https://apifleet.dev/docs/api#set-assistant-tools): PUT /assistants/{id}/tools (MCP tool set_assistant_tools) - [Set assistant knowledge](https://apifleet.dev/docs/api#set-assistant-knowledge): PUT /assistants/{id}/knowledge (MCP tool set_assistant_knowledge) - [Create browser test token](https://apifleet.dev/docs/api#create-browser-test-token): POST /assistants/{id}/test-token (MCP tool create_browser_test_token) ### Phone numbers - [List numbers](https://apifleet.dev/docs/api#list-numbers): GET /numbers (MCP tool list_numbers) - [Bind number](https://apifleet.dev/docs/api#bind-number): PUT /numbers/{number} (MCP tool bind_number) - [Unbind number](https://apifleet.dev/docs/api#unbind-number): DELETE /numbers/{number} (MCP tool unbind_number) ### Calls - [List calls](https://apifleet.dev/docs/api#list-calls): GET /calls (MCP tool list_calls) - [Create outbound call](https://apifleet.dev/docs/api#create-outbound-call): POST /calls/outbound (MCP tool create_outbound_call) - [Get recording](https://apifleet.dev/docs/api#get-recording): GET /calls/{id}/recording (REST/dashboard workflow; no MCP tool) - [Get waveform](https://apifleet.dev/docs/api#get-waveform): GET /calls/{id}/waveform (MCP tool get_waveform) - [Delete recording](https://apifleet.dev/docs/api#delete-recording): DELETE /calls/{id}/recording (MCP tool delete_recording) ### HTTP tools - [List tools](https://apifleet.dev/docs/api#list-tools): GET /tools (MCP tool list_tools) - [Get tool](https://apifleet.dev/docs/api#get-tool): GET /tools/{id} (MCP tool get_tool) - [Create tool](https://apifleet.dev/docs/api#create-tool): POST /tools (MCP tool create_tool) - [Update tool](https://apifleet.dev/docs/api#update-tool): PATCH /tools/{id} (MCP tool update_tool) - [Delete tool](https://apifleet.dev/docs/api#delete-tool): DELETE /tools/{id} (MCP tool delete_tool) ### Knowledge - [List knowledge documents](https://apifleet.dev/docs/api#list-knowledge-documents): GET /knowledge (MCP tool list_knowledge_documents) - [Get knowledge document](https://apifleet.dev/docs/api#get-knowledge-document): GET /knowledge/{id} (MCP tool get_knowledge_document) - [Create knowledge document](https://apifleet.dev/docs/api#create-knowledge-document): POST /knowledge (MCP tool create_knowledge_document) - [Update knowledge document](https://apifleet.dev/docs/api#update-knowledge-document): PATCH /knowledge/{id} (MCP tool update_knowledge_document) - [Delete knowledge document](https://apifleet.dev/docs/api#delete-knowledge-document): DELETE /knowledge/{id} (MCP tool delete_knowledge_document) ### Webhooks - [List webhooks](https://apifleet.dev/docs/api#list-webhooks): GET /webhooks (MCP tool list_webhooks) - [Create webhook](https://apifleet.dev/docs/api#create-webhook): POST /webhooks (MCP tool create_webhook) - [Update webhook](https://apifleet.dev/docs/api#update-webhook): PATCH /webhooks/{id} (MCP tool update_webhook) - [Delete webhook](https://apifleet.dev/docs/api#delete-webhook): DELETE /webhooks/{id} (MCP tool delete_webhook) ### Simulation personas - [List simulation personas](https://apifleet.dev/docs/api#list-simulation-personas): GET /simulations/personas (MCP tool list_simulation_personas) - [Get simulation persona](https://apifleet.dev/docs/api#get-simulation-persona): GET /simulations/personas/{id} (MCP tool get_simulation_persona) - [Create simulation persona](https://apifleet.dev/docs/api#create-simulation-persona): POST /simulations/personas (MCP tool create_simulation_persona) - [Update simulation persona](https://apifleet.dev/docs/api#update-simulation-persona): PATCH /simulations/personas/{id} (MCP tool update_simulation_persona) - [Delete simulation persona](https://apifleet.dev/docs/api#delete-simulation-persona): DELETE /simulations/personas/{id} (MCP tool delete_simulation_persona) ### Simulation scenarios - [List simulation scenarios](https://apifleet.dev/docs/api#list-simulation-scenarios): GET /simulations/scenarios (MCP tool list_simulation_scenarios) - [Get simulation scenario](https://apifleet.dev/docs/api#get-simulation-scenario): GET /simulations/scenarios/{id} (MCP tool get_simulation_scenario) - [Create simulation scenario](https://apifleet.dev/docs/api#create-simulation-scenario): POST /simulations/scenarios (MCP tool create_simulation_scenario) - [Update simulation scenario](https://apifleet.dev/docs/api#update-simulation-scenario): PATCH /simulations/scenarios/{id} (MCP tool update_simulation_scenario) - [Delete simulation scenario](https://apifleet.dev/docs/api#delete-simulation-scenario): DELETE /simulations/scenarios/{id} (MCP tool delete_simulation_scenario) ### Simulations - [List simulations](https://apifleet.dev/docs/api#list-simulations): GET /simulations (MCP tool list_simulations) - [Get simulation](https://apifleet.dev/docs/api#get-simulation): GET /simulations/{id} (MCP tool get_simulation) - [Create simulation](https://apifleet.dev/docs/api#create-simulation): POST /simulations (MCP tool create_simulation) - [Update simulation](https://apifleet.dev/docs/api#update-simulation): PATCH /simulations/{id} (MCP tool update_simulation) - [Delete simulation](https://apifleet.dev/docs/api#delete-simulation): DELETE /simulations/{id} (MCP tool delete_simulation) ### Simulation runs - [List simulation runs](https://apifleet.dev/docs/api#list-simulation-runs): GET /simulations/runs (MCP tool list_simulation_runs) - [Get simulation run](https://apifleet.dev/docs/api#get-simulation-run): GET /simulations/runs/{id} (MCP tool get_simulation_run) - [Delete simulation run](https://apifleet.dev/docs/api#delete-simulation-run): DELETE /simulations/runs/{id} (MCP tool delete_simulation_run) - [Start simulation run](https://apifleet.dev/docs/api#start-simulation-run): POST /simulations/{id}/runs (MCP tool start_simulation_run) - [Start simulation batch](https://apifleet.dev/docs/api#start-simulation-batch): POST /simulations/runs/batch (MCP tool start_simulation_batch) ### Voice and speech - [List tts rates](https://apifleet.dev/docs/api#list-tts-rates): GET /tts/rates (MCP tool list_tts_rates) - [List tts voices](https://apifleet.dev/docs/api#list-tts-voices): GET /tts/voices (MCP tool list_tts_voices) - [List voice presets](https://apifleet.dev/docs/api#list-voice-presets): GET /voice-presets (MCP tool list_voice_presets) - [Get assistant voice presets](https://apifleet.dev/docs/api#get-assistant-voice-presets): GET /assistants/{id}/voice-presets (MCP tool get_assistant_voice_presets) - [Get tts settings](https://apifleet.dev/docs/api#get-tts-settings): GET /tts/settings-spec (MCP tool get_tts_settings) - [Preview voice](https://apifleet.dev/docs/api#preview-voice): POST /tts/preview (REST/dashboard workflow; no MCP tool) - [Transcribe audio](https://apifleet.dev/docs/api#transcribe-audio): POST /stt/transcribe (REST/dashboard workflow; no MCP tool) ### Credentials - [List provider credentials](https://apifleet.dev/docs/api#list-provider-credentials): GET /credentials (MCP tool list_provider_credentials) - [Set provider credentials](https://apifleet.dev/docs/api#set-provider-credentials): PUT /credentials/{provider} (REST/dashboard workflow; no MCP tool) - [Delete provider credentials](https://apifleet.dev/docs/api#delete-provider-credentials): DELETE /credentials/{provider} (REST/dashboard workflow; no MCP tool) ### API keys - [List api keys](https://apifleet.dev/docs/api#list-api-keys): GET /api-keys (MCP tool list_api_keys) - [Create api key](https://apifleet.dev/docs/api#create-api-key): POST /api-keys (MCP tool create_api_key) - [Revoke api key](https://apifleet.dev/docs/api#revoke-api-key): DELETE /api-keys/{id} (MCP tool revoke_api_key) ### Billing - [Get wallet](https://apifleet.dev/docs/api#get-wallet): GET /billing/wallet (MCP tool get_wallet) - [Get billing policy](https://apifleet.dev/docs/api#get-billing-policy): GET /billing/policy (MCP tool get_billing_policy) - [List balance activity](https://apifleet.dev/docs/api#list-balance-activity): GET /billing/ledger (MCP tool list_balance_activity) - [List payments](https://apifleet.dev/docs/api#list-payments): GET /billing/payments (MCP tool list_payments) - [Create checkout](https://apifleet.dev/docs/api#create-checkout): POST /billing/checkout (REST/dashboard workflow; no MCP tool) ### Metrics - [Get metrics](https://apifleet.dev/docs/api#get-metrics): GET /metrics (MCP tool get_metrics) ## Comparisons - [APIFleet vs Vapi](https://apifleet.dev/compare/vapi): A close comparison for developers who want a hosted voice-agent platform with separate provider costs. - [APIFleet vs Retell AI](https://apifleet.dev/compare/retell-ai): A managed voice-agent platform with a configurable, component-based call price. - [APIFleet vs Bland AI](https://apifleet.dev/compare/bland-ai): Bundled AI talk time and conversation pathways, with usage and subscription options. - [APIFleet vs Synthflow](https://apifleet.dev/compare/synthflow): An enterprise deployment offering with implementation support and annual contracts. - [APIFleet vs ElevenLabs Agents](https://apifleet.dev/compare/elevenlabs): A voice-led agent platform with monthly minute allowances and usage overages. - [APIFleet vs Voiceflow](https://apifleet.dev/compare/voiceflow): A team-oriented agent builder spanning voice, chat and agency workflows. - [APIFleet vs Bolna](https://apifleet.dev/compare/bolna): Usage-based voice agents with BYOK options and a focus on Indian-language conversations. - [APIFleet vs LiveKit](https://apifleet.dev/compare/livekit): Realtime infrastructure and an agent framework for teams building their own application. - [APIFleet vs Pipecat](https://apifleet.dev/compare/pipecat): An open-source Python framework for composable voice and multimodal pipelines. - [APIFleet vs Telnyx AI Assistants](https://apifleet.dev/compare/telnyx): An integrated voice engine, assistant platform and telephony ecosystem. - [APIFleet vs Twilio ConversationRelay](https://apifleet.dev/compare/twilio): A speech interface for developers connecting their own conversational application to Twilio. - [APIFleet vs Deepgram Voice Agent API](https://apifleet.dev/compare/deepgram): A managed conversational voice API with bundled and bring-your-own-provider options. - [APIFleet vs Ultravox](https://apifleet.dev/compare/ultravox): A speech-native voice-agent service with usage-based pricing and SIP connectivity. - [APIFleet vs PolyAI](https://apifleet.dev/compare/polyai): An enterprise conversational platform focused on customer-service operations. ## Practical guides - [What does a voice agent actually cost?](https://apifleet.dev/blog/voice-agent-costs): Voice agent costs combine platform, AI provider and carrier usage. Calculate APIFleet’s $0.03 platform minute, compare quotes and budget with a worked example. - [BYOK: who pays for what?](https://apifleet.dev/blog/bring-your-own-keys): Bring your own keys to APIFleet and pay AI providers directly. Understand credentials, the $0.03 platform minute and how to verify which account pays for calls. - [Test the conversation, not just the happy path](https://apifleet.dev/blog/test-voice-agents): Test voice agents with a practical checklist for tools, interruptions, silence and transfers. Use APIFleet simulations and call logs to check task outcomes. - [Move your voice agents one route at a time](https://apifleet.dev/blog/migrate-voice-agents): Migrate voice agents one route at a time. Inventory prompts, providers and tools, test a pilot in APIFleet and keep a clear rollback before moving live traffic. - [Voice agent tools: a practical checklist](https://apifleet.dev/blog/voice-agent-tools): Voice agent tools connect conversations to real actions. Use this APIFleet checklist to define outcomes, handle timeouts and test retries before moving calls. ## Product and boundaries - [Product and pricing](https://apifleet.dev/) - [Privacy](https://apifleet.dev/privacy) VoiceFleet is a separate product using APIFleet. Examples are illustrative, not measured customer results. See dated vendor sources in comparisons. Reading public documentation does not start calls or checkout. Crawl access and discovery files do not guarantee indexing or AI citations.