Domain Authority
Get a 0 to 100 authority score for a domain, with registration data, popularity rank, a health score and risk flags.
/v1/domain-authority1 credit (refunded when authority is unknown)API keyReturns an authority score (0 to 100) based on how many distinct domains link to the target, enriched with domain registration data (RDAP), a popularity rank from the Tranco list, a composite health score and risk flags. The link data comes from the pre-processed link graph snapshot (see Response format). It is the cheapest endpoint and a good first call.
Request
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
domain | string | Yes | none | Domain to query, for example smartify.in. No scheme or path. Must contain a dot. |
Example
curl "https://api.rankparse.com/v1/domain-authority?domain=smartify.in" \
-H "X-API-Key: rp_your_key"import requests
res = requests.get(
"https://api.rankparse.com/v1/domain-authority",
params={"domain": "smartify.in"},
headers={"X-API-Key": "rp_your_key"},
timeout=60,
)
res.raise_for_status()
body = res.json()
if body.get("partial") and body["data"]["score"] is None:
print("Authority unknown, retry")
else:
print(body["data"]["score"], body["data"]["risk_flags"])const params = new URLSearchParams({ domain: "smartify.in" });
const res = await fetch(`https://api.rankparse.com/v1/domain-authority?${params}`, {
headers: { "X-API-Key": "rp_your_key" },
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const { data, partial } = await res.json();
console.log(data.score, data.risk_flags, partial ?? false);Response
{
"domain": "smartify.in",
"data": {
"score": 76,
"referring_domains": 340,
"total_host_count": 18420,
"registered_at": "2019-03-14T09:21:00Z",
"registrar": "GoDaddy.com, LLC",
"popularity_rank": null,
"health_score": 70,
"risk_flags": ["no_tranco_presence"]
},
"credits_used": 1,
"credits_remaining": 999
}Response fields
Top level:
| Field | Type | Description |
|---|---|---|
domain | string | The normalized (lowercased) domain you queried. |
data | object | The authority record (below). |
partial | boolean | Only present, and always true, when part of the answer degraded (see below). |
credits_used | integer | 1, or 0 when the authority score could not be determined and the charge was reversed. |
credits_remaining | integer | Your balance after this call. |
Fields in data:
| Field | Type | Description |
|---|---|---|
score | integer or null | Authority score from 0 to 100. null means unknown (never 0) and always comes with partial: true. |
referring_domains | integer or null | Number of distinct domains linking to the target in the crawl graph. |
total_host_count | integer or null | Sum of the host counts of those linking domains. |
registered_at | string or null | Registration date from RDAP, or null when unavailable. |
registrar | string or null | Registrar name from RDAP, or null when unavailable. |
popularity_rank | integer or null | Rank in the Tranco top 100,000 list. null when the domain is not in that list. |
health_score | integer or null | Composite 0 to 100 score built from authority, popularity, domain age and referring-domain count. |
risk_flags | array of strings or null | Zero or more of no_tranco_presence, low_authority, new_domain and high_authority_new_domain. |
How the score is calculated
score = min(100, round(log10(referring_domains + 1) * 30)). The scale is logarithmic: about 10 referring domains scores 31, 100 scores 60, and roughly 2,100 or more reaches 100. A domain with no data in the snapshot returns zeros with 200.
How the flags are set
| Flag | Set when |
|---|---|
no_tranco_presence | popularity_rank is null. |
low_authority | score is below 10 and referring_domains is below 5. |
new_domain | Registered less than about 6 months ago. |
high_authority_new_domain | Registered less than about 12 months ago and score is 40 or higher. |
Behavior and limits
- Credits: 1 per call, charged before the lookup.
- Partial results: if the authority lookup times out, the response is
200withpartial: true,score,referring_domains,total_host_count,health_scoreandrisk_flagsset tonull, and the credit is refunded (credits_used: 0). Treatnullas unknown, not as zero authority, and retry. If only the RDAP enrichment degrades, you get the real score withpartial: trueandnullregistration fields, and the credit is kept. - Caching: complete results are cached for 30 days per crawl release. Partial results are never cached. A cache hit is billed the same as a fresh lookup. RDAP data is cached for 30 days and the Tranco list is refreshed weekly.
- Empty results: a domain with no data returns
200withscore: 0,referring_domains: 0andtotal_host_count: 0, never404. - Rate limit: 60 requests per minute per key. See Rate limiting.
Errors
| HTTP | Code | When |
|---|---|---|
| 400 | invalid_domain | domain is missing or not a valid domain. |
| 401 | invalid_api_key | Missing, invalid or revoked API key. |
| 402 | insufficient_credits | Balance is lower than the call cost. |
| 402 | spend_cap_reached | Your monthly spend cap is reached. |
| 429 | rate_limited | More than 60 requests in a minute. |
| 503 | query_timeout, upstream_error | Transient data store problem. Retry after the Retry-After header. Credits are refunded. |
See Errors for the full list and the error body format.
Related
MCP tool: get_domain_authority (accepts domain).