Docs

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.

1

Sign up at toolroute.ai

Create an account with email or GitHub. Takes 10 seconds.

2

Get your API key from the dashboard

Navigate to Dashboard → API Keys and create a key. It starts with tr_live_.

3

Make your first request

terminal
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"}}'
4

Check your balance

terminal
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.

Header format
Authorization: Bearer tr_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxx

Security: 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

toolstringrequired

Tool identifier in provider/operation format. Example: elevenlabs/text-to-speech

inputobjectrequired

Tool-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.

Auto-route request
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.

AdapterBYOKPricing
claudeYes$0.003/1K chars
openaiYes$0-$0.04/call
replicateYes$0.01/run
whisperYes$0.01/call
searchYes$0.003/call
context7No$0.001/call
firecrawlYes$0.003-$0.01/call
elevenlabsYes$0.0003/char
deepgramYes$0.005/call
vapiYes$0.001-$0.05/call
twilioYes$0.001-$0.02/call
sendgridYes$0.001/call
resendYes$0.001/call
imageYes$0.02-$0.03/call
pexelsYes$0.001/call
unsplashYes$0.001/call
removebgYes$0.10/call
screenshotYes$0.005/call
heygenYes$0.001-$0.50/call
creatomateYes$0.001-$0.50/call
shotstackYes$0.001-$0.30/call
muxYes$0.001-$0.02/call
translateYes$0.00005/char
pdfYes$0.005/call
playwrightNo$0.002-$0.005/call
stripeYes$0.002/call
apolloYes$0.01-$0.03/call
creatifyYes$0.001-$2.00/call
shippoYes$0.001-$0.05/call
supabaseYes$0.001/call
sentryYes$0.001/call
dataforseoYes$0.002/call
postizYes$0.001-$0.002/call
outscraperYes$0.005-$0.01/call
githubYes$0.001/call
calendarBYOK-only$0.001/call
driveBYOK-only$0.001/call
textbeltYes$0-$0.005/call
toolrouteNo$0.0005-$0.001/call
autoNoVaries (same as routed tool)

AI & LLM

Claude (Anthropic)

$0.003/1K charsBYOK: Yes

Anthropic Claude LLM -- chat completions via the Messages API.

claude/chatclaude/complete
claude/chat-- Parameters & Example
messagesarrayrequired

Array of {role, content} message objects.

modelstring

Model ID. Default: claude-sonnet-4-20250514.

max_tokensnumber

Max response tokens (default: 1024).

systemstring

System prompt.

temperaturenumber

Sampling temperature (0-1).

terminal
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: Yes

GPT chat completions, DALL-E image generation, text embeddings, and content moderation.

openai/chatopenai/imageopenai/embeddingsopenai/moderation
openai/chat-- Parameters & Example
messagesarrayrequired

Array of {role, content} message objects.

modelstring

Model ID (default: gpt-4o).

max_tokensnumber

Max tokens (default: 1024).

temperaturenumber

Sampling temperature (default: 0.7).

terminal
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: Yes

Run any ML model on Replicate -- image generation, LLMs, audio, video.

replicate/runreplicate/list-models
replicate/run-- Parameters & Example
modelstringrequired

Model identifier (e.g. "stability-ai/sdxl:version").

inputobject

Model-specific input parameters.

versionstring

Version hash (or append to model with colon).

terminal
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: Yes

OpenAI Whisper speech-to-text -- transcribe audio from a URL.

whisper/transcribe
whisper/transcribe-- Parameters & Example
audio_urlstringrequired

URL to audio file (mp3, wav, etc.).

modelstring

Model ID (default: whisper-1).

languagestring

ISO language code (e.g. en, es).

terminal
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"
  }}'

Context7

$0.001/callBYOK: No

Library documentation lookup -- search for libraries and query up-to-date docs.

context7/searchcontext7/query-docs
context7/query-docs-- Parameters & Example
querystringrequired

Question about the library.

librarystring

Library name (e.g. 'next.js').

terminal
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: Yes

Web scraping and crawling -- extract markdown, HTML, or site maps from any URL.

firecrawl/scrapefirecrawl/crawlfirecrawl/map
firecrawl/scrape-- Parameters & Example
urlstringrequired

URL to scrape.

formatsstring[]

Output formats (e.g. ['markdown', 'html']).

terminal
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: Yes

Text-to-speech -- generate natural-sounding audio from text.

elevenlabs/text-to-speechelevenlabs/voices
elevenlabs/text-to-speech-- Parameters & Example
textstringrequired

Text to convert to speech.

