Crawdar for AI agents
Give your agent a business research tool.
Connect with remote MCP, call the versioned JSON API, or use a JavaScript-capable browser. Accepted businesses include public evidence so an agent can inspect the proof before acting.
Recommended interface
Remote MCP
Point any client that supports MCP Streamable HTTP at https://crawdar.com/api/mcp. No local server package is required. Start with research_businesses for a quick one-call brief. Use the job tools for larger workflows.
One-call natural-language search with compact or full bounded output.
One-call structured search for explicit target, geography, qualifier, and fields.
Returns a private running job immediately with an id, jobToken, status URL, export URL, and retry URL.
Reads status or retrieves compact and full pages with an opaque cursor.
Creates a new job from changed criteria while preserving the original search.
Creates a replacement if a worker stops before completing the original job.
Returns result meanings, safe operating rules, limits, and interface URLs.
Every tool publishes an explicit JSON output schema. Keep each jobToken private. While status is running, wait for the returned retry interval before calling get_lead_search again. If the response says retryable: true, call retry_lead_search. For export, request the returned exportUrl with Authorization: Bearer JOB_TOKEN. CSV is the default; add ?format=json for JSON.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "research_businesses",
"arguments": {
"brief": "Independent veterinary clinics in Berlin with an active first-party website. Exclude directories and chains.",
"output": "compact",
"limit": 10,
"offset": 0
}
}
}Copy and paste
Connect your client.
Claude Code or another .mcp.json client
{
"mcpServers": {
"crawdar": {
"type": "http",
"url": "https://crawdar.com/api/mcp"
}
}
}Claude Code can also connect from the command line with claude mcp add --transport http crawdar https://crawdar.com/api/mcp.
Codex
Add this to ~/.codex/config.toml:
[mcp_servers.crawdar]
url = "https://crawdar.com/api/mcp"OpenAI Responses API
import OpenAI from "openai";
const openai = new OpenAI();
const response = await openai.responses.create({
model: "gpt-5",
input: "Find independent veterinary clinics in Berlin. Keep the source URLs.",
tools: [{
type: "mcp",
server_label: "crawdar",
server_description: "Evidence-backed public business research",
server_url: "https://crawdar.com/api/mcp",
allowed_tools: ["research_businesses", "search_businesses"],
require_approval: "never"
}]
});
console.log(response.output_text);The OpenAI example marks the tools as not requiring approval because Crawdar's MCP tools are read-only. Your application can choose a stricter approval policy.
Direct integration
REST API
POST a target and geography to the stable v1 endpoint. Optional fields include a public-evidence qualifier and the fields you want returned.
curl https://crawdar.com/api/v1/search \
-H 'content-type: application/json' \
-d '{
"target": "independent veterinary clinics",
"geography": "Berlin, Germany",
"qualifier": "Must show an active first-party website. Exclude directories and chains.",
"fields": ["Website", "Location", "Business email", "Source links"]
}'The response includes results, searched sources, warnings, diagnostics, remaining free searches, and evidence URLs. See the OpenAPI 3.1 contract for the complete schema.
Browser fallback
Headless browser access
A JavaScript-capable browser can use the normal product. The core controls have stable names and test IDs for Playwright, Browser Use, and similar agents.
- Open
https://crawdar.com/. - Fill
[data-testid="target-input"]and[data-testid="quick-geography-input"]. - Click
[data-testid="quick-search-button"]. - Wait for
[data-testid="search-results"], then inspect the Verified, Likely, and Excluded lanes.
Prefer MCP or the API when possible. They return structured JSON without UI automation.
Recommended agent loop
Search, inspect, then act.
- Call
explain_crawdaronce when result semantics are unfamiliar. - For a resumable workflow, call
start_lead_searchand store the returned id and jobToken securely. - Call
get_lead_searchwithview: "compact"and a small limit. If status isrunning, honor the retry interval. If it is retryable, callretry_lead_search. - Inspect evidence and qualification checks. Keep source URLs with every downstream record.
- If results are empty, inspect diagnostics and explained exclusions before refining the brief.
- Pass
nextCursorback unchanged. Requestfullonly when detailed evidence is needed.
Operating rules
Keep the evidence attached.
Confidence measures available evidence. It is not a guarantee that a company is suitable, active, or ready to buy.
A missing field stays missing. Do not infer personal emails, revenue, ownership, or a negative attribute from silence.
Free API and MCP usage is rate limited. Honor retry-after responses and the crawler, privacy, and responsible-use terms.