API Reference

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.

Base URL: https://indexbolt.com/api/v1JSON request & responseBearer token auth

Authentication#

All API requests require a Bearer token in the Authorization header. Generate API keys from your dashboard settings.

Example request header
Authorization: Bearer ib_your_api_key_here
Important: API keys start with the ib_ 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.

EndpointLimitWindow
POST /submit10 requests60 seconds
GET /balance30 requests60 seconds
GET /submissions, /submissions/:id60 requests60 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 StatusCodeDescription
400INVALID_INPUTInvalid request body or parameters
401UNAUTHORIZEDMissing or invalid API key
402INSUFFICIENT_CREDITSNot enough credits for the operation
403FORBIDDENEmail not verified
404NOT_FOUNDResource not found
429RATE_LIMITEDToo many requests
500INTERNAL_ERRORUnexpected server error

Credits & Pricing#

Normal Indexing

1 credit / URL

Standard processing. URLs are submitted to Google for indexing.

Instant 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#

POST/api/v1/submit10 req / 60s

Submit a batch of URLs for Google indexing.

Request Body

ParameterTypeRequiredDescription
urlsstring[]RequiredArray of URLs to index (1–1,000)
indexingTypestringRequired"normal" or "instant"
projectIdstringOptionalAssociate with a project
submissionNamestringOptionalCustom name for the submission

Example Request

cURL
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": []
  }
}
URL Validation: URLs must use HTTP/HTTPS, be under 2,048 characters, and point to public addresses. Private/internal IPs (localhost, 10.x.x.x, 192.168.x.x, etc.) are rejected. Duplicate URLs are automatically removed.

List Submissions#

GET/api/v1/submissions60 req / 60s

Retrieve a paginated list of your submissions.

Query Parameters

ParameterTypeRequiredDescription
pageintegerOptionalPage number (default: 1)
pageSizeintegerOptionalResults per page, max 100 (default: 20)
statusstringOptional"queued", "processing", "completed", "partial_failure", or "failed"

Example Request

cURL
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#

GET/api/v1/submissions/:id60 req / 60s

Get full details of a submission, including per-URL status.

Path Parameters

ParameterTypeRequiredDescription
idstringRequiredThe submission ID

Example Request

cURL
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#

GET/api/v1/balance30 req / 60s

Check your current credit balance.

Example Request

cURL
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.