voice_idstring

Voice ID (default: Rachel).

model_idstring

Model (default: eleven_monolingual_v1).

terminal
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: Yes

Speech-to-text transcription -- faster and cheaper than Whisper, supports Nova-3.

deepgram/transcribedeepgram/transcribe-url
deepgram/transcribe-- Parameters & Example
urlstringrequired

URL to audio file.

modelstring

Model (default: nova-3).

languagestring

Language code (default: en).

terminal
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: Yes

Voice AI agents -- create and manage AI phone calls with assistants.

vapi/create-callvapi/list-callsvapi/get-callvapi/list-assistants
vapi/create-call-- Parameters & Example
assistant_idstringrequired

Vapi assistant ID.

phone_number_idstring

Vapi phone number ID.

customerobject

Customer object with phone number.

terminal
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: Yes

Send SMS, make voice calls, and list message history.

twilio/send-smstwilio/make-calltwilio/list-messages
twilio/send-sms-- Parameters & Example
tostringrequired

Recipient phone number.

fromstringrequired

Your Twilio phone number.

bodystringrequired

SMS message body.

terminal
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!"}}'

Email

SendGrid

$0.001/callBYOK: Yes

Deliver transactional and marketing emails.

sendgrid/send-email
sendgrid/send-email-- Parameters & Example
tostringrequired

Recipient email.

fromstringrequired

Sender email (verified in SendGrid).

subjectstringrequired

Subject line.

textstring

Plain text body.

htmlstring

HTML body.

terminal
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: Yes

Modern email delivery with React email support.

resend/send-emailresend/list-emails
resend/send-email-- Parameters & Example
fromstringrequired

Sender email.

tostring|string[]required

Recipient(s).

subjectstringrequired

Subject line.

htmlstring

HTML body.

textstring

Plain text body.

terminal
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: Yes

AI image generation and upscaling -- Flux, SDXL, Clarity Upscaler.

image/generateimage/upscale
image/generate-- Parameters & Example
promptstringrequired

Image generation prompt.

modelstring

fal.ai model (default: fal-ai/flux/schnell).

widthnumber

Image width (default: 1024).

heightnumber

Image height (default: 1024).

terminal
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: Yes

Free stock photos and videos -- search curated high-quality media.

pexels/search-photospexels/search-videospexels/curated
pexels/search-photos-- Parameters & Example
querystringrequired

Search query.

per_pagenumber

Results per page (default: 10).

terminal
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: Yes

Free high-resolution stock photos -- search, random, and direct access.

unsplash/searchunsplash/randomunsplash/get-photo
unsplash/search-- Parameters & Example
querystringrequired

Search query.

per_pagenumber

Results per page (default: 10).

terminal
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: Yes

AI background removal for product photos, headshots, and ad creative.

removebg/remove
removebg/remove-- Parameters & Example
image_urlstring

URL to image (provide this or image_base64).

image_base64string

Base64-encoded image.

terminal
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: Yes

High-quality website screenshots via ScreenshotOne with thum.io fallback.

screenshot/capturescreenshot/fullpage
screenshot/capture-- Parameters & Example
urlstringrequired

URL to screenshot.

widthnumber

Viewport width (default: 1280).

heightnumber

Viewport height (default: 720).

formatstring

Output format (default: png).

terminal
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: Yes

AI avatar video generation -- create talking-head videos with AI presenters.

heygen/create-videoheygen/list-avatarsheygen/get-video
heygen/create-video-- Parameters & Example
scriptstringrequired

Text the avatar will speak.

avatar_idstring

Avatar ID (default: Daisy).

voice_idstring

Voice ID for the avatar.

terminal
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: Yes

Template-based video and image rendering -- dynamic videos from templates.

creatomate/rendercreatomate/list-templatescreatomate/get-render
creatomate/render-- Parameters & Example
template_idstringrequired

Creatomate template ID.

modificationsobject

Template variable overrides.

terminal
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: Yes

Video editing and rendering API -- JSON timeline format for programmatic video.

shotstack/rendershotstack/get-rendershotstack/probe
shotstack/render-- Parameters & Example
timelineobjectrequired

Shotstack timeline JSON.

outputobject

Output config (default: mp4 HD).

terminal
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: Yes

Video hosting, streaming, and playback.

mux/create-assetmux/get-assetmux/list-assetsmux/create-playback
mux/create-asset-- Parameters & Example
input_urlstringrequired

URL to video file.

playback_policystring

Policy: public or signed (default: public).

terminal
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: Yes

High-quality text translation and language detection via DeepL.

