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:

  1. Log in to your Rapid Indexer account.
  2. Click on your user account (email address) in the top right side of the header.
  3. 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

https://rapid-indexer.com/api/v1/index.php

Authentication

Authentication is handled via the X-API-Key header.

Header Example

X-API-Key: 5f4dcc3b5aa765d61d8327deb882cf99

Query Parameter Alternative

?api_key=5f4dcc3b5aa765d61d8327deb882cf99

1. Get User Profile

Check your account status and credit balance.

Method
GET
URL Parameter
?action=me

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.

Method
POST
URL Parameter
?action=create_task
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.

Method
GET
URL Parameter
?action=get_task&task_id={id}

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
  }
}

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.

Method
GET
URL Parameter
?action=list_tasks&page=1&per_page=20&type=indexer

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.

Method
GET
URL Parameter
?action=pricing

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 balance
get_pricing live credit costs
estimate_cost cost before submitting
submit_urls_for_indexing send Googlebot
check_index_status indexed or not
list_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"
}