IndexBooster API Documentation

The public API lets you programmatically add URLs for indexing, create projects, list projects/URLs, and check your credits balance.

Base URL: https://app.indexbooster.net/api
Authentication: every request must include the header X-API-Key with your API key.


Authentication

Generate your API key in the dashboard: LoginAPI IndexBooster. Then add this header to requests:

X-API-Key: YOUR_API_KEY

Tip: when calling POST /v1/submit-url without specifying a project, your personal project named API is used/created automatically.


Quick Start

cURL — submit URLs to the default API project
curl -X POST "https://app.indexbooster.net/api/v1/submit-url" \
  -H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json" \
  -d '{
    "urls": ["https://example.com/", "https://example.com/page-1"]
  }'
cURL — create a project and add URLs
curl -X POST "https://app.indexbooster.net/api/v1/projects/create" \
  -H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json" \
  -d '{
    "name": "My API Project",
    "description": "Created via API",
    "urls": ["https://example.com/","https://example.com/page-1"]
  }'
cURL — submit URLs to an existing project (id=123)
curl -X POST "https://app.indexbooster.net/api/v1/projects/123/submit-url" \
  -H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json" \
  -d '{
    "urls": ["https://example.com/new-page"]
  }'
cURL — Check remaining credits
curl -X GET "https://app.indexbooster.net/api/v1/credits" 
  -H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json"
Python (requests)
import requests

API_BASE = "https://app.indexbooster.net/api"
API_KEY = "YOUR_API_KEY"
headers = {"X-API-Key": API_KEY, "Content-Type": "application/json"}

# 1) Submit URLs to the default API project
r = requests.post(f"{API_BASE}/v1/submit-url", json={
  "urls": ["https://example.com/", "https://example.com/page-1"]
}, headers=headers)
print("submit default:", r.status_code, r.json())

# 2) Create a project + add URLs
r = requests.post(f"{API_BASE}/v1/projects/create", json={
  "name": "My API Project",
  "description": "Created from script",
  "urls": ["https://example.com/a","https://example.com/b"]
}, headers=headers)
print("create project:", r.status_code, r.json())

# 3) Add URLs to an existing project (id=123)
r = requests.post(f"{API_BASE}/v1/projects/123/submit-url", json={"urls": ["https://example.com/new"]}, headers=headers)
print("add to project:", r.status_code, r.json())

# 4) Credits balance
r = requests.get(f"{API_BASE}/v1/credits", headers=headers)
print("credits:", r.status_code, r.json())
Node.js (fetch)
const fetch = (...args) => import('node-fetch').then(({default: fetch}) => fetch(...args));

const API_BASE = "https://app.indexbooster.net/api";
const API_KEY = "YOUR_API_KEY";
const headers = { "X-API-Key": API_KEY, "Content-Type": "application/json" };

(async () => {
  // Default API project
  let res = await fetch(API_BASE + "/v1/submit-url", {
    method: "POST", headers, body: JSON.stringify({ urls: ["https://example.com/"] })
  });
  console.log("submit default:", await res.json());

  // Named project
  res = await fetch(API_BASE + "/v1/projects/create", {
    method: "POST", headers, body: JSON.stringify({
      name: "My API Project",
      description: "Created via Node",
      urls: ["https://example.com/x","https://example.com/y"]
    })
  });
  console.log("create project:", await res.json());
})();

Endpoints

Method Path Description Notes
POST /v1/submit-url Adds URLs to your default API project (created automatically on first use). Up to 2,000 URLs per request; 1 credit per new URL; URLs already in “Request in progress” are skipped.
POST /v1/projects/create Creates a named project and adds URLs right away. Project name is unique per user.
POST /v1/projects/<project_id>/submit-url Adds URLs to an existing project. Same rules as /v1/submit-url.
GET /v1/projects Lists your projects. Returns: id, name, description, created_at, updated_at (ISO).
GET /v1/projects/<project_id>/urls Lists a project’s URLs with indexing status. Fields include: indexable, indexing_status, snippet_info.
GET /v1/credits Returns remaining credits balance. Simple JSON: { "credits": number }.

Rules & Responses

  • URL list: up to 2,000 URLs per request; URLs must start with http:// or https://; root URLs are normalized with a trailing slash (https://site.com/).
  • Credits: 1 credit is charged for each truly new URL. URLs already in “Request in progress” are not charged again.
  • Success response (200): contains aggregated counters (submitted, deducted_credits) and a list of created records with id, url. For /v1/submit-url, the project_id is also returned.
  • Default API project: calling /v1/submit-url uses your personal project API (created automatically on first call).

Error Codes

CodeReasonAction
400Invalid inputCheck JSON, URL format, and limits.
403Invalid/disabled key or insufficient creditsVerify X-API-Key, enable API, top up credits.
404Project not foundMake sure the project_id belongs to you.
429Rate limit exceededReduce frequency; wait for the window to reset.

Rate Limits

100 requests per minute per API key. Exceeding this returns 429 Too Many Requests.

FAQ

How do I get an API key?

Log in to IndexBooster → go to the API section. Enable access and generate a key. You can regenerate it if needed.

What is the “Default API project”?

It’s your personal project named API created automatically on the first call to POST /v1/submit-url and used by default for subsequent calls to that endpoint.

How many URLs can I send at once?

Up to 2,000 URLs per request. If the limit is exceeded, the server returns 400

How to avoid re-charging duplicates?

We automatically skip URLs that are already in “Request in progress” status — credits are not charged again for them.