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.
You do not have to pick the providers. Set auto_routing to "accuracy", and
Telem picks them for you. Telem finds the topic of each query, then sends the
query to the three providers that do best on that topic.
curl -X POST https://router.telem.ai/v1/search \ -H "Authorization: Bearer $TELEM_API_KEY" \ -H "Content-Type: application/json" \ -d '{"user_input": {"query": "papers on speculative decoding for LLM inference"}, "search": {"auto_routing": "accuracy", "num_results": 2}}'{ "status": "succeeded", "routing": [ { "topic": "academic_papers", "score": 0.043288350105285645, "providers": ["perplexity", "brave", "exa"] } ], "preprocessor_runs": [ { "preprocessor_name": "perplexity", "output_payload": { "tier": "default", "results": [ { "rank": 1, "url": "https://arxiv.org/abs/2401.07851", "title": "Unlocking Efficiency in Large Language Model Inference: A Comprehensive Survey of Speculative Decoding", "summary": "[Submitted on 15 Jan 2024 (v1), last revised 4 Jun 2024 (this version, v3)]..." } ], "latency_ms": 1596 } }, { "preprocessor_name": "brave", "output_payload": { "tier": "default", "results": [ { "rank": 1, "url": "https://research.google/blog/looking-back-at-speculative-decoding/", "title": "Looking back at speculative decoding", "summary": "In 2022 we published \"Fast Inference from Transformers via Speculative Decoding\"..." } ], "latency_ms": 589 } }, { "preprocessor_name": "exa", "output_payload": { "tier": "default", "results": [ { "rank": 2, "url": "https://arxiv.org/abs/2211.17192", "title": "Fast Inference from Transformers via Speculative Decoding", "summary": "Fast Inference from Transformers via Speculative Decoding ... Inference from large autoregressive..." } ], "latency_ms": 2595 } } ], "normalized_schema_version": 2}The routing block shows the topic and the providers that Telem chose for
each query. A query with no clear topic runs on the default providers. The
installer asks if you want auto-routing, so the agent plugins can use it too.
How auto-routing works →
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.