URL Indexing API Documentation
The IndexBolt URL indexing API lets you submit URLs to Google for indexing, track submission progress, and manage credits programmatically. Integrate bulk URL indexing into your SEO workflows, WordPress plugins, or custom tools.
https://indexbolt.com/api/v1•JSON request & response•Bearer token authAuthentication#
All API requests require a Bearer token in the Authorization header. Generate API keys from your dashboard settings.
Authorization: Bearer ib_your_api_key_hereib_ prefix. Keep your keys secret — do not expose them in client-side code. You can create up to 5 API keys per account.Rate Limits#
Rate limits are applied per API key using a sliding window. When rate limited, you'll receive a 429 status code.
| Endpoint | Limit | Window |
|---|---|---|
POST /submit | 10 requests | 60 seconds |
GET /balance | 30 requests | 60 seconds |
GET /submissions, /submissions/:id | 60 requests | 60 seconds |
Response headers X-RateLimit-Remaining and X-RateLimit-Reset indicate your current usage.
Error Handling#
All errors return a consistent JSON structure:
{
"success": false,
"error": {
"code": "ERROR_CODE",
"message": "Human-readable description"
}
}| HTTP Status | Code | Description |
|---|---|---|
400 | INVALID_INPUT | Invalid request body or parameters |
401 | UNAUTHORIZED | Missing or invalid API key |
402 | INSUFFICIENT_CREDITS | Not enough credits for the operation |
403 | FORBIDDEN | Email not verified |
404 | NOT_FOUND | Resource not found |
429 | RATE_LIMITED | Too many requests |
500 | INTERNAL_ERROR | Unexpected server error |
Credits & Pricing#
1 credit / URL
Standard processing. URLs are submitted to Google for indexing.
10 credits / URL
Priority processing for faster indexing results.
Credits never expire. Each submission can contain between 1 and 1,000 URLs. Invalid URLs are filtered out and do not consume credits.
Submit URLs#
/api/v1/submit10 req / 60sSubmit a batch of URLs for Google indexing.
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
urls | string[] | Required | Array of URLs to index (1–1,000) |
indexingType | string | Required | "normal" or "instant" |
projectId | string | Optional | Associate with a project |
submissionName | string | Optional | Custom name for the submission |
Example Request
curl -X POST https://indexbolt.com/api/v1/submit \
-H "Authorization: Bearer ib_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"urls": [
"https://example.com/page-1",
"https://example.com/page-2"
],
"indexingType": "normal"
}'Response — 201 Created
{
"success": true,
"data": {
"submissionId": "sub_abc123",
"totalUrls": 2,
"creditsUsed": 2,
"balanceAfter": 98,
"invalidUrls": []
}
}List Submissions#
/api/v1/submissions60 req / 60sRetrieve a paginated list of your submissions.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
page | integer | Optional | Page number (default: 1) |
pageSize | integer | Optional | Results per page, max 100 (default: 20) |
status | string | Optional | "queued", "processing", "completed", "partial_failure", or "failed" |
Example Request
curl https://indexbolt.com/api/v1/submissions?page=1&pageSize=10 \
-H "Authorization: Bearer ib_your_api_key"Response — 200 OK
{
"success": true,
"data": {
"submissions": [
{
"id": "sub_abc123",
"name": "Submission #1",
"status": "completed",
"indexingType": "normal",
"totalUrls": 5,
"creditsUsed": 5,
"createdAt": "2025-01-15T10:30:00Z",
"completedAt": "2025-01-15T11:45:00Z"
}
],
"pagination": {
"page": 1,
"pageSize": 10,
"total": 45,
"totalPages": 5
}
}
}Get Submission#
/api/v1/submissions/:id60 req / 60sGet full details of a submission, including per-URL status.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Required | The submission ID |
Example Request
curl https://indexbolt.com/api/v1/submissions/sub_abc123 \
-H "Authorization: Bearer ib_your_api_key"Response — 200 OK
{
"success": true,
"data": {
"id": "sub_abc123",
"name": "Submission #1",
"status": "completed",
"indexingType": "normal",
"totalUrls": 5,
"creditsUsed": 5,
"createdAt": "2025-01-15T10:30:00Z",
"completedAt": "2025-01-15T11:45:00Z",
"urls": [
{ "url": "https://example.com/page-1", "status": "completed" },
{ "url": "https://example.com/page-2", "status": "completed" }
]
}
}Check Balance#
/api/v1/balance30 req / 60sCheck your current credit balance.
Example Request
curl https://indexbolt.com/api/v1/balance \
-H "Authorization: Bearer ib_your_api_key"Response — 200 OK
{
"success": true,
"data": {
"balance": 98,
"unit": "credits"
}
}Ready to get started?
Create an account, grab your API key, and start indexing URLs in minutes.