Free tools API
The unauthenticated, rate-limited /v1/tools endpoints behind the free tools on rankparse.com, and when to use the paid API instead.
/v1/tools/*Free (5 requests per tool per day per IP)NoneThe free tools on rankparse.com (backlink checker, domain authority checker, tech stack detector and others) are served by a small set of /v1/tools/* endpoints. They cost no credits and need no API key, but they return trimmed results and are rate limited per IP address.
These endpoints are built for the rankparse.com web pages. In production they are protected by a Cloudflare Turnstile challenge: a request without a valid cf-turnstile-response token is rejected with 403 turnstile_failed. Scripts and servers cannot pass that challenge, so for programmatic use call the paid endpoints with an API key. Credits start at $0.01 each and never expire. See Credits.
Tools
All tools are GET requests on https://api.rankparse.com/v1/tools/<tool>.
| Tool | Parameters | Returns | Paid equivalent |
|---|---|---|---|
backlinks | domain | Up to 100 backlinks and 100 referring domains, with totals | Backlinks, Referring domains |
domain-authority | domain | Authority score, referring domain count, registration date, registrar, Tranco rank, health score and risk flags | Domain authority |
tech-stack | domain | Detected technologies, server and X-Powered-By | Tech stack |
similar-websites | domain | Up to 25 similar domains | Similar domains |
domain-age | domain | Registration date, registrar and popularity rank | Domain authority |
meta-tag-analyzer | url | The full on-page audit | Page SEO |
link-intersect | domain_a, domain_b | Up to 100 domains that link to both | Link intersect |
page-speed | url, optional strategy (mobile or desktop) | PageSpeed scores and Core Web Vitals | Page performance |
Input rules:
domain,domain_a,domain_b: a bare domain such asstripe.com(letters, digits, dots, hyphens; at least one dot).url: anhttp(s)URL. A bare host such ashubspot.com/pricingis accepted and promoted tohttps://.link-intersectis order-sensitive:domain_ais the competitor anddomain_bis your domain, the same convention as the paid endpoint.
Example
curl "https://api.rankparse.com/v1/tools/domain-age?domain=github.com" \
-H "cf-turnstile-response: <token from the Turnstile widget>"{
"domain": "github.com",
"registered_at": "2007-10-09",
"registrar": "MarkMonitor Inc.",
"popularity_rank": 38,
"tool": "domain-age",
"tier": "anonymous",
"quota": { "limit": 5, "remaining": 4, "reset_at": 1760259200000 }
}Response shapes
Every response carries three extra fields added by the platform: tool (the tool name), tier and quota. The rest of the body depends on the tool:
| Tool | Body fields |
|---|---|
backlinks | domain, backlinks, referring_domains, backlinks_total, referring_domains_total |
domain-authority | domain, score, referring_domains, total_host_count, registered_at, registrar, popularity_rank, health_score, risk_flags; plus partial: true when the lookup was incomplete (authority fields are then null, not zero) |
tech-stack | domain, tech (same object as the paid data) |
similar-websites | domain, similar, total, partial, processed_linkers, attempted_linkers, budget_ms |
domain-age | domain, registered_at, registrar, popularity_rank; plus partial: true when incomplete |
meta-tag-analyzer | url, meta (same object as the paid data) |
link-intersect | domain_a, domain_b, intersect, total |
page-speed | url, performance (same object as the paid data) |
Limits and rate limiting
| Tier | Limit | Applies to |
|---|---|---|
anonymous | 5 requests per tool per rolling 24 hours, per IP address (IPv6 addresses are grouped by their /64 network) | Everyone calling directly |
free_account | 25 requests per tool per rolling 24 hours | Signed-in users of the rankparse.com tool pages |
- The limit is per tool: five
domain-agecalls do not use up yourbacklinksallowance. - Every request uses a slot, including repeat requests that are answered from cache and requests that end in an error.
- The
quotaobject on each response showslimit,remainingandreset_at(a millisecond Unix timestamp for when the oldest counted request ages out). - Successful results are cached for 24 hours and shared between visitors, so a popular domain may return a result computed earlier.
- Free tools return fixed, smaller result sets (see the table above) and no pagination, filtering or sorting parameters.
- The free
page-speedtool has its own daily budget, separate from the paidpage-performancecaps.
Errors
Errors use the same shape as the rest of the API: error, code and usually message.
| Status | Code | When |
|---|---|---|
400 | invalid_input | A required parameter is missing or invalid. |
400 | invalid_domain, invalid_url, private_ip | tech-stack rejected the input (invalid_domain and invalid_url for malformed input, private_ip for a private host). |
400 | other fetch codes | meta-tag-analyzer returns 400 with the fetch error code (invalid_url, private_ip, fetch_failed, timeout, response_too_large). |
403 | turnstile_failed | Missing or invalid Turnstile token. |
429 | quota_exceeded | Daily limit reached. Body includes reset_at and signup_url. |
429 | tools_quota_exceeded | page-speed only: the free tools' shared PageSpeed budget is used up for the day. Includes retry_after. |
503 | psi_unavailable | page-speed only: Google PageSpeed Insights failed. |
503 | fetch_failed, timeout, response_too_large | tech-stack: the homepage could not be fetched. |
503 | query_timeout, upstream_error, deterministic_timeout | The data store timed out or was unavailable. query_timeout and upstream_error include retry: true and a Retry-After: 3 header; deterministic_timeout will not succeed on retry. |
500 | tool_failed | Unexpected failure. |
{
"error": "Too Many Requests",
"code": "quota_exceeded",
"message": "Free limit reached. Sign up for 25/day at https://rankparse.com/signup",
"reset_at": 1760259200000,
"signup_url": "https://rankparse.com/signup",
"tool": "domain-age",
"tier": "anonymous",
"quota": { "limit": 5, "remaining": 0, "reset_at": 1760259200000 }
}Empty results are not errors: a domain with no data returns 200 with empty arrays.
Emailed backlink report
POST /v1/tools/backlink-report powers the "email me a backlink report" form. It takes a JSON body with domain and email, generates a PDF with the domain's authority, top backlinks and top referring domains, and emails a download link. It also requires the Turnstile token.
- One free report per email address per day, and 3 per IP address per day (
email_quota_exceededandip_quota_exceeded, both429). - Other errors:
invalid_body,invalid_domain,invalid_email(all400),turnstile_failed(403),report_failed(500). - The download link,
GET /v1/tools/report/:id, returns the PDF and works for 24 hours, then answers404.
Because the link is delivered by email to the address you supply, this endpoint is not a data API. To pull backlink data into your own tools, use Backlinks.
When to use the paid API
| You need | Free tools | Paid API |
|---|---|---|
| A one-off check | Yes | Yes |
| API key, no captcha | No | Yes |
| Server-side or scripted use | No | Yes |
| More than 5 checks per tool per day | No | Yes, 60 requests per minute |
| Pagination, sorting and filters | No | Yes |
| Larger result sets (up to 1000 rows) | No, 25 to 100 rows | Yes |