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.

  1. Open https://crawdar.com/.
  2. Fill [data-testid="target-input"] and [data-testid="quick-geography-input"].
  3. Click [data-testid="quick-search-button"].
  4. 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.

  1. Call explain_crawdar once when result semantics are unfamiliar.
  2. For a resumable workflow, call start_lead_search and store the returned id and jobToken securely.
  3. Call get_lead_search with view: "compact" and a small limit. If status is running, honor the retry interval. If it is retryable, call retry_lead_search.
  4. Inspect evidence and qualification checks. Keep source URLs with every downstream record.
  5. If results are empty, inspect diagnostics and explained exclusions before refining the brief.
  6. Pass nextCursor back unchanged. Request full only 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.