RankParse

Domain Overlap

Find the domains that link to every one of 2 to 5 target domains.

GET/v1/domain-overlap5 creditsAPI key

Returns the domains that link to all of the target domains you list. Use it to find sites that already cover your whole competitive set, which makes them strong outreach prospects. Data comes from the pre-processed link graph snapshot (see Response format).

Request

Parameters

ParameterTypeRequiredDefaultDescription
domainsstringYesnoneComma-separated list of 2 to 5 domains, for example stripe.com,square.com,paypal.com. Each entry must be a valid domain (contains a dot, no scheme or path).
limitintegerNo100Number of rows to return. Clamped to 1 to 1000. A non-numeric value falls back to 100.

Entries that are not valid domains are silently dropped before the count is checked, so stripe.com,not-a-domain counts as one domain and fails.

Example

curl "https://api.rankparse.com/v1/domain-overlap?domains=stripe.com,square.com,paypal.com&limit=25" \
  -H "X-API-Key: rp_your_key"
import requests

res = requests.get(
    "https://api.rankparse.com/v1/domain-overlap",
    params={"domains": "stripe.com,square.com,paypal.com", "limit": 25},
    headers={"X-API-Key": "rp_your_key"},
    timeout=90,
)
res.raise_for_status()
for row in res.json()["data"]:
    print(row["from_domain"], row["total_links"], row["targets_linked"])
const params = new URLSearchParams({
  domains: "stripe.com,square.com,paypal.com",
  limit: "25",
});

const res = await fetch(`https://api.rankparse.com/v1/domain-overlap?${params}`, {
  headers: { "X-API-Key": "rp_your_key" },
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const { data } = await res.json();
console.log(data);

Response

{
  "data": [
    {
      "from_domain": "techcrunch.com",
      "total_links": 156,
      "targets_linked": 3
    },
    {
      "from_domain": "forbes.com",
      "total_links": 98,
      "targets_linked": 3
    }
  ],
  "total": 2,
  "limit": 25,
  "credits_used": 5,
  "credits_remaining": 995
}

Response fields

Top level:

FieldTypeDescription
dataarrayDomains that link to every target, sorted by total_links descending, then domain name. Empty when no domain links to all targets.
totalintegerNumber of rows returned in data.
limitintegerThe limit value you sent, echoed back as received.
credits_usedintegerAlways 5.
credits_remainingintegerYour balance after this call.

This endpoint does not echo a domain field because it takes a list.

Each row in data:

FieldTypeDescription
from_domainstringA domain that links to every target.
total_linksintegerLinks from this domain to the first target when the targets are sorted alphabetically. It is used for ranking, not a sum across targets.
targets_linkedintegerNumber of domains you supplied (after dropping invalid entries). Because every row links to all targets, it is the same on every row.

Behavior and limits

  • Credits: 5 per call, charged before the lookup. Server errors are refunded.
  • Order does not matter: the targets are sorted and de-duplicated for the lookup and for the cache key, so the same set in any order is one cached result.
  • Caching: results are cached for 30 days per crawl release and per combination of the sorted domain set and limit. A cache hit is billed the same as a fresh lookup.
  • Empty results: if no domain links to all targets, you get 200 with data: [].
  • Rate limit: 60 requests per minute per key. See Rate limiting.

Errors

HTTPCodeWhen
400invalid_domainsFewer than 2 valid domains in domains.
400too_many_domainsMore than 5 valid domains. The message reads Maximum 5 domains allowed.
401invalid_api_keyMissing, invalid or revoked API key.
402insufficient_creditsBalance is lower than 5 credits.
402spend_cap_reachedYour monthly spend cap is reached.
429rate_limitedMore than 60 requests in a minute.
503query_timeout, upstream_errorTransient data store problem. Retry after the Retry-After header. Credits are refunded.

See Errors for the full list and the error body format.

MCP tool: get_domain_overlap (takes domains as an array of 2 to 5 strings and joins them for you).

On this page