Radar Crawler REST API & MCP Tools
Call Radar's Crawler from your own code or AI agent via REST API or MCP tools β same crawl engine, pricing, and contact extraction as the dashboard.
Everything the Crawler does in the dashboard β Brand and Directory crawls, contact extraction, and the optional HTML/Markdown page output β is also available as a REST API and as MCP tools, so you can call it from your own code or point an AI agent at it directly.
Authentication
Create a key at Settings β API Keys in the dashboard. The plaintext key is shown exactly once β store it yourself, Radar only keeps a hash. Send it as a bearer token on every request:
Authorization: Bearer rdr_live_...REST API
Base URL: https://radar.yaeris.com/api/v1
POST /crawl β start a crawl.
{
"type": "BRAND",
"urls": ["https://example.com"],
"pageLimit": 30,
"depthLimit": 2,
"format": ["contacts", "markdown"]
}type:"BRAND"(crawl one or more business sites directly) or"DIRECTORY"(crawl a listing/index page and follow individual listings).urls: required, non-empty.pageLimit/depthLimit: optional (default 100 / 2).format: optional, defaults to["contacts"]. Any combination of:"contacts"β business name/phone/email/website (today's default behavior)."html"β the raw fetched page HTML, capped at 300,000 characters (truncated with a trailing marker past that)."markdown"β a readability-cleaned Markdown version of the page content, capped at 100,000 characters β the format an LLM/RAG pipeline typically wants, far cheaper in tokens than raw HTML. Falls back to converting the whole page if it isn't article-shaped enough for readability extraction to find a main content block (e.g. a directory listing page), so it's never returned empty just because a page isn't an article.
β 202 { "jobId": "...", "status": "QUEUED" }
GET /crawl/:jobId β status and results.
status is one of QUEUED / RUNNING / DONE / FAILED. A page's fetchStatus (SUCCESS / BLOCKED / FAILED / TIMEOUT) explains that specific page even when the overall job succeeded. html/markdown are null unless requested via format on the original POST /crawl call.
Errors
400
Bad request β missing/invalid fields (message explains which).
401
Missing, malformed, or invalid Authorization header.
402
Insufficient credit balance for this operation.
404
The referenced job doesn't exist on this project.
429
Rate limit exceeded β check Retry-After.
Every error body is { "error": "..." }.
MCP server
Endpoint (Streamable HTTP, stateless): https://radar.yaeris.com/api/mcp
Same bearer-token auth as the REST API, sent as a header on the connection.
Claude Code (project-scoped .mcp.json, or claude mcp add):
Claude.ai / other MCP clients: add a remote MCP connector pointing at the same URL, with the same Authorization header.
start_crawl
POST /crawl
get_crawl_job
GET /crawl/:jobId
Each tool wraps the identically-named REST operation above β same inputs, same validation, same credit charges. A typical agent calls start_crawl, then polls get_crawl_job until status is no longer QUEUED/RUNNING.