Quickstart
Get an API key and make your first search call in a few minutes.
Route agent web searches and inspect the traces.
Route searches across providers, fetch pages clean, observe every step.
curl -fsSL https://docs.telem.ai/install.sh | shIt asks before changing anything and sets up the agents you pick. Keys come from
the console; searches show up there too. --dry-run
previews. Prefer a skill, MCP, Python, JavaScript, or plain REST? The
quickstart walks every path.
Then your agent just has it. A real opencode run, replayed — the model
reaches for telem_search on its own, sends both angles as one interaction,
then reads the winning pages with telem_fetch.
Every one of those calls lands in the console as a session trajectory. Same two tools on Claude Code, Codex, OpenClaw and Pi — OpenCode setup →
Two operations do the work, and both answer in the same shape: many providers in, one envelope out, every field in the same place whoever supplied it.
Ask once; multiple independent search indexes answer in parallel, every result mapped to the same fields and tagged with the provider that found it.
Pick any subset per request — the slugs above are whatproviders.include takes in the call below.See how every provider's output is normalized →
curl -X POST https://router.telem.ai/v1/search \ -H "Authorization: Bearer $TELEM_API_KEY" \ -H "Content-Type: application/json" \ -d '{"user_input": {"query": "when was the International Space Station launched"}, "search": {"providers": {"include": ["exa", "brave"]}, "num_results": 3}}'{ "status": "succeeded", "preprocessor_runs": [ { "preprocessor_name": "exa", "output_payload": { "tier": "default", "results": [ { "rank": 1, "url": "https://www.nasa.gov/history/20-years-ago-space-station-construction-begins/", "title": "20 Years Ago, Space Station Construction Begins - NASA", "summary": "Nov 20, 2018 ... The largest, most complex international construction project in space began..." } ], "latency_ms": 1471 } }, { "preprocessor_name": "brave", "output_payload": { "tier": "default", "results": [ { "rank": 1, "url": "https://en.wikipedia.org/wiki/International_Space_Station", "title": "International Space Station - Wikipedia", "summary": "The ISS is the political product of the development of international cooperation..." } ], "latency_ms": 598 } } ], "normalized_schema_version": 2}Same fields whichever index answered — you write one parser, and adding a provider never rewrites it.
Then read the pages worth keeping. POST /v1/fetch takes a list of URLs and
returns one document each — page text, not raw HTML — through its own chain of
providers, the first that answers winning.
Walked in order until one answers — options.providers pins the chain to a subset. brightdata is pin-only: LinkedIn records, never walked by default.See how every fetch provider's output is normalized →
curl -X POST https://router.telem.ai/v1/fetch \ -H "Authorization: Bearer $TELEM_API_KEY" \ -H "Content-Type: application/json" \ -d '{"urls": ["https://en.wikipedia.org/wiki/International_Space_Station"], "options": {"tier": "default"}}'{ "status": "succeeded", "preprocessor_runs": [ { "preprocessor_name": "web_fetch", "output_payload": { "fetched_results": [ { "url": "https://en.wikipedia.org/wiki/International_Space_Station", "status": "succeeded", "title": "International Space Station - Wikipedia", "content": "# International Space Station\n\nThe International Space Station (ISS) is a large space station assembled and maintained in low Earth orbit by a collaboration of five space agencies and their contractors...", "content_format": "markdown", "content_length": 184213, "http_status": 200, "provider": "firecrawl", "latency_ms": 2184 } ], "succeeded_count": 1, "failed_count": 0 } } ], "normalized_schema_version": null}One URL failing never fails the call — it comes back as its own failed row
with the reason, next to the documents that worked.
POST /v1/fetch.Reading this as an AI agent? /llms.txt indexes the whole docs;
/agents.md is your playbook.
Quickstart
Get an API key and make your first search call in a few minutes.
Install for your agent
Add Telem to Claude Code, Codex, OpenCode, Pi, or OpenClaw — one page per host, with the exact install command.
API Reference
Explore the full HTTP API — endpoints, request/response shapes, and error codes.
For AI agents
A machine-readable playbook: when to reach for Telem, how to migrate an existing provider call, and the verified install commands.