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.

research_businesses

One-call natural-language search with compact or full bounded output.

search_businesses

One-call structured search for explicit target, geography, qualifier, and fields.

start_lead_search

Returns a private running job immediately with an id, jobToken, status URL, export URL, and retry URL.

get_lead_search

Reads status or retrieves compact and full pages with an opaque cursor.

refine_lead_search

Creates a new job from changed criteria while preserving the original search.

retry_lead_search

Creates a replacement if a worker stops before completing the original job.

explain_crawdar

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.

  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 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.

  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.

Handle missing data honestly

A missing field stays missing. Do not infer personal emails, revenue, ownership, or a negative attribute from silence.

Respect limits and policy

Free API and MCP usage is rate limited. Honor retry-after responses and the crawler, privacy, and responsible-use terms.