ToolRoute API Documentation
Everything you need to integrate ToolRoute into your AI agents, scripts, and applications. One API key, 40 gateway adapters, 107+ operations.
Quickstart
Get up and running in under a minute.
Sign up at toolroute.ai
Create an account with email or GitHub. Takes 10 seconds.
Get your API key from the dashboard
Navigate to Dashboard → API Keys and create a key. It starts with tr_live_.
Make your first request
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "firecrawl/scrape", "input": {"url": "https://example.com"}}'Check your balance
curl https://toolroute.ai/api/v1/key \
-H "Authorization: Bearer tr_live_xxx"Authentication
All API requests require a valid API key sent via the Authorization header.
Authorization: Bearer tr_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxSecurity: API keys are SHA-256 hashed before storage. We never store the raw key. You can only see the full key once at creation time. Treat it like a password.
API Reference
Base URL: https://toolroute.ai/api/v1
POST/api/v1/execute
Execute a tool. This is the primary endpoint for all tool calls.
Request Body
toolstringrequiredTool identifier in provider/operation format. Example: elevenlabs/text-to-speech
inputobjectrequiredTool-specific input parameters. See each tool's documentation below.
GET/api/v1/tools
List all available tools with pricing. No auth required.
GET/api/v1/key
Get API key info and remaining credits.
GET/api/v1/usage
Usage history with filtering by tool and date.
POST/api/v1/checkout
Create a Stripe checkout session to add credits. Minimum $5.
Auto-Routing
Don't know which tool to use? Two approaches:
toolroute/check_before_build -- Search only
Describe your task and get matching tools, composites, and category beliefs ranked by confidence. Does not execute anything.
auto/route -- Search + Execute
Describe your task, ToolRoute picks the best tool and executes it automatically. Returns routing metadata alongside results.
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "auto/route", "input": {"task": "scrape example.com and get the text"}}'Available Tools
40 gateway adapters with 107+ operations across 14 categories. Each operation is accessed via POST /api/v1/execute with the tool ID in provider/operation format.
| Adapter | BYOK | Pricing |
|---|---|---|
| claude | Yes | $0.003/1K chars |
| openai | Yes | $0-$0.04/call |
| replicate | Yes | $0.01/run |
| whisper | Yes | $0.01/call |
| search | Yes | $0.003/call |
| context7 | No | $0.001/call |
| firecrawl | Yes | $0.003-$0.01/call |
| elevenlabs | Yes | $0.0003/char |
| deepgram | Yes | $0.005/call |
| vapi | Yes | $0.001-$0.05/call |
| twilio | Yes | $0.001-$0.02/call |
| sendgrid | Yes | $0.001/call |
| resend | Yes | $0.001/call |
| image | Yes | $0.02-$0.03/call |
| pexels | Yes | $0.001/call |
| unsplash | Yes | $0.001/call |
| removebg | Yes | $0.10/call |
| screenshot | Yes | $0.005/call |
| heygen | Yes | $0.001-$0.50/call |
| creatomate | Yes | $0.001-$0.50/call |
| shotstack | Yes | $0.001-$0.30/call |
| mux | Yes | $0.001-$0.02/call |
| translate | Yes | $0.00005/char |
| Yes | $0.005/call | |
| playwright | No | $0.002-$0.005/call |
| stripe | Yes | $0.002/call |
| apollo | Yes | $0.01-$0.03/call |
| creatify | Yes | $0.001-$2.00/call |
| shippo | Yes | $0.001-$0.05/call |
| supabase | Yes | $0.001/call |
| sentry | Yes | $0.001/call |
| dataforseo | Yes | $0.002/call |
| postiz | Yes | $0.001-$0.002/call |
| outscraper | Yes | $0.005-$0.01/call |
| github | Yes | $0.001/call |
| calendar | BYOK-only | $0.001/call |
| drive | BYOK-only | $0.001/call |
| textbelt | Yes | $0-$0.005/call |
| toolroute | No | $0.0005-$0.001/call |
| auto | No | Varies (same as routed tool) |
AI & LLM
Claude (Anthropic)
$0.003/1K charsBYOK: YesAnthropic Claude LLM -- chat completions via the Messages API.
claude/chatclaude/completeclaude/chat-- Parameters & Example
messagesarrayrequiredArray of {role, content} message objects.
modelstringModel ID. Default: claude-sonnet-4-20250514.
max_tokensnumberMax response tokens (default: 1024).
systemstringSystem prompt.
temperaturenumberSampling temperature (0-1).
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "claude/chat", "input": {
"messages": [{"role": "user", "content": "Explain REST APIs in 2 sentences."}],
"max_tokens": 256
}}'OpenAI
$0-$0.04/callBYOK: YesGPT chat completions, DALL-E image generation, text embeddings, and content moderation.
openai/chatopenai/imageopenai/embeddingsopenai/moderationopenai/chat-- Parameters & Example
messagesarrayrequiredArray of {role, content} message objects.
modelstringModel ID (default: gpt-4o).
max_tokensnumberMax tokens (default: 1024).
temperaturenumberSampling temperature (default: 0.7).
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "openai/chat", "input": {
"messages": [{"role": "user", "content": "Hello!"}],
"model": "gpt-4o"
}}'Replicate
$0.01/runBYOK: YesRun any ML model on Replicate -- image generation, LLMs, audio, video.
replicate/runreplicate/list-modelsreplicate/run-- Parameters & Example
modelstringrequiredModel identifier (e.g. "stability-ai/sdxl:version").
inputobjectModel-specific input parameters.
versionstringVersion hash (or append to model with colon).
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "replicate/run", "input": {
"model": "stability-ai/sdxl",
"input": {"prompt": "a cat astronaut"}
}}'Whisper
$0.01/callBYOK: YesOpenAI Whisper speech-to-text -- transcribe audio from a URL.
whisper/transcribewhisper/transcribe-- Parameters & Example
audio_urlstringrequiredURL to audio file (mp3, wav, etc.).
modelstringModel ID (default: whisper-1).
languagestringISO language code (e.g. en, es).
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "whisper/transcribe", "input": {
"audio_url": "https://example.com/audio.mp3"
}}'Search & Web
Web Search (Brave)
$0.003/callBYOK: YesWeb, news, and image search via Brave Search API.
search/websearch/newssearch/imagessearch/web-- Parameters & Example
querystringrequiredSearch query.
num_resultsnumberNumber of results (default: 10).
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "search/web", "input": {"query": "best MCP tools 2026"}}'Context7
$0.001/callBYOK: NoLibrary documentation lookup -- search for libraries and query up-to-date docs.
context7/searchcontext7/query-docscontext7/query-docs-- Parameters & Example
querystringrequiredQuestion about the library.
librarystringLibrary name (e.g. 'next.js').
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "context7/query-docs", "input": {"query": "server actions", "library": "next.js"}}'Firecrawl
$0.003-$0.01/callBYOK: YesWeb scraping and crawling -- extract markdown, HTML, or site maps from any URL.
firecrawl/scrapefirecrawl/crawlfirecrawl/mapfirecrawl/scrape-- Parameters & Example
urlstringrequiredURL to scrape.
formatsstring[]Output formats (e.g. ['markdown', 'html']).
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "firecrawl/scrape", "input": {"url": "https://example.com"}}'Voice & Audio
ElevenLabs
$0.0003/charBYOK: YesText-to-speech -- generate natural-sounding audio from text.
elevenlabs/text-to-speechelevenlabs/voiceselevenlabs/text-to-speech-- Parameters & Example
textstringrequiredText to convert to speech.
voice_idstringVoice ID (default: Rachel).
model_idstringModel (default: eleven_monolingual_v1).
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "elevenlabs/text-to-speech", "input": {"text": "Hello from ToolRoute!"}}'Deepgram
$0.005/callBYOK: YesSpeech-to-text transcription -- faster and cheaper than Whisper, supports Nova-3.
deepgram/transcribedeepgram/transcribe-urldeepgram/transcribe-- Parameters & Example
urlstringrequiredURL to audio file.
modelstringModel (default: nova-3).
languagestringLanguage code (default: en).
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "deepgram/transcribe", "input": {"url": "https://example.com/audio.mp3"}}'Vapi
$0.001-$0.05/callBYOK: YesVoice AI agents -- create and manage AI phone calls with assistants.
vapi/create-callvapi/list-callsvapi/get-callvapi/list-assistantsvapi/create-call-- Parameters & Example
assistant_idstringrequiredVapi assistant ID.
phone_number_idstringVapi phone number ID.
customerobjectCustomer object with phone number.
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "vapi/create-call", "input": {"assistant_id": "asst_xxx"}}'Twilio
$0.001-$0.02/callBYOK: YesSend SMS, make voice calls, and list message history.
twilio/send-smstwilio/make-calltwilio/list-messagestwilio/send-sms-- Parameters & Example
tostringrequiredRecipient phone number.
fromstringrequiredYour Twilio phone number.
bodystringrequiredSMS message body.
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "twilio/send-sms", "input": {"to": "+1234567890", "from": "+1987654321", "body": "Hello!"}}'SendGrid
$0.001/callBYOK: YesDeliver transactional and marketing emails.
sendgrid/send-emailsendgrid/send-email-- Parameters & Example
tostringrequiredRecipient email.
fromstringrequiredSender email (verified in SendGrid).
subjectstringrequiredSubject line.
textstringPlain text body.
htmlstringHTML body.
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "sendgrid/send-email", "input": {
"to": "user@example.com", "from": "noreply@yourapp.com",
"subject": "Welcome!", "html": "<h1>Welcome</h1>"
}}'Resend
$0.001/callBYOK: YesModern email delivery with React email support.
resend/send-emailresend/list-emailsresend/send-email-- Parameters & Example
fromstringrequiredSender email.
tostring|string[]requiredRecipient(s).
subjectstringrequiredSubject line.
htmlstringHTML body.
textstringPlain text body.
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "resend/send-email", "input": {
"from": "hi@yourapp.com", "to": "user@example.com",
"subject": "Hello!", "html": "<p>Hi there</p>"
}}'Image & Media
Image Generation (fal.ai)
$0.02-$0.03/callBYOK: YesAI image generation and upscaling -- Flux, SDXL, Clarity Upscaler.
image/generateimage/upscaleimage/generate-- Parameters & Example
promptstringrequiredImage generation prompt.
modelstringfal.ai model (default: fal-ai/flux/schnell).
widthnumberImage width (default: 1024).
heightnumberImage height (default: 1024).
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "image/generate", "input": {"prompt": "a futuristic city at sunset"}}'Pexels
$0.001/callBYOK: YesFree stock photos and videos -- search curated high-quality media.
pexels/search-photospexels/search-videospexels/curatedpexels/search-photos-- Parameters & Example
querystringrequiredSearch query.
per_pagenumberResults per page (default: 10).
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "pexels/search-photos", "input": {"query": "mountains", "per_page": 5}}'Unsplash
$0.001/callBYOK: YesFree high-resolution stock photos -- search, random, and direct access.
unsplash/searchunsplash/randomunsplash/get-photounsplash/search-- Parameters & Example
querystringrequiredSearch query.
per_pagenumberResults per page (default: 10).
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "unsplash/search", "input": {"query": "office workspace"}}'Remove.bg
$0.10/callBYOK: YesAI background removal for product photos, headshots, and ad creative.
removebg/removeremovebg/remove-- Parameters & Example
image_urlstringURL to image (provide this or image_base64).
image_base64stringBase64-encoded image.
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "removebg/remove", "input": {"image_url": "https://example.com/photo.jpg"}}'Screenshot Capture
$0.005/callBYOK: YesHigh-quality website screenshots via ScreenshotOne with thum.io fallback.
screenshot/capturescreenshot/fullpagescreenshot/capture-- Parameters & Example
urlstringrequiredURL to screenshot.
widthnumberViewport width (default: 1280).
heightnumberViewport height (default: 720).
formatstringOutput format (default: png).
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "screenshot/capture", "input": {"url": "https://example.com"}}'Video
HeyGen
$0.001-$0.50/callBYOK: YesAI avatar video generation -- create talking-head videos with AI presenters.
heygen/create-videoheygen/list-avatarsheygen/get-videoheygen/create-video-- Parameters & Example
scriptstringrequiredText the avatar will speak.
avatar_idstringAvatar ID (default: Daisy).
voice_idstringVoice ID for the avatar.
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "heygen/create-video", "input": {"script": "Welcome to our product demo."}}'Creatomate
$0.001-$0.50/callBYOK: YesTemplate-based video and image rendering -- dynamic videos from templates.
creatomate/rendercreatomate/list-templatescreatomate/get-rendercreatomate/render-- Parameters & Example
template_idstringrequiredCreatomate template ID.
modificationsobjectTemplate variable overrides.
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "creatomate/render", "input": {"template_id": "tmpl_xxx"}}'Shotstack
$0.001-$0.30/callBYOK: YesVideo editing and rendering API -- JSON timeline format for programmatic video.
shotstack/rendershotstack/get-rendershotstack/probeshotstack/render-- Parameters & Example
timelineobjectrequiredShotstack timeline JSON.
outputobjectOutput config (default: mp4 HD).
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "shotstack/render", "input": {"timeline": {"tracks": [...]}}}'Mux
$0.001-$0.02/callBYOK: YesVideo hosting, streaming, and playback.
mux/create-assetmux/get-assetmux/list-assetsmux/create-playbackmux/create-asset-- Parameters & Example
input_urlstringrequiredURL to video file.
playback_policystringPolicy: public or signed (default: public).
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "mux/create-asset", "input": {"input_url": "https://example.com/video.mp4"}}'Content
DeepL Translation
$0.00005/charBYOK: YesHigh-quality text translation and language detection via DeepL.
translate/texttranslate/detect-languagetranslate/text-- Parameters & Example
textstringrequiredText to translate.
target_langstringrequiredTarget language code (e.g. DE, FR, ES).
source_langstringSource language (auto-detected if omitted).
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "translate/text", "input": {"text": "Hello world", "target_lang": "ES"}}'PDF Generation
$0.005/callBYOK: YesGenerate PDFs from HTML content or URLs via html2pdf.app.
pdf/from-htmlpdf/from-urlpdf/from-html-- Parameters & Example
htmlstringrequiredHTML content to convert to PDF.
filenamestringOutput filename (default: document.pdf).
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "pdf/from-html", "input": {"html": "<h1>Invoice</h1><p>Amount: $100</p>"}}'Playwright
$0.002-$0.005/callBYOK: NoBrowser automation -- screenshots, text scraping, and PDF generation.
playwright/screenshotplaywright/scrape-textplaywright/pdfplaywright/scrape-text-- Parameters & Example
urlstringrequiredURL to extract text from.
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "playwright/scrape-text", "input": {"url": "https://example.com"}}'Business
Stripe
$0.002/callBYOK: YesPayment operations -- list customers, create payment links, list products, check balance.
stripe/list-customersstripe/create-payment-linkstripe/list-productsstripe/get-balancestripe/list-customers-- Parameters & Example
limitnumberMax customers to return (default: 10).
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "stripe/list-customers", "input": {"limit": 5}}'Apollo.io
$0.01-$0.03/callBYOK: YesContact enrichment and prospecting -- search people, enrich contacts, find companies.
apollo/search-peopleapollo/enrichapollo/search-companiesapollo/search-people-- Parameters & Example
person_titlesstring[]Job titles to search (e.g. ['CEO', 'CTO']).
q_organization_namestringCompany name filter.
per_pagenumberResults per page.
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "apollo/search-people", "input": {"person_titles": ["CEO"], "per_page": 5}}'Creatify
$0.001-$2.00/callBYOK: YesAI ad generation -- create video ads from product URLs with AI avatars.
creatify/create-adcreatify/list-adscreatify/get-adcreatify/create-ad-- Parameters & Example
urlstringrequiredProduct page URL.
ad_formatstringAd format type.
durationnumberAd duration in seconds.
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "creatify/create-ad", "input": {"url": "https://myproduct.com"}}'Shippo
$0.001-$0.05/callBYOK: YesShipping labels and tracking -- create shipments, get rates, print labels, track packages.
shippo/create-shipmentshippo/get-ratesshippo/create-labelshippo/trackshippo/create-shipment-- Parameters & Example
address_fromobjectrequiredSender address object.
address_toobjectrequiredRecipient address object.
parcelsobject[]requiredArray of parcel objects (length, width, height, weight).
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "shippo/create-shipment", "input": {
"address_from": {"name": "Sender", "street1": "123 Main", "city": "SF", "state": "CA", "zip": "94102", "country": "US"},
"address_to": {"name": "Recipient", "street1": "456 Oak", "city": "LA", "state": "CA", "zip": "90001", "country": "US"},
"parcels": [{"length": "10", "width": "8", "height": "4", "weight": "2", "mass_unit": "lb", "distance_unit": "in"}]
}}'Data & Analytics
Supabase
$0.001/callBYOK: YesDatabase operations -- execute SQL, list tables, insert and select rows.
supabase/execute-sqlsupabase/list-tablessupabase/insertsupabase/selectsupabase/execute-sql-- Parameters & Example
project_refstringrequiredSupabase project reference ID.
sqlstringrequiredSQL query to execute.
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "supabase/execute-sql", "input": {"project_ref": "abcdefghijkl", "sql": "SELECT count(*) FROM users"}}'Sentry
$0.001/callBYOK: YesError tracking and performance monitoring -- list issues, get details, view events.
sentry/list-issuessentry/get-issuesentry/list-eventssentry/list-issues-- Parameters & Example
organizationstringrequiredSentry organization slug.
projectstringrequiredSentry project slug.
querystringSearch query (default: is:unresolved).
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "sentry/list-issues", "input": {"organization": "my-org", "project": "my-app"}}'DataForSEO
$0.002/callBYOK: YesSEO data -- SERP results, keyword volumes, backlinks at $0.0006/query.
dataforseo/serpdataforseo/keywordsdataforseo/backlinksdataforseo/serp-- Parameters & Example
keywordstringrequiredSearch keyword.
location_namestringLocation (default: United States).
language_namestringLanguage (default: English).
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "dataforseo/serp", "input": {"keyword": "best crm software"}}'Social & Outreach
Postiz
$0.001-$0.002/callBYOK: YesSocial media posting -- schedule and publish to Twitter, LinkedIn, and more.
postiz/create-postpostiz/list-postspostiz/get-integrationspostiz/create-post-- Parameters & Example
contentstringrequiredPost content text.
platformsstring[]Target platforms.
media_urlstringMedia attachment URL.
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "postiz/create-post", "input": {"content": "Check out our new API!"}}'Outscraper
$0.005-$0.01/callBYOK: YesData scraping -- Google Maps places, reviews, and email/contact extraction.
outscraper/google-mapsoutscraper/google-reviewsoutscraper/emails-and-contactsoutscraper/google-maps-- Parameters & Example
querystringrequiredSearch query (e.g. 'restaurants in Miami').
limitnumberMax results (default: 20).
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "outscraper/google-maps", "input": {"query": "dentists in Miami", "limit": 10}}'Code & DevOps
GitHub
$0.001/callBYOK: YesGitHub API -- search repos, read READMEs, and list issues.
github/search-reposgithub/get-readmegithub/list-issuesgithub/search-repos-- Parameters & Example
querystringrequiredSearch query (GitHub search syntax).
per_pagenumberResults per page (default: 10).
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "github/search-repos", "input": {"query": "mcp server typescript", "per_page": 5}}'Productivity
Google Calendar
$0.001/callBYOK: BYOK-onlyList events, create events, check availability. Requires Google OAuth token via BYOK.
calendar/list-eventscalendar/create-eventcalendar/check-availabilitycalendar/list-events-- Parameters & Example
calendar_idstringCalendar ID (default: primary).
max_resultsnumberMax events (default: 10).
time_minstringStart time ISO string.
time_maxstringEnd time ISO string.
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "calendar/list-events", "input": {"max_results": 5}}'Google Drive
$0.001/callBYOK: BYOK-onlyFile management -- list, search, read, and upload files. Requires Google OAuth via BYOK.
drive/list-filesdrive/searchdrive/get-contentdrive/upload-textdrive/search-- Parameters & Example
querystringrequiredSearch query for file content.
page_sizenumberResults per page (default: 20).
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "drive/search", "input": {"query": "quarterly report"}}'SMS
Textbelt
$0-$0.005/callBYOK: YesSimple cheap SMS sending and delivery status checking.
textbelt/send-smstextbelt/check-statustextbelt/send-sms-- Parameters & Example
phonestringrequiredRecipient phone number.
messagestringrequiredSMS message text.
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "textbelt/send-sms", "input": {"phone": "+1234567890", "message": "Your order shipped!"}}'Meta
ToolRoute Registry
$0.0005-$0.001/callBYOK: NoQuery the capability registry -- check what tools exist before building.
toolroute/check_before_buildtoolroute/searchtoolroute/check_before_build-- Parameters & Example
taskstringrequiredNatural language description of what you want to build.
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "toolroute/check_before_build", "input": {"task": "I need to send transactional emails"}}'Auto-Router
Varies (same as routed tool)BYOK: NoDescribe your task in natural language -- ToolRoute picks the best tool and executes it.
auto/routeauto/route-- Parameters & Example
taskstringrequiredNatural language task description.
curl -X POST https://toolroute.ai/api/v1/execute \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"tool": "auto/route", "input": {"task": "scrape example.com and get the text"}}'Error Handling
All errors follow a consistent format with an HTTP status code and a machine-readable error code.
{
"error": {
"message": "Human-readable error description",
"code": "machine_readable_code"
}
}| Code | Status | Meaning |
|---|---|---|
invalid_request | 400 | Missing fields or bad input |
authentication_required | 401 | No API key provided |
invalid_api_key | 401 | Key not found or revoked |
insufficient_balance | 402 | No credits remaining |
tool_not_found | 404 | Tool identifier not in registry |
rate_limit_exceeded | 429 | Too many requests |
adapter_error | 500 | Upstream provider error |
BYOK (Bring Your Own Key)
Register your own API keys for supported providers. Requests route through your key with zero markup. Keys are encrypted at rest with AES-256.
BYOK-supported adapters: claude, openai, replicate, whisper, search (Brave), firecrawl, elevenlabs, deepgram, vapi, twilio, sendgrid, resend, image (fal.ai), pexels, unsplash, removebg, screenshot, heygen, creatomate, shotstack, mux, translate (DeepL), pdf, stripe, apollo, creatify, shippo, supabase, sentry, dataforseo, postiz, outscraper, github, textbelt.
BYOK-only adapters (no pooled key): calendar (Google Calendar), drive (Google Drive).
curl -X POST https://toolroute.ai/api/v1/byok \
-H "Authorization: Bearer tr_live_xxx" \
-H "Content-Type: application/json" \
-d '{"provider": "elevenlabs", "api_key": "your-elevenlabs-key-here"}'Rate Limits
| Plan | RPM | Daily / Monthly |
|---|---|---|
| Free | 10 | 100/day |
| Pro | 60 | 10,000/month |
| Enterprise | 300 | 100,000/month |
SDKs
Python
import requests
def toolroute(tool: str, input: dict) -> dict:
r = requests.post(
"https://toolroute.ai/api/v1/execute",
headers={"Authorization": "Bearer tr_live_xxx"},
json={"tool": tool, "input": input},
)
r.raise_for_status()
return r.json()
result = toolroute("firecrawl/scrape", {"url": "https://example.com"})
audio = toolroute("elevenlabs/text-to-speech", {"text": "Hello!"})
repos = toolroute("github/search-repos", {"query": "mcp tools"})JavaScript / TypeScript
async function toolroute(tool: string, input: Record<string, unknown>) {
const res = await fetch("https://toolroute.ai/api/v1/execute", {
method: "POST",
headers: {
"Authorization": "Bearer tr_live_xxx",
"Content-Type": "application/json",
},
body: JSON.stringify({ tool, input }),
});
if (!res.ok) throw new Error(`ToolRoute error: ${res.status}`);
return res.json();
}
const page = await toolroute("firecrawl/scrape", { url: "https://example.com" });
const chat = await toolroute("claude/chat", {
messages: [{ role: "user", content: "Hello!" }],
});MCP Integration
ToolRoute is available as an MCP server for direct integration into Claude Code and other MCP clients.
{
"toolroute": {
"type": "http",
"url": "https://toolroute.ai/mcp",
"headers": { "Authorization": "Bearer tr_live_xxx" }
}
}MCP Server Tools
| Tool | Description |
|---|---|
check_before_build | Describe what you need, get matching tools |
search_tools | Search the registry by keyword |
get_category_champion | Get the champion for a category |
record_usage | Log tool usage for belief evolution |
challenge_tool | Challenge a tool's position with evidence |
librarian_status | Registry stats and top beliefs |
log_tool_request | Log a tool request for discovery tracking |
Full Adapter Registry
ToolRoute indexes 87 tools across 12 categories, sourced live from the registry database. Each tool supports one or more protocols (REST, MCP, OpenAPI, GraphQL, CLI, npm, or skill). The table below groups every registered adapter by its super-category so you can see the full landscape at a glance.
| Category | Tools | Cost Range |
|---|---|---|
Analytics 2 tools | PostHog, Sentry MCP | Freemium |
Communication 10 tools | ElevenLabs, Deepgram, DeepL, Gmail MCP, SendGrid, Slack API, Slack MCP, Textbelt, Twilio, Vapi | Free -- Paid |
Content 17 tools | Claude API, Creatomate, fal.ai, HeyGen, HeyGen MCP, Hicsfield.ai, Higgsfield, html2pdf.app, Kling 3.0, Midjourney, MoneyPrinterTurbo, Mux, Pexels, Remove.bg, Shotstack, Unsplash, Whisper | Free -- Paid |
CRM & Sales 4 tools | Apollo.io, HubSpot CRM, HubSpot MCP, Smartlead | Freemium -- Paid |
DevOps 4 tools | Cloudflare MCP, Docker MCP, GitHub MCP, Vercel MCP | Free -- Freemium |
Ecommerce 2 tools | Shippo, Shopify MCP | Freemium |
Finance 1 tool | Stripe MCP | Freemium |
Infrastructure 19 tools | Blender MCP, Brave Search, Composio, Context7, Exa, Glido, Google Stitch, Grafana MCP, OpenAI GPT, Playwright MCP, Remotion, Replicate, ScreenshotOne, Supabase MCP, Tavily, and skills | Free -- Usage-based |
Marketing 12 tools | Ahrefs, Creatify, DataForSEO, Firecrawl, Google Ads API, LinkedIn API, Meta Marketing API, Outscraper, Postiz, Twitter/X API, YouTube Data API | Free -- Paid |
Operations 10 tools | Google Drive, Google Drive MCP, Google Sheets, Google Sheets MCP, Linear, Linear MCP, n8n, Notion, Notion MCP, Zapier MCP | Free -- Freemium |
Scheduling 3 tools | Cal.com, Google Calendar, Google Calendar MCP | Free -- Freemium |
Security 3 tools | Cloudflare Turnstile, Semgrep MCP, Supabase Auth | Free -- Freemium |
| Total | 87 tools across 12 categories | Free -- Paid |
Live registry: This list reflects the current state of the ToolRoute registry. New tools are added regularly. Use GET /api/v1/tools to fetch the latest catalog programmatically, or query toolroute/check_before_build to find the right tool for your task.
Protocol Support
ToolRoute supports five primary integration protocols. Choose the one that fits your architecture:
| Protocol | Endpoint |
|---|---|
| REST | POST /api/v1/execute |
| MCP Streamable HTTP | POST /mcp |
| A2A (Agent-to-Agent) | POST /api/a2a |
| OpenAI Functions | GET /api/v1/tools?format=openai |
| SDKs | Python / TypeScript |
Webhook Events
ToolRoute can send webhook notifications to your server when key events occur. Configure your webhook URL in the Dashboard under Settings. All webhook payloads are delivered as POST requests with a JSON body and include an X-ToolRoute-Signature header for verification.
Event Types
| Event | Trigger |
|---|---|
tool.execution.completed | A tool call finishes successfully |
tool.execution.failed | A tool call fails (adapter or upstream error) |
balance.low | Account balance drops below configured threshold |
balance.depleted | Account balance reaches $0.00 |
balance.topped_up | Credits added via checkout or auto-top-up |
key.created | A new API key is generated |
key.revoked | An API key is deleted or revoked |
byok.registered | A BYOK provider key is added or updated |
usage.threshold | Daily or monthly usage exceeds configured threshold |
Webhook Payload Format
{
"id": "evt_1a2b3c4d5e6f",
"type": "tool.execution.completed",
"created_at": "2026-04-15T12:34:56Z",
"data": {
"request_id": "req_abc123",
"tool": "firecrawl/scrape",
"duration_ms": 1240,
"cost": 0.003,
"input_summary": "url: https://example.com",
"output_bytes": 4521
}
}Signature Verification
Every webhook includes an X-ToolRoute-Signature header containing an HMAC-SHA256 signature of the raw request body, signed with your webhook secret. Verify it before processing:
import { createHmac } from "crypto";
function verifyWebhook(body: string, signature: string, secret: string): boolean {
const expected = createHmac("sha256", secret)
.update(body, "utf-8")
.digest("hex");
return signature === `sha256=${expected}`;
}
// In your webhook handler:
const isValid = verifyWebhook(rawBody, req.headers["x-toolroute-signature"], WEBHOOK_SECRET);
if (!isValid) return res.status(401).json({ error: "Invalid signature" });Retry policy: Failed webhook deliveries are retried up to 3 times with exponential backoff (10s, 60s, 300s). After 3 failures, the event is marked as failed and visible in your dashboard. Events are retained for 30 days.
Changelog
Recent updates to the ToolRoute API and platform.
87 Tools, Webhook Events, Full Registry Documentation
- --Registry expanded to 87 tools across 12 categories
- --Webhook event system for tool executions, balance alerts, and key lifecycle
- --Full adapter registry documentation with live Supabase data
- --Protocol support table: REST, MCP, A2A, OpenAI Functions, SDKs
API Gateway Launch -- OpenRouter for Tools
- --Transformed from catalog to full API gateway with unified /api/v1/execute endpoint
- --14 initial adapters with auto-routing intelligence
- --Stripe billing with prepaid credits and auto-top-up
- --Dashboard with real-time usage tracking and API key management
- --Full API documentation with curl examples for every adapter
A2A Protocol Support
- --Google Agent-to-Agent (A2A) protocol endpoint at POST /api/a2a
- --Agent Cards with full capability advertisement
- --Multi-agent orchestration support with task lifecycle
47 Gateway Adapters, BYOK Expansion
- --Gateway adapters expanded from 14 to 47
- --BYOK support for 34 providers with AES-256 encryption
- --Auto-routing intelligence picks the best tool for natural language tasks
- --OpenAI function calling format at GET /api/v1/tools?format=openai
Skills + Composites System
- --Registry upgraded from tools-only to TOOLS + SKILLS + COMPOSITES
- --15 generic skills indexed alongside tool adapters
- --check_before_build now searches skills and composites, not just tools
- --Department-level mappings for organizational tool recommendations
Initial Registry + MCP Server
- --ToolRoute MCP server with 7 tools: check_before_build, search_tools, get_category_champion, record_usage, challenge_tool, librarian_status, log_tool_request
- --Belief-driven librarian system that evolves recommendations from usage data
- --Composio integration for OAuth-based tool access