Submit URLs for indexing programmatically. Simple REST endpoints, Bearer-token auth, and predictable JSON responses.
All requests authenticate with your secret API key sent as a Bearer token in the Authorization header. You can find and regenerate your key in Settings → API.
Never expose your secret key in client-side code. Treat it like a password.
All endpoints are relative to your site’s REST base:
Limits depend on your plan. Each request accepts up to 200 URLs. One URL submitted equals one credit consumed.
| Plan | Requests / min | URLs / request |
|---|---|---|
| Starter | 30 | 200 |
| Growth | 120 | 200 |
| Agency / Custom | 600+ | 200 |
Queue a batch of URLs for indexing. Returns a batch ID you can poll for status.
| Field | Type | Description |
|---|---|---|
urls | string[] | Array of absolute URLs. Max 200 per request. |
curl -X POST https://www.indexinstantly.com/wp-json/indexinstantly/v1/index \ -H "Authorization: Bearer ii_live_xxxxxxxxxxxxxxxxxxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "urls": ["https://example.com/a", "https://example.com/b"] }'
{
"batch_id": "btch_8K2qА7d3",
"accepted": 2,
"status": "queued",
"remaining_credits": 9798
}
Retrieve the current processing status of a previously submitted batch.
| Status | Meaning |
|---|---|
queued | Accepted and waiting in the indexing queue. |
processing | Submission to search engines in progress. |
indexed | Successfully submitted for indexing. |
failed | Could not be submitted (see error detail). |
Check your remaining credit balance and current plan.
The API uses conventional HTTP status codes. Errors return a JSON body with a code and message.
| Code | Meaning |
|---|---|
401 | Missing or invalid API key. |
402 | Insufficient credits. |
422 | Too many URLs (limit 200) or invalid payload. |
429 | Rate limit exceeded — 60 requests per minute per API key. The response includes a Retry-After header telling you how many seconds to wait. |
const res = await fetch("https://www.indexinstantly.com/wp-json/indexinstantly/v1/index", { method: "POST", headers: { "Authorization": "Bearer ii_live_xxxxxxxxxxxxxxxxxxxxxxxx", "Content-Type": "application/json" }, body: JSON.stringify({ urls: ["https://example.com/page"] }) }); const data = await res.json();
import requests r = requests.post( "https://www.indexinstantly.com/wp-json/indexinstantly/v1/index", headers={"Authorization": "Bearer ii_live_xxxxxxxxxxxxxxxxxxxxxxxx"}, json={"urls": ["https://example.com/page"]}, ) print(r.json())