API — AI Visibility

RankBits API

AI visibility scans from your own workflow

Create scans asynchronously, check plan and credit usage, and retrieve detailed AI visibility results over HTTP.

Get API access

Quick start

Samples update when you change the token or language.

POST /v1/scansCreate an async scan.
GET /v1/scans/{id}Poll status and results.
POST /v1/scans/{id}/trackingTrack a completed scan.
GET /v1/mePlan and credit info.

API access

API tokens are available to every registered RankBits user, including free accounts after email verification.

Authentication

Send your token in the `Authorization` header. Keep tokens server-side and revoke them from this page if they are exposed.

Authorization: Bearer rb_your_token_here

Endpoints

MCP server

RankBits is also available as a remote Model Context Protocol server, so AI agents (Claude, Cursor, ChatGPT, and other MCP clients) can run and track scans directly. It exposes the same capabilities as the REST API and authenticates with the same tokens.

{
  "mcpServers": {
    "rankbits": {
      "type": "http",
      "url": "https://rankbits.com/mcp",
      "headers": { "Authorization": "Bearer rb_your_token_here" }
    }
  }
}

Tools: get_account, list_providers, list_scans, create_scan, get_scan, enable_tracking, get_scan_tracking.

Create Scan

The scan endpoint enforces the same plan rules as the app: email verification, plan engines, prompt caps, brand limits (deleted scans keep their brand slot for 30 days), the weekly scan cooldown on Free, and available response credits. Errors include an upgrade_url when a higher plan would allow the request. The response's applied_limits shows the prompt count and engines the scan will actually run.

url required
Brand homepage or URL to scan. Must be http/https with a real, resolvable public domain.
prompt_count optional
Requested AI-generated prompt count. Capped to your plan's prompts per scan, minus any custom prompts.
providers optional
Array of engine keys. Omit to use every engine allowed by the user's plan. Naming an engine your plan does not include returns 403.
custom_prompts optional
Array of custom prompt strings.
custom_only optional
Use only custom prompts when true.
competitors optional
Names, domains, or objects like {"name":"Rival","domain":"rival.com"}.
include_discovered_competitors optional
Defaults to true. Set false to compare only competitors you supplied and exclude AI-discovered or cited-domain rivals.

Scan Results

While a scan is running, results include metadata, prompts, aggregate data available so far, and progress counts. Completed scans include answer text, citations, competitor stats, prompt breakdown, share of voice, and visibility scores. Free accounts get the full scores and competitor leaderboard but, as in the app, only the first 3 result rows and prompt-breakdown rows; a gated object reports the totals.

{
  "scan": {"public_id": "abc123", "status": "done"},
  "progress": {"completed_results": 70, "expected_results": 70, "complete": true},
  "aggregate": {"overall": {}, "providers": {}, "comparison": []},
  "prompts": [],
  "results": [],
  "prompt_breakdown": []
}

Tracked Scan Details

Use tracking endpoints after a scan completes. Tracking follows the scan lineage: the original completed scan is the root, and each scheduled run becomes a related scan that can be fetched through the normal results endpoint.

POST /v1/scans/{id}/tracking

Enables scheduled tracking for one owned completed scan. The scan must be done; pending, analyzing, running, draft, and error scans return 400.

Optional JSON body
{"frequency_days": 7}

The frequency is clamped to the user's plan minimum. Free accounts are weekly by default; paid plans can allow shorter cadences.

GET /v1/scans/{id}/tracking

Reads tracking state and lineage history for an owned scan. You can pass either the root scan ID/public ID or any tracked run ID/public ID in that lineage.

scan root scan reference.
tracking enabled state, cadence, and last tracked timestamp.
latest_scan newest run in the lineage.
aggregate current score/provider/comparison summary for the latest run.
history time-series rows with score, mention rate, citation rate, total mentions, total citations, and scan IDs.
related_scans every run with links for retrieving full results.
{
  "scan": {
    "id": 123,
    "public_id": "abc123",
    "status": "done",
    "domain": "example.com",
    "brand_name": "Example"
  },
  "tracking": {
    "enabled": true,
    "frequency_days": 7,
    "last_tracked_at": "2026-07-04T12:34:56+00:00"
  },
  "latest_scan": {"id": 124, "public_id": "def456", "status": "done"},
  "aggregate": {
    "overall": {"score": 42.5, "mention_rate": 55.0, "citation_rate": 30.0},
    "providers": {},
    "comparison": []
  },
  "history": [
    {
      "at": "2026-07-04T12:34:56+00:00",
      "scan_public_id": "abc123",
      "overall_score": 42.5,
      "raw_score": 42.5,
      "mention_rate": 55.0,
      "citation_rate": 30.0,
      "mention_count": 12,
      "citation_count": 5
    }
  ],
  "related_scans": [
    {"id": 123, "public_id": "abc123", "status": "done", "results": "/v1/scans/abc123"},
    {"id": 124, "public_id": "def456", "status": "done", "results": "/v1/scans/def456"}
  ]
}

For full answers, citations, prompts, and row-level provider results, call GET /v1/scans/{public_id} for any item in related_scans.

Provider keys

Use these values in the optional providers array. Omit the field to use every engine allowed by your plan.

ChatGPT
openai

ChatGPT answers with fast, general-purpose web-aware reasoning.

ChatGPT · Paid
openai_pro

ChatGPT answers for upgraded accounts (Plus or above), with deeper reasoning and higher-quality synthesis.

Google AI Mode
google_ai_mode

Google AI Mode-style search response.

Google AI Overview
google_ai_overview

Google AI Overview-style summary.

Gemini
gemini

Gemini answers with strong Google-native reasoning and broad web context.

Google Search
google_search

Google organic positions 1-100 for baseline search visibility.

Bing Search
bing_search

Traditional Bing organic results for baseline search visibility.

Bing Copilot
bing_copilot

Bing Copilot AI-generated search answers with source references.

DuckDuckGo Search
duckduckgo_search

Privacy-focused DuckDuckGo organic results for broader search visibility.

Yahoo Search
yahoo_search

Yahoo organic results for an additional consumer search baseline.

Perplexity
perplexity

Perplexity search answers with citations from current web sources.

Grok · 4.7
grok

Grok 4.3 answers with live xAI web search and cost-efficient non-reasoning generation.

SuperGrok · 4.7
supergrok

SuperGrok answers from the flagship Grok 4.5 model with live xAI web search.

Claude
claude

Claude answers with careful summarization and citation-aware reasoning.

Claude · Paid
claude_pro

Claude Pro responses for premium long-form analysis and strategy.

Tavily
tavily

Tavily web search for AI-friendly source discovery and citations.

Exa
exa

Exa neural search for finding semantically relevant web sources.

Gemini · Paid
gemini_pro

Gemini Pro responses for richer analysis on complex prompts.

Errors and ownership

401Missing or invalid token.
403Email verification or plan restriction.
404Scan does not exist or belongs to another user.
400Invalid JSON, missing URL, or invalid engine selection.