translate/texttranslate/detect-language
translate/text-- Parameters & Example
textstringrequired

Text to translate.

target_langstringrequired

Target language code (e.g. DE, FR, ES).

source_langstring

Source language (auto-detected if omitted).

terminal
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: Yes

Generate PDFs from HTML content or URLs via html2pdf.app.

pdf/from-htmlpdf/from-url
pdf/from-html-- Parameters & Example
htmlstringrequired

HTML content to convert to PDF.

filenamestring

Output filename (default: document.pdf).

terminal
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: No

Browser automation -- screenshots, text scraping, and PDF generation.

playwright/screenshotplaywright/scrape-textplaywright/pdf
playwright/scrape-text-- Parameters & Example
urlstringrequired

URL to extract text from.

terminal
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: Yes

Payment operations -- list customers, create payment links, list products, check balance.

stripe/list-customersstripe/create-payment-linkstripe/list-productsstripe/get-balance
stripe/list-customers-- Parameters & Example
limitnumber

Max customers to return (default: 10).

terminal
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: Yes

Contact enrichment and prospecting -- search people, enrich contacts, find companies.

apollo/search-peopleapollo/enrichapollo/search-companies
apollo/search-people-- Parameters & Example
person_titlesstring[]

Job titles to search (e.g. ['CEO', 'CTO']).

q_organization_namestring

Company name filter.

per_pagenumber

Results per page.

terminal
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: Yes

AI ad generation -- create video ads from product URLs with AI avatars.

creatify/create-adcreatify/list-adscreatify/get-ad
creatify/create-ad-- Parameters & Example
urlstringrequired

Product page URL.

ad_formatstring

Ad format type.

durationnumber

Ad duration in seconds.

terminal
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: Yes

Shipping labels and tracking -- create shipments, get rates, print labels, track packages.

shippo/create-shipmentshippo/get-ratesshippo/create-labelshippo/track
shippo/create-shipment-- Parameters & Example
address_fromobjectrequired

Sender address object.

address_toobjectrequired

Recipient address object.

parcelsobject[]required

Array of parcel objects (length, width, height, weight).

terminal
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: Yes

Database operations -- execute SQL, list tables, insert and select rows.

supabase/execute-sqlsupabase/list-tablessupabase/insertsupabase/select
supabase/execute-sql-- Parameters & Example
project_refstringrequired

Supabase project reference ID.

sqlstringrequired

SQL query to execute.

terminal
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: Yes

Error tracking and performance monitoring -- list issues, get details, view events.

sentry/list-issuessentry/get-issuesentry/list-events
sentry/list-issues-- Parameters & Example
organizationstringrequired

Sentry organization slug.

projectstringrequired

Sentry project slug.

querystring

Search query (default: is:unresolved).

terminal
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: Yes

SEO data -- SERP results, keyword volumes, backlinks at $0.0006/query.

dataforseo/serpdataforseo/keywordsdataforseo/backlinks
dataforseo/serp-- Parameters & Example
keywordstringrequired

Search keyword.

location_namestring

Location (default: United States).

language_namestring

Language (default: English).

terminal
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: Yes

Social media posting -- schedule and publish to Twitter, LinkedIn, and more.

postiz/create-postpostiz/list-postspostiz/get-integrations
postiz/create-post-- Parameters & Example
contentstringrequired

Post content text.

platformsstring[]

Target platforms.

media_urlstring

Media attachment URL.

terminal
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: Yes

Data scraping -- Google Maps places, reviews, and email/contact extraction.

outscraper/google-mapsoutscraper/google-reviewsoutscraper/emails-and-contacts
outscraper/google-maps-- Parameters & Example
querystringrequired

Search query (e.g. 'restaurants in Miami').

limitnumber

Max results (default: 20).

terminal
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: Yes

GitHub API -- search repos, read READMEs, and list issues.

github/search-reposgithub/get-readmegithub/list-issues
github/search-repos-- Parameters & Example
querystringrequired

Search query (GitHub search syntax).

per_pagenumber

Results per page (default: 10).

terminal
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-only

List events, create events, check availability. Requires Google OAuth token via BYOK.

calendar/list-eventscalendar/create-eventcalendar/check-availability
calendar/list-events-- Parameters & Example
calendar_idstring

Calendar ID (default: primary).

max_resultsnumber

Max events (default: 10).

time_minstring

Start time ISO string.

time_maxstring

End time ISO string.

terminal
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-only

File management -- list, search, read, and upload files. Requires Google OAuth via BYOK.

