FEATURE · BATCH PROCESSING

Check hundreds of URLs at once

Paste a list of URLs or import from a sitemap.xml. We check them all concurrently and give you filterable, sortable, exportable results.

How fast is it?

Batch speed depends on your plan's concurrency limit -- how many URLs we check simultaneously. More concurrency means faster results.

PlanConcurrent checks430 URLs (estimated)
Free10~43 seconds
Pro25~17 seconds
Business50~9 seconds

Per-host rate limiting (max 15 concurrent connections to the same domain) ensures we never overwhelm a target server, even in large batches.

Batch workflow

Paste URLs or import sitemap → Submit batch → Watch progress in real-time → Filter, sort, and export results

Sitemap import

Enter a sitemap.xml URL and we parse it automatically, extracting all page URLs. Works with sitemap indexes too -- we follow nested sitemaps to find every URL.

Export options

CSV

Download a CSV file with all results. Open in Excel, Google Sheets, or any spreadsheet app.

Google Sheets

Export directly to a Google Spreadsheet. Append to your default sheet or create a new one.

Share link

Generate a public link to your batch results. Share with clients, teammates, or on social media.

Async by design

Most redirect checkers are synchronous -- you submit a URL, wait for the response, submit another. That works for one-off spot checks. It falls apart when you have 500 URLs and need to integrate the results into your own systems.

Checkredirects.io is async. Submit a batch, get a 202 with a job ID, and receive a signed webhook when processing finishes. No polling loops, no held connections, no timeouts.

API-driven workflow

POST /v1/batch with URLs + webhook_url → We process everything in the background → Signed webhook fires on completion → GET /v1/batch/{id} for full results

Attach your own metadata

Need to tie results back to records in your CRM, spreadsheet, or database? Use the items format to attach arbitrary JSON metadata to each URL. We store it, return it with your results, and include it in exports. No post-processing lookup needed.

Example: passthrough data

POST /v1/batch
{
  "items": [
    {"url": "https://example.com", "data": {"record_id": "abc123"}},
    {"url": "https://other.io",    "data": {"record_id": "def456"}}
  ],
  "webhook_url": "https://you.com/callback"
}

When you fetch results, your data comes back exactly as you sent it, alongside the redirect chain, status codes, and timing. Available on all plans.

Result retention

If a webhook delivery fails or your downstream service is down, batch results remain available via the API. Retention runs 30 days on Free, 90 days on Pro, and 6 months on Business.

PlanResult retention
Free30 days
Pro90 days
Business6 months

Signed webhook delivery

Every webhook is HMAC-SHA256 signed with your organization's secret key. Verify the X-Signature header to confirm it came from us. Failed deliveries are retried automatically, and you can check delivery status on any batch via the API.

Frequently asked questions

How many URLs can I check at once?

Up to 500 URLs per batch. Paste them, upload a CSV, or import directly from a sitemap.xml. Results come back with status codes, redirect chains, timing, and TLS details for every URL.

Can I get a webhook when my batch is done?

Yes. Add a webhook_url to your batch request and we POST a signed notification when processing completes. Every webhook is HMAC-SHA256 signed with your organization's secret key.

Can I attach my own metadata to each URL?

Yes. Use the items format to attach arbitrary JSON data to each URL. Your metadata is stored, returned with results, and included in CSV and Google Sheets exports. Available on all plans.

How long are batch results stored?

Results are stored for 30 days on Free, 90 days on Pro, and 6 months on Business. You can fetch them via the API at any time during that window.

Is the batch API synchronous or asynchronous?

Asynchronous. You submit URLs via POST /v1/batch, we process them in the background with concurrent workers, and notify you via webhook when done. No polling or held connections required. See the API docs for details.

Can I monitor URLs on a recurring schedule instead?

Yes. URL monitors let you schedule recurring checks from every 30 minutes to every 30 days, with automatic change detection and webhook notifications.

Run your first batch

Free plan includes 250 checks per month and batches of up to 25 URLs.

Sign up