Bulk lookups

Check up to 1,000 numbers in a single batch.

For volumes beyond a single request, submit a batch and poll for results. This is a separate code path from the sync endpoint, so a large batch never adds latency to your single-lookup calls.

[TO BE CONFIRMED] This endpoint is live and processes real submissions, but the queue it depends on (Upstash QStash) isn't configured in production yet — until it is, batches complete with every row refunded rather than a real verdict. For a real, working bulk check right now, use the dashboard's own Bulk Verify page (/app/bulk-verify) or the free /tools/bulk-checker tool.

1. Submit a batch

curl -X POST https://api.usefilter.io/api/v1/filter/bulk \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"phones": ["+919876543210", "+919876500000"], "source": "website"}'

Credits for the entire batch are reserved upfront, atomically. If your balance can't cover the full batch, nothing is queued and you get 402 — never a partially-processed batch you didn't expect.

2. Poll for results

curl https://api.usefilter.io/api/v1/filter/bulk/btch_a1b2c3d4 \
  -H "Authorization: Bearer YOUR_API_KEY"

Poll no more than once every 5 seconds. results grows as rows complete — it will be empty immediately after submission.

Limits

  • 1,000 phone numbers maximum per batch.
  • Each row follows the same credit and cache rules as a single lookup.
  • Outbound webhooks (a push notification when your batch finishes) are on the roadmap but not available yet — for now, polling is the only option.