Documentation
API documentation
Submit batches and read results from your own code, with safe retries built in.
Getting access
- Register, verify your email, and wait for your account to be approved.
- Open API access in your account and request access.
- An admin reviews the request. When approved, your key appears once on that page. Copy it right away.
- To rotate a key, request a rotation from the same page. The old key stops working the moment the new one is issued.
Basics
- Base URL
https://indexingurl.org/api/v1- Auth
Authorization: Bearer YOUR_KEY- Format
- JSON in, JSON out
- Rate limit
- 60 requests per minute (429 with
Retry-After)
Endpoints
| GET | /balance |
Your credit balance. |
| POST | /batches |
Submit 1 to 1,000 URLs. Reserves 1 credit per URL. |
| GET | /batches |
List your batches, newest first (25 per page). |
| GET | /batches/{batch_number} |
One batch summary. |
| GET | /batches/{batch_number}/results |
Per-URL status (200 per page). |
Submit a batch
Send an optional Idempotency-Key header. Repeating the same key with the same URLs returns the
original batch without charging again; the same key with different URLs is rejected (409).
curl -X POST https://indexingurl.org/api/v1/batches \
-H "Authorization: Bearer YOUR_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: my-unique-key" \
-d '{"urls": ["https://example.com/a", "https://example.com/b"]}'
201 Created
{
"batch_number": "IDX-20261022-000042",
"status": "accepted",
"entries_count": 2,
"created_at": "2026-10-22T14:03:11+00:00"
}
Check results
curl https://indexingurl.org/api/v1/batches/IDX-20261022-000042/results \
-H "Authorization: Bearer YOUR_KEY"
200 OK
{
"data": [
{ "url": "https://example.com/a", "status": "indexed", "result_message": null },
{ "url": "https://example.com/b", "status": "pending", "result_message": null }
],
"meta": { "current_page": 1, "last_page": 1, "total": 2 }
}
URL status: pending, upstream_accepted, indexed, failed.
Batch status: accepted, dispatching, upstream_accepted,
completed, partially_failed, failed, pending_reconciliation
(we are still confirming the outcome and never resend it; see the FAQ).
Errors
| 401 | Missing or invalid API key. |
| 402 | Not enough credits for the requested URLs. |
| 403 | Email not verified, account pending or suspended, or API access not enabled. |
| 409 | Idempotency-Key reused with a different URL list. |
| 422 | Invalid URLs, or batch size outside 1 to 1,000. |
| 429 | Too many requests. Wait for the Retry-After header. |
Error bodies are JSON with a message, and an error code where it helps (for example insufficient_credits).