API for bulk checks

Run bulk checks and instant single-domain lookups from scripts, dashboards and browser extensions.

The API speaks plain JSON over HTTP: no SDKs, no webhooks to register, no queues to manage. Two access levels: instant single-target checks are free and rate-limited per IP; creating bulk jobs and reading their results requires a Pro API key.

Instant checks (free)

GET /api/v1/instant/{module}/{target} runs one check synchronously and returns the same fields the web report shows. Results are cached for 10 minutes, and each IP gets 30 fresh checks per hour — cache hits are free.

curl "https://bulkprobe.com/api/v1/instant/ssl-certificate/example.com"

/check/ssl-certificate/example.com — the human-friendly web version of the same check.

Bulk jobs (Pro API key)

POST /api/v1/jobs with a JSON body {module, items, options} creates a background job (up to 500 lines, 60 jobs per hour per key); poll GET /api/v1/jobs/{token} for results or fetch the CSV directly.

curl -X POST "https://bulkprobe.com/api/v1/jobs" \
  -H "Authorization: Bearer bp_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"module":"http-status","items":["https://example.com/","https://example.org/"]}'

Getting a key: Sign in, open Account and generate an API key — it is shown once and stored only as a hash. Pass it in the Authorization: Bearer header (or X-Api-Key).

Tools list

GET /api/v1/tools returns every tool with its input type, options and report fields — build your UI from it dynamically, just like the browser extension does.

curl https://bulkprobe.com/api/v1/tools

The machine-readable specification: openapi.json. openapi.json

Examples

$raw = file_get_contents('https://bulkprobe.com/api/v1/instant/http-status/example.com');
$data = json_decode($raw, true);
echo $data['fields']['status']; // 200

The browser extension is built on this API →