Skip to content

Rankparse/rankparse-mcp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

RankParse API

SEO data API for developers and AI agents, powered by pre-processed Common Crawl data updated quarterly. 20 endpoints covering backlink graphs, domain authority, real-time page audits, and cross-domain intelligence — billed per call, no subscription, no monthly minimum.


Authentication

All endpoints require an X-API-Key header with a key in rp_... format. Get a key at rankparse.com/dashboard.

On RapidAPI, authentication is handled by the gateway — include your X-RapidAPI-Key as usual.


Quick Start

curl "https://api.rankparse.com/v1/domain-authority?domain=example.com" \
  -H "X-API-Key: rp_your_key_here"
{
  "domain": "example.com",
  "data": {
    "score": 72,
    "referring_domains": 1103,
    "total_host_count": 4821,
    "registered_at": "1995-08-14",
    "registrar": "IANA",
    "popularity_rank": 3142,
    "health_score": 85,
    "risk_flags": []
  },
  "credits_used": 1,
  "credits_remaining": 9999
}

All responses use the same envelope: domain (or url), data, credits_used, credits_remaining. Paginated endpoints also include total, limit, and offset.


Endpoints

Link Graph

Endpoint Description Credits
GET /v1/backlinks Backlinks pointing to a domain, sorted by authority or recency 2
GET /v1/referring-domains Domains linking to a target with dofollow/nofollow link counts 2
GET /v1/outbound-links External links going out from a domain 2
GET /v1/anchor-text Anchor text distribution across all inbound links 2
GET /v1/top-pages Pages on the domain ranked by number of inbound links 2

Domain Metrics

Endpoint Description Credits
GET /v1/domain-authority 0–100 authority score, RDAP registration data, Tranco popularity rank 1
GET /v1/domain-rank Inbound edge count, unique linking domains, avg linking host count 2
GET /v1/crawl-history First/last seen dates and total URL count from Common Crawl index 2

Real-Time Page Analysis

These endpoints fetch the target URL live at request time.

Endpoint Description Credits
GET /v1/page-seo Full SEO audit: meta tags, Open Graph, JSON-LD, hreflang, headings, image alt coverage, internal/external links, word count 3
GET /v1/site-health HTTPS enforcement, HSTS, security headers, robots.txt, sitemap availability 2
GET /v1/sitemap Discover and parse a domain's sitemap — returns URLs with lastmod, changefreq, priority 2
GET /v1/tech-stack Server software, CMS, and framework signals from HTTP headers and meta tags 2
GET /v1/page-performance Google PageSpeed Insights — Lighthouse scores and Core Web Vitals (LCP, CLS, TBT, FCP) 3

Cross-Domain Intelligence

Endpoint Description Credits
GET /v1/domain-overlap Domains linking to 2–5 of your specified targets 5
GET /v1/link-intersect Domains linking to both domain_a and domain_b 5
GET /v1/competitor-gap Domains linking to a competitor but not to you 5
GET /v1/similar-domains Domains sharing link sources — topical proximity signal 5

Power Endpoints

Endpoint Description Credits
GET /v1/link-audit Composite link quality score, anchor profile breakdown, risk flags, outbound concentration 8
GET /v1/site-explorer Backlinks + authority + top pages + anchor text in a single call 10
POST /v1/batch Backlinks for up to 50 domains in one request 2 per domain

Common Parameters

Parameter Type Required Notes
domain string Yes (domain endpoints) Bare domain only: example.com, not https://example.com
url string Yes (URL endpoints) Full URL including scheme: https://example.com/page
limit integer No Default 100, max 1000 (silently clamped)
sort string No importance (default) or recent — backlinks endpoint only
score boolean No Adds from_domain_score, anchor_type, link_quality to each row (+1 credit) — backlinks and referring-domains

Domains with no data return 200 with "data": [] — never 404.


Example Responses

GET /v1/backlinks

curl "https://api.rankparse.com/v1/backlinks?domain=example.com&limit=2&sort=importance" \
  -H "X-API-Key: rp_your_key_here"
{
  "domain": "example.com",
  "data": [
    {
      "from_domain": "ycombinator.com",
      "from_url": "https://news.ycombinator.com/item?id=39201847",
      "to_url": "https://example.com/blog/post",
      "anchor_text": "example.com",
      "rel": null,
      "link_type": "hyperlink",
      "crawled_at": "2026-01-14"
    },
    {
      "from_domain": "dev.to",
      "from_url": "https://dev.to/user/article",
      "to_url": "https://example.com/",
      "anchor_text": "check this tool",
      "rel": "nofollow",
      "link_type": "hyperlink",
      "crawled_at": "2026-02-03"
    }
  ],
  "credits_used": 2,
  "credits_remaining": 9998
}

GET /v1/referring-domains

curl "https://api.rankparse.com/v1/referring-domains?domain=example.com&limit=2" \
  -H "X-API-Key: rp_your_key_here"
{
  "domain": "example.com",
  "data": [
    {
      "from_domain": "ycombinator.com",
      "dofollow_links": 14,
      "nofollow_links": 2,
      "total_links": 16
    },
    {
      "from_domain": "dev.to",
      "dofollow_links": 0,
      "nofollow_links": 8,
      "total_links": 8
    }
  ],
  "credits_used": 2,
  "credits_remaining": 9996
}

