Crawdar Business Research
Find companies from a plain-language brief, inspect source-backed qualification checks and unknowns, and export CSV or JSON. Hosted MCP with a free rate-limited tier and fictional sandbox.
Documentation
Give your agent qualified prospects, not raw pages.
Connect with remote MCP, call the versioned JSON API, or use a JavaScript-capable browser. Crawdar returns why each company matches, criterion-level decisions, a classified public contact route, and the supporting sources.
Recommended interface
Remote MCP
Point any Streamable HTTP client at https://crawdar.com/api/mcp. Start with sandbox_businesses to test your integration without consuming live search capacity.
research_businesses
One-call natural-language search with compact or full output.
search_businesses
Structured search for explicit target, geography, qualifier, and fields.
sandbox_businesses
Deterministic fictional results for contract and agent-loop testing.
start_lead_search
Returns a private job with progress, status, export, retry, and cancel URLs.
get_lead_search
Reads progress or retrieves result pages with an opaque cursor.
refine_lead_search
Creates a new job while preserving the original.
retry_lead_search
Replaces a failed or stopped job.
cancel_lead_search
Cancels queued or running work.
explain_crawdar
Returns semantics, limits, interfaces, and safe-use rules.
Every tool publishes an explicit JSON output schema. Keep each jobToken private, honor progress and retry intervals, and keep evidence URLs attached.
{
"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);
Search and sandbox tools are read-only. Clients can require approval for cancel_lead_search.
Direct integration
REST API
Test without quota or provider calls
curl https://crawdar.com/api/v1/sandbox/search \
-H 'content-type: application/json' \
-d '{ "target": "independent veterinary clinics", "geography": "Berlin, Germany" }'
Sandbox businesses are fictional and schema-compatible. Never use them as real leads.
Get a free agent key
Create a service identity without an account. The secret is shown once, so store it securely. A key gets its own daily quota and can be revoked at any time with DELETE /api/v1/keys.
curl https://crawdar.com/api/v1/keys \
-H 'content-type: application/json' \
-d '{ "label": "My research agent" }'
Send the returned secret as x-api-key or Authorization: Bearer YOUR_KEY to the REST API or as a custom header in an MCP client. Small anonymous samples still work without a key.
Run a search
POST a target and geography to the stable v1 endpoint. Add an Idempotency-Key when starting a resumable job so network retries cannot create duplicate work.
curl https://crawdar.com/api/v1/search \
-H 'content-type: application/json' \
-H "x-api-key: $CRAWDAR_API_KEY" \
-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 or live status.
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 Qualified, Possible, 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.
Verify before action
Confidence measures available evidence. It is not a guarantee that a company is suitable, active, or ready to buy. Compare the returned criteria with the original brief: a qualified label means the recorded checks passed, not that every nuance was understood.
Handle missing data honestly
A missing field stays missing. Do not infer personal emails, revenue, ownership, or a negative attribute from silence. Compact MCP results expose sourceUrls; full REST and sandbox results retain evidence[].url.
Respect limits and policy
Free API and MCP usage is rate limited. Honor retry-after responses and the crawler, privacy, and responsible-use terms. Inspect errorCode, requestId, and retry guidance when a tool fails.