drive/list-filesdrive/searchdrive/get-contentdrive/upload-text
drive/search-- Parameters & Example
querystringrequired

Search query for file content.

page_sizenumber

Results per page (default: 20).

terminal
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: Yes

Simple cheap SMS sending and delivery status checking.

textbelt/send-smstextbelt/check-status
textbelt/send-sms-- Parameters & Example
phonestringrequired

Recipient phone number.

messagestringrequired

SMS message text.

terminal
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: No

Query the capability registry -- check what tools exist before building.

toolroute/check_before_buildtoolroute/search
toolroute/check_before_build-- Parameters & Example
taskstringrequired

Natural language description of what you want to build.

terminal
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: No

Describe your task in natural language -- ToolRoute picks the best tool and executes it.

auto/route
auto/route-- Parameters & Example
taskstringrequired

Natural language task description.

terminal
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"}}'

Browse the full tool registry

Error Handling

All errors follow a consistent format with an HTTP status code and a machine-readable error code.

Error response format
{
  "error": {
    "message": "Human-readable error description",
    "code": "machine_readable_code"
  }
}
CodeStatusMeaning
invalid_request400Missing fields or bad input
authentication_required401No API key provided
invalid_api_key401Key not found or revoked
insufficient_balance402No credits remaining
tool_not_found404Tool identifier not in registry
rate_limit_exceeded429Too many requests
adapter_error500Upstream 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).

Register a BYOK key
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

PlanRPMDaily / Monthly
Free10100/day
Pro6010,000/month
Enterprise300100,000/month

SDKs

Python

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

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.

.mcp.json (HTTP)
{
  "toolroute": {
    "type": "http",
    "url": "https://toolroute.ai/mcp",
    "headers": { "Authorization": "Bearer tr_live_xxx" }
  }
}

MCP Server Tools

ToolDescription
check_before_buildDescribe what you need, get matching tools
search_toolsSearch the registry by keyword
get_category_championGet the champion for a category
record_usageLog tool usage for belief evolution
challenge_toolChallenge a tool's position with evidence
librarian_statusRegistry stats and top beliefs
log_tool_requestLog 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.

CategoryToolsCost Range
Analytics
2 tools
PostHog, Sentry MCPFreemium
Communication
10 tools
ElevenLabs, Deepgram, DeepL, Gmail MCP, SendGrid, Slack API, Slack MCP, Textbelt, Twilio, VapiFree -- 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, WhisperFree -- Paid
CRM & Sales
4 tools
Apollo.io, HubSpot CRM, HubSpot MCP, SmartleadFreemium -- Paid
DevOps
4 tools
Cloudflare MCP, Docker MCP, GitHub MCP, Vercel MCPFree -- Freemium
Ecommerce
2 tools
Shippo, Shopify MCPFreemium
Finance
1 tool
Stripe MCPFreemium
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 skillsFree -- Usage-based
Marketing
12 tools
Ahrefs, Creatify, DataForSEO, Firecrawl, Google Ads API, LinkedIn API, Meta Marketing API, Outscraper, Postiz, Twitter/X API, YouTube Data APIFree -- Paid
Operations
10 tools
Google Drive, Google Drive MCP, Google Sheets, Google Sheets MCP, Linear, Linear MCP, n8n, Notion, Notion MCP, Zapier MCPFree -- Freemium
Scheduling
3 tools
Cal.com, Google Calendar, Google Calendar MCPFree -- Freemium
Security
3 tools
Cloudflare Turnstile, Semgrep MCP, Supabase AuthFree -- Freemium
Total87 tools across 12 categoriesFree -- 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:

ProtocolEndpoint
RESTPOST /api/v1/execute
MCP Streamable HTTPPOST /mcp
A2A (Agent-to-Agent)POST /api/a2a
OpenAI FunctionsGET /api/v1/tools?format=openai
SDKsPython / 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

EventTrigger
tool.execution.completedA tool call finishes successfully
tool.execution.failedA tool call fails (adapter or upstream error)
balance.lowAccount balance drops below configured threshold
balance.depletedAccount balance reaches $0.00
balance.topped_upCredits added via checkout or auto-top-up
key.createdA new API key is generated
key.revokedAn API key is deleted or revoked
byok.registeredA BYOK provider key is added or updated
usage.thresholdDaily or monthly usage exceeds configured threshold

Webhook Payload Format

Example: tool.execution.completed
{
  "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:

typescript
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.

April 15, 2026

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
April 13, 2026

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
April 10, 2026

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
April 8, 2026

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
April 1, 2026

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
March 2026

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