API reference
Everything the IndexChex app does with index checks and URL submission is available over a REST API. Version 1 is IndexChex's own interface. Version 2 mirrors SpeedyIndex's API schema, so an existing SpeedyIndex integration can switch by changing its base URL and key.
Base URL and authentication
All endpoints sit under https://indexchex.com/api. Send your API key as the full value of the
Authorization header, with no prefix. Keys are created in your account's API settings,
and every key belongs to one user, so jobs are only visible to the account that created them.
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: application/json
Both versions allow 120 requests per minute per user and draw on the same credit balance as the app: 1 credit per URL for checks and standard submission, 60 per URL for instant submission.
Version 1
| Method | Path | Purpose | Parameters |
|---|---|---|---|
| POST | /v1/index-check/jobs | Create an index-check job | urls (1 to 10,000), name |
| GET | /v1/index-check/jobs/{run} | Status and counts for a check job | run |
| GET | /v1/index-check/jobs/{run}/report | Indexed, unindexed and failed URLs for a finished check | run |
| POST | /v1/index-submit/jobs | Create a submission job | urls, name, instantIndex, checker (0 to 5) |
| GET | /v1/index-submit/jobs/{run} | Status, counts and scheduled re-check details | run |
| GET | /v1/balance | Current credit balance | none |
instantIndex: true selects instant mode (up to 1,000 URLs); otherwise standard mode
applies (up to 10,000 URLs). checker from 1 to 5 schedules an automatic index check that
many days after submission. Poll status until a job finishes, then read the report. A URL listed under
failed_links could not be looked up and is not evidence that it is unindexed.
Version 2 (SpeedyIndex-compatible)
| Method | Path | Purpose | Parameters |
|---|---|---|---|
| GET | /v2/account | Credit balance | none |
| POST | /v2/task/google/{type}/create | Create an indexer or checker task | urls, title, instantIndex, checker (0 to 5) |
| GET | /v2/task/google/{type}/list/{page} | List tasks, newest first, 1,000 per page | page (from 0) |
| POST | /v2/task/google/{type}/status | Status of one or more tasks | task_id or task_ids |
| POST | /v2/task/google/{type}/report | URL-level results of a completed task | task_id |
| POST | /v2/google/url | Submit a single URL | url |
{type} is indexer or checker, and google is the
only engine. Because IndexChex has one credit balance, the account endpoint reports the same number
for indexer and checker. Reports are served once a task is complete; an indexer report also needs a
scheduled re-check, since it lists which submitted URLs were found in Google.
code |
HTTP | Meaning |
|---|---|---|
| 0 | 200 | Success |
| 1 | 402 | Insufficient credits |
| 2 | 429 or 500 | Rate limit hit, or the request could not be completed |
| 3 | 422 | Invalid payload, unsupported engine or type, or report not ready |
| 404 | 404 | Task not found for this account |
Full documentation
Request and response examples in Python, PHP and cURL are in the in-app API documentation once you are signed in.