Browse

Domain Authority

A 0 to 100 authority score for a domain, with every input shown: its Common Crawl web graph harmonic centrality and PageRank positions and its Majestic Million rank and referring subnets. Only domains inside the top of the open rank lists are scored; an unranked domain is not proof of low authority. It is a link-graph score, not Moz or Semrush authority.

POST https://YOUR_API_HOST/v1/domain-authority

Credits and caching

  • Success billing. 10 credits per domain found in the rank data (an unranked domain is free). You are charged only when the lookup finds something; a not-found result is free.
  • Results are cached per account for 7 days. Repeating the same lookup in that window is free and returns cache_hit: true.
  • Invalid input, rate limits and errors are never charged.
  • Read the billing rules for the full picture.

Request

Send a JSON body with Authorization: Bearer <key>. The body can be up to 64 KB.

FieldTypeRequiredNotes
domainstringyesUp to 253 characters.

Example request

Terminal
curl -X POST https://YOUR_API_HOST/v1/domain-authority \
  -H "Authorization: Bearer $LOOKVALID_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain":"wikipedia.org"}'

Response

The status is 200 whether or not anything was found. Check found. Every response also carries the X-Request-Id, X-Credits-Charged, X-Credits-Remaining and X-RateLimit-* headers.

Envelope

FieldTypeNotes
request_idstring-
product"domain-authority"-
foundbooleanFalse means the lookup ran and found nothing; it is free.
reasonstring or nullWhy nothing was found; null when found.
sourcesarray of stringWhere the data came from, including any attribution the licence requires.
credits_chargedinteger0 for a cache hit, a not-found result or an error.
credits_remaininginteger-
cache_hitbooleanTrue when the account already paid for this lookup within the cache window.
cacheobject-

The data object

Present when found is true, otherwise null.

FieldTypeNotes
domainstring-
matched_domainstringThe domain the ranks belong to; a parent of the input when the input is a subdomain
authority_scoreintegerMinimum 0. Maximum 100.
signalsobject-
signals.common_crawlobject-
signals.common_crawl.in_indexboolean-
signals.common_crawl.releasestring or null-
signals.common_crawl.harmonic_positioninteger or null-
signals.common_crawl.harmonic_valuenumber or null-
signals.common_crawl.pagerank_positioninteger or null-
signals.common_crawl.pagerank_valuenumber or null-
signals.common_crawl.hosts_in_domaininteger or null-
signals.common_crawl.domains_in_releaseinteger or null-
signals.common_crawl.harmonic_signalnumber-
signals.common_crawl.pagerank_signalnumber-
signals.majesticobject-
signals.majestic.in_indexboolean-
signals.majestic.rankinteger or null-
signals.majestic.referring_subnetsinteger or null-
signals.majestic.referring_ipsinteger or null-
signals.majestic.list_sizeinteger or null-
signals.majestic.signalnumber-
formulastring-
weightsobject-
weights.common_crawl_harmonicnumber-
weights.common_crawl_pageranknumber-
weights.majesticnumber-
notesstring-

Captured example (2026-10-18)

A real run of this lookup on 2026-10-18, using the request above, which is a public input. The envelope fields are left out.

{
  "product": "domain-authority",
  "found": true,
  "data": {
    "domain": "wikipedia.org",
    "matched_domain": "wikipedia.org",
    "authority_score": 83,
    "signals": {
      "common_crawl": {
        "in_index": true,
        "release": "cc-main-2026-jul-aug-sep",
        "harmonic_position": 14,
        "harmonic_value": 21064202,
        "pagerank_position": 35,
        "pagerank_value": 0.0008494547219015658,
        "hosts_in_domain": 2050,
        "domains_in_release": 133241980,
        "harmonic_signal": 85.9,
        "pagerank_signal": 81
      },
      "majestic": {
        "in_index": true,
        "rank": 12,
        "referring_subnets": 227466,
        "referring_ips": 698536,
        "list_size": 1000000,
        "signal": 82
      }
    },
    "formula": "authority_score = round(0.4 * harmonic + 0.2 * pagerank + 0.4 * majestic). Each signal = 100 * (1 - log10(position) / log10(list size)), so position 1 is 100 and the last position of the full list is 0. A list that does not hold the domain contributes 0. harmonic and pagerank are the Common Crawl web graph positions among all domains in the release; majestic is the Majestic Million global rank.",
    "weights": {
      "common_crawl_harmonic": 0.4,
      "common_crawl_pagerank": 0.2,
      "majestic": 0.4
    },
    "notes": "Scores come from open link-graph and popularity lists, not from Moz or Semrush, so they will not match those tools. Only the best-ranked domains of each list are indexed; a domain that is not found is not proof of low authority."
  },
  "sources": [
    "Common Crawl Web Graph (commoncrawl.org)",
    "Majestic Million (majestic.com/reports/majestic-million), licensed CC BY 3.0"
  ]
}

Errors

  • 400 invalid_input: The request input is invalid.
  • 401 unauthorized: The API key is missing, malformed, revoked or unknown.
  • 402 insufficient_credits: The account does not have enough credits for this lookup. Error code: insufficient_credits. During a trial whose allowance is used up the code is trial_allowance_exhausted: nothing is charged and the customer starts the plan from the billing page.
  • 405 method_not_allowed: This endpoint does not accept that HTTP method.
  • 413 payload_too_large: The request body is too large.
  • 429 rate_limited: Too many requests for this API key.
  • 500 internal_error: An unexpected error occurred.
  • 503 provider_unavailable: The data source for this product is unavailable right now.