GET /v1/domain-authority

curl "https://api.rankparse.com/v1/domain-authority?domain=example.com" \
  -H "X-API-Key: rp_your_key_here"
{
  "domain": "example.com",
  "data": {
    "score": 72,
    "referring_domains": 1103,
    "total_host_count": 4821,
    "registered_at": "1995-08-14",
    "registrar": "IANA",
    "popularity_rank": 3142,
    "health_score": 85,
    "risk_flags": []
  },
  "credits_used": 1,
  "credits_remaining": 9995
}

score is 0–100. popularity_rank is from the Tranco top-1M list — null if outside the top 100k. risk_flags values: new_domain, low_authority, no_tranco_presence, high_authority_new_domain.

GET /v1/page-seo

curl "https://api.rankparse.com/v1/page-seo?url=https://example.com" \
  -H "X-API-Key: rp_your_key_here"
{
  "url": "https://example.com",
  "data": {
    "url": "https://example.com",
    "final_url": "https://example.com/",
    "status_code": 200,
    "response_time_ms": 312,
    "title": { "text": "Example Domain", "length": 14, "optimal": false },
    "description": { "text": null, "length": 0, "optimal": false },
    "canonical": { "url": "https://example.com/", "self_referential": true },
    "robots": { "index": true, "follow": true, "raw": null },
    "viewport": "width=device-width, initial-scale=1",
    "language": { "primary": "en", "tag": "en-US", "source": "html_lang" },
    "hreflang": [],
    "headings": { "h1": ["Example Domain"], "h2": [], "h3_count": 0 },
    "og": {},
    "twitter": {},
    "json_ld": [],
    "images": { "total": 0, "missing_alt": 0 },
    "links": { "internal": 0, "external": 1 },
    "word_count": 28,
    "favicon": null
  },
  "credits_used": 3,
  "credits_remaining": 9992
}

title.optimal is true when length is 30–60 characters. description.optimal is true when 120–160 characters. Returns 503 with code: fetch_failed if the target URL is unreachable.

GET /v1/site-health

curl "https://api.rankparse.com/v1/site-health?domain=example.com" \
  -H "X-API-Key: rp_your_key_here"
{
  "domain": "example.com",
  "data": {
    "domain": "example.com",
    "https": { "enforced": true, "hsts": true, "hsts_max_age": 31536000 },
    "www_redirect": { "enabled": false, "target": null },
    "checks": [
      { "url": "https://example.com/", "status": 200, "content_type": "text/html", "response_time_ms": 180 },
      { "url": "https://example.com/robots.txt", "status": 200, "content_type": "text/plain", "response_time_ms": 95 },
      { "url": "https://example.com/sitemap.xml", "status": 404, "content_type": null, "response_time_ms": 88 }
    ],
    "security_headers": {
      "x_frame_options": "SAMEORIGIN",
      "x_content_type_options": "nosniff",
      "content_security_policy": false,
      "strict_transport_security": "max-age=31536000",
      "referrer_policy": null
    },
    "robots_txt": { "present": true, "disallow_all": false, "sitemap_declared": false }
  },
  "credits_used": 2,
  "credits_remaining": 9990
}

Error Codes

All errors return JSON with error, code, and message fields.

HTTP Status Code Meaning
400 invalid_domain domain parameter missing or malformed
400 invalid_url url parameter missing or invalid
400 private_ip URL resolves to a private/reserved IP (page-seo only)
401 unauthorized Missing or invalid API key
402 insufficient_credits Credit balance too low
429 rate_limited 60 requests/minute per API key exceeded
429 quota_exceeded Global daily PageSpeed quota reached (page-performance only)
429 user_quota_exceeded Per-user daily cap reached — max 50/day (page-performance only)
503 fetch_failed Real-time fetch of target URL failed or timed out
503 psi_unavailable PageSpeed Insights API unavailable

Pricing

Credits are the billing unit. Starting at $0.009 per credit. Credits never expire. No subscription, no monthly minimum.

Purchase at rankparse.com/pricing.


MCP Server

All endpoints are also available as MCP tools via mcp.rankparse.com. This lets Claude, ChatGPT, and other MCP-compatible clients call RankParse mid-conversation without custom code.

SSE (Claude, ChatGPT):

https://mcp.rankparse.com/?apiKey=rp_your_key_here

Streamable HTTP (Claude Code, Cursor, Windsurf):

https://mcp.rankparse.com/mcp
Header: X-API-Key: rp_your_key_here

Setup guide: rankparse.com/docs/mcp


Files in This Repository

File Description
openapi.yaml OpenAPI 3.0 spec — import into RapidAPI, Postman, or any client generator
rankparse.postman_collection.json Postman collection with all endpoints pre-configured
server.json MCP registry entry (streamable HTTP transport)

About

RankParse SEO MCP server — backlinks, domain authority, tech stack, and 18+ tools

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors