User API Reference
The Rapid Indexer User API allows you to integrate indexing capabilities directly into your applications, scripts, or WordPress sites.
How to find your API Key
To access the API, you need your unique API key. Follow these steps to find it:
- Log in to your Rapid Indexer account.
- Click on your user account (email address) in the top right side of the header.
- Click on API Access in the dropdown menu (located just above the logout button).
Keep your API key secret. Do not share it publicly.
Base URL
Authentication
Authentication is handled via the X-API-Key header.
Header Example
Query Parameter Alternative
1. Get User Profile
Check your account status and credit balance.
Response Example
{
"success": true,
"user": {
"id": 123,
"email": "[email protected]",
"credits_balance": 500,
"created_at": "2023-10-27 10:00:00"
}
}
2. Create Task
Submit URLs for indexing or checking.
| Parameter | Type | Required | Description |
|---|---|---|---|
| urls | array/string | Yes | Array of URLs or newline-separated string |
| type | string | No | indexer (default) or checker |
| engine | string | No | google (default) or bing (Bing Indexing only, no Google) |
| title | string | No | Optional reference title |
| vip | bool | No | Enable VIP Queue (costs extra). Google only. |
| enable_google_indexing | bool | No | Submit to Google (2 credits/URL, ~91% indexed in our tests). Defaults to true when no enable_* flag is sent. Set false to run an add-on on its own. |
| enable_brave_indexing | bool | No | Brave Search Boost (Web Discovery Project signal). Free when combined with Google; 1 credit/URL on its own. Not guaranteed. |
| brave_keywords | string[] | No | Task-wide Brave search keywords (max 20). These are the searches Brave users are simulated to make before discovering your page, so use terms the page should rank for. Sending keywords implies enable_brave_indexing: true. |
| brave_keywords_by_url | object | No | { "url": ["kw", ...] }, max 5 keywords per URL; overrides brave_keywords for that URL. Alternatively send urls entries as objects: { "url": "...", "keywords": [...] }. |
Request Example
{
"urls": [
"https://example.com/page1",
"https://example.com/page2"
],
"type": "indexer",
"engine": "google",
"title": "My Blog Posts",
"vip": true
}
Indexing targets
Each target is chosen independently. Send only the flags you want; anything not explicitly true is skipped.
Omit all enable_* flags for the classic Google-only behaviour.
Google + Brave Search Boost (Brave is free here)
{
"urls": ["https://example.com/page1"],
"type": "indexer",
"enable_google_indexing": true,
"enable_brave_indexing": true
}
Brave Search Boost with keywords
{
"urls": [
"https://example.com/blog/best-running-shoes",
{ "url": "https://example.com/blog/marathon-training", "keywords": ["marathon training plan", "16 week marathon plan"] }
],
"type": "indexer",
"enable_google_indexing": true,
"enable_brave_indexing": true,
"brave_keywords": ["running shoes 2026", "best running shoes"],
"brave_keywords_by_url": {
"https://example.com/blog/best-running-shoes": ["best running shoes for beginners"]
}
}
Per-URL keywords (object entries or brave_keywords_by_url) win over brave_keywords; URLs without their own list fall back to the task-wide keywords. Max 20 task-wide, 5 per URL.
Response
{
"success": true,
"message": "Task created successfully",
"task_id": 456,
"is_drip_feed": false,
"targets": { "google": true, "bing_indexing": false, "brave_indexing": true }
}
3. Get Task Details
Check the status of a specific task.
Task lifecycle
pending → processing → completed (or failed, refunded automatically).
An indexer task is processing from the moment the URLs are handed to the crawler until the crawler confirms it has processed them. It becomes completed only when every link is crawled. Standard queue is usually confirmed within 24-48 hours, VIP within minutes to a few hours. Crawl status is refreshed automatically about once a minute; poll get_task no more than once per minute per task.
Per-link counters in links: crawled (confirmed by the crawler), submitted (sent, awaiting confirmation), queued (not yet sent, drip feed / large batches), error. pending = submitted + queued.
Response Example
{
"success": true,
"task": {
"id": 456,
"title": "My Blog Posts",
"type": "indexer",
"engine": "google",
"google_indexing": true,
"bing_indexing": false,
"brave_indexing": true,
"status": "processing",
"vip": false,
"progress": { "updated": 0, "pending": 5 },
"links": { "total": 15, "crawled": 10, "pending": 5, "submitted": 5, "queued": 0, "error": 0 },
"crawl_synced_at": "2023-12-23 14:19:02",
"created_at": "2023-12-23 14:00:00",
"completed_at": null
}
}
4. Get Task Links
Get detailed status for each link in a task.
Response Example
{
"success": true,
"links": [
{
"url": "https://example.com/page1",
"status": "indexed",
"crawl_status": "crawled",
"submitted_at": "2023-12-23 14:00:05",
"checked_at": "2023-12-23 14:19:00"
},
{
"url": "https://example.com/page2",
"status": "pending",
"crawl_status": "submitted",
"submitted_at": "2023-12-23 14:00:05",
"checked_at": null
}
]
}
status is the raw value (pending, indexed, unindexed, error) kept for backward compatibility. For indexer tasks use crawl_status: queued, submitted, crawled, error.
5. List Tasks
List your tasks, newest first, with per-link counts. Filter by type (indexer, checker, traffic) or status (pending, processing, completed, failed). per_page max 100.
Response Example
{
"success": true,
"tasks": [
{
"id": 456,
"title": "My Blog Posts",
"type": "indexer",
"engine": "google",
"google_indexing": true,
"bing_indexing": false,
"brave_indexing": false,
"status": "completed",
"vip": false,
"links": { "total": 20, "indexed": 17, "unindexed": 3, "pending": 0, "error": 0 },
"created_at": "2023-12-23 14:00:00",
"completed_at": "2023-12-23 14:20:00"
}
],
"pagination": { "page": 1, "per_page": 20, "total": 42, "total_pages": 3 }
}
6. Pricing
Live credit costs so you can estimate a task before creating it.
Response Example
{
"success": true,
"currency": "USD",
"price_per_credit_usd": 0.01,
"credits_per_url": {"indexer":2,"indexer_vip":10,"checker":0.1,"auto_check_addon":1,"brave_with_google":0,"brave_solo":1},
"vip_queue_enabled": true,
"bing_indexing_enabled": false,
"brave_indexing_enabled": true
}
MCP Server for AI Assistants
Let Claude, Cursor, ChatGPT or any Model Context Protocol host submit URLs, check index status, read results and launch traffic campaigns on your behalf. The server wraps this API and authenticates with your API key.
Cursor / Claude Desktop / Claude Code (stdio)
Add to ~/.cursor/mcp.json or claude_desktop_config.json:
{
"mcpServers": {
"rapid-indexer": {
"command": "npx",
"args": ["-y", "rapid-indexer-mcp"],
"env": { "RAPID_INDEXER_API_KEY": "YOUR_API_KEY" }
}
}
}
Available tools
get_account credits balanceget_pricing live credit costsestimate_cost cost before submittingsubmit_urls_for_indexing send Googlebotcheck_index_status indexed or notlist_tasks / get_task / get_task_links
Tools that create tasks spend credits immediately; the server tells the assistant to confirm large batches with you first. Source and self-hosting (Streamable HTTP with Authorization: Bearer <key>) are documented in the package README.
Error Handling
If an error occurs, the API will return a 4xx or 5xx status code and a JSON body with an error field.
{
"success": false,
"error": "Insufficient credits"
}