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.
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.
Generate your API key in the dashboard: Login → API 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.
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 -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 -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 -X GET "https://app.indexbooster.net/api/v1/credits"
-H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json"
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())
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());
})();
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 } . |
http://
or https://
; root URLs are normalized with a trailing slash (https://site.com/
).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./v1/submit-url
uses your personal project API
(created automatically on first call).Code | Reason | Action |
---|---|---|
400 | Invalid input | Check JSON, URL format, and limits. |
403 | Invalid/disabled key or insufficient credits | Verify X-API-Key, enable API, top up credits. |
404 | Project not found | Make sure the project_id belongs to you. |
429 | Rate limit exceeded | Reduce frequency; wait for the window to reset. |
100 requests per minute per API key. Exceeding this returns 429 Too Many Requests
.
Log in to IndexBooster → go to the API section. Enable access and generate a key. You can regenerate it if needed.
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.
Up to 2,000 URLs per request. If the limit is exceeded, the server returns 400
We automatically skip URLs that are already in “Request in progress” status — credits are not charged again for them.