SEO API

SEO Domain pages API

Get AnyAPI SEO pages of a domain with their backlink profile (rank, backlinks, referring domains) and on-page data (title, headings, word count, status, technologies) as normalized JSON.

POST/v1/run/seo.domain_pages
Requests
-
30d

Call it

Make your first request

import os, requests

res = requests.post(
    "https://api.getanyapi.com/v1/run/seo.domain_pages",
    headers={"Authorization": f"Bearer {os.environ['ANYAPI_KEY']}"},
    json={
        "target": ""
    },
)
print(res.json())
Open in
Get a free key
Sample response
{
  "data": {
    "pages": [
      {
        "backlinks": 42,
        "brokenBacklinks": 42,
        "brokenPages": 29,
        "canonical": "example",
        "charset": "example",
        "contentEncoding": "A short example description of this item.",
        "domain": "example.com",
        "encodedSize": 42,
        "externalLinks": 42,
        "fetchedUtc": 12.5,
        "firstSeenUtc": 12.5,
        "firstVisitedUtc": 12500,
        "h1": [
          "example"
        ],
        "h2": [
          "example"
        ],
        "h3": [
          "example"
        ],
        "imagesCount": 12500,
        "internalLinks": 42,
        "ip": "example",
        "language": "en",
        "linksByAttribute": {},
        "linksByCountry": {},
        "linksByPlatformType": {},
        "linksBySemanticLocation": {},
        "linksByTld": {},
        "linksByType": {},
        "lostUtc": 12.5,
        "mainDomain": "example.com",
        "mediaType": "general",
        "pageSpamScore": 5,
        "platformTypes": [
          "general"
        ],
        "previousVisitedUtc": 12500,
        "rank": 1,
        "referringDomains": 42,
        "referringDomainsNofollow": 42,
        "referringIps": 42,
        "referringMainDomains": 42,
        "referringMainDomainsNofollow": 42,
        "referringPages": 29,
        "referringPagesNofollow": 29,
        "referringSubnets": 42,
        "server": "example",
        "size": 42,
        "socialTags": {},
        "spamScore": 5,
        "statusCode": 42,
        "technologies": {},
        "title": "Example title",
        "tld": "example",
        "url": "https://example.com/page",
        "wordsCount": 12500
      }
    ],
    "totalCount": 12500
  },
  "found": true,
  "reason": "not_found"
}
Response interface
interface SeoDomainPagesResponse {
  data: {
    pages: {
      backlinks?: number;
      brokenBacklinks?: number;
      brokenPages?: number;
      canonical?: string;
      charset?: string;
      contentEncoding?: string;
      domain?: string;
      encodedSize?: number;
      externalLinks?: number;
      fetchedUtc?: number;
      firstSeenUtc?: number;
      firstVisitedUtc?: number;
      h1?: string[];
      h2?: string[];
      h3?: string[];
      imagesCount?: number;
      internalLinks?: number;
      ip?: string;
      language?: string;
      linksByAttribute?: {
      };
      linksByCountry?: {
      };
      linksByPlatformType?: {
      };
      linksBySemanticLocation?: {
      };
      linksByTld?: {
      };
      linksByType?: {
      };
      lostUtc?: number;
      mainDomain?: string;
      mediaType?: string;
      pageSpamScore?: number;
      platformTypes?: string[];
      previousVisitedUtc?: number;
      rank?: number;
      referringDomains?: number;
      referringDomainsNofollow?: number;
      referringIps?: number;
      referringMainDomains?: number;
      referringMainDomainsNofollow?: number;
      referringPages?: number;
      referringPagesNofollow?: number;
      referringSubnets?: number;
      server?: string;
      size?: number;
      socialTags?: {
      };
      spamScore?: number;
      statusCode?: number;
      technologies?: {
      };
      title?: string;
      tld?: string;
      url: string;
      wordsCount?: number;
    }[];
    totalCount?: number;
  } | null;
  found: boolean;
  reason?: "not_found";
}

Full parameter and response reference - every field, type, and example for this endpoint.

Reference

Request, response, and price

Last verified 2026-09-24 · uptime and latency measured over 30d
POST /v1/run/seo.domain_pages
curl -X POST https://api.getanyapi.com/v1/run/seo.domain_pages \
  -H "Authorization: Bearer $ANYAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"limit":10,"target":"ahrefs.com"}'
FieldTypeExample value
Request body
targetstring"ahrefs.com"Domain or subdomain to list pages for, without a protocol or leading www.
includeSubdomainsbooleanCount links pointing at the target's subdomains as well as the target itself.
limitinteger10Maximum number of pages to return. You are billed per returned result, so a lower limit costs less.
statusenumCount backlinks that are live now, ones that have been lost, or both.
Response
dataobject
data.pagesobject[]Pages of the domain with their backlink and on-page data. Populated whenever the provider has data for the entity.
data.pages[].backlinksintegerBacklinks counted. Populated whenever the provider has data for the entity.
data.pages[].brokenBacklinksintegerBacklinks pointing at pages that no longer resolve.
data.pages[].brokenPagesintegerLinked pages with an error status.
data.pages[].canonicalstringCanonical URL declared by the page.
data.pages[].charsetstringCharacter set of the page.
data.pages[].contentEncodingstringContent encoding of the response.
data.pages[].domainstringHost of the page. Populated whenever the provider has data for the entity.
data.pages[].encodedSizeintegerEncoded page size in bytes.
data.pages[].externalLinksintegerOutbound links on the page.
data.pages[].fetchedUtcnumberWhen the page was last crawled. UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.
data.pages[].firstSeenUtcnumberWhen the first of these backlinks was seen. UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.
data.pages[].firstVisitedUtcnumberWhen the page was first crawled. UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.
data.pages[].h1string[]H1 headings on the page.
data.pages[].h2string[]H2 headings on the page.
data.pages[].h3string[]H3 headings on the page.
data.pages[].imagesCountintegerImages on the page.
data.pages[].internalLinksintegerInternal links on the page.
data.pages[].ipstringIP address the page was fetched from.
data.pages[].languagestringLanguage code of the page.
data.pages[].linksByAttributeobjectCount of these backlinks, by rel attribute (nofollow, sponsored, ugc, noopener, and so on).
data.pages[].linksByCountryobjectCount of these backlinks, by country code of the linking domain. An empty key means the country is unknown.
data.pages[].linksByPlatformTypeobjectCount of these backlinks, by type of linking site (blogs, news, ecommerce, and so on).
data.pages[].linksBySemanticLocationobjectCount of these backlinks, by the page section holding the link (article, footer, nav, and so on). An empty key means no section was detected.
data.pages[].linksByTldobjectCount of these backlinks, by top-level domain of the linking page.
data.pages[].linksByTypeobjectCount of these backlinks, by link type (anchor, image, redirect, canonical, alternate).
data.pages[].lostUtcnumberWhen the last of these backlinks was lost, if they were. UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.
data.pages[].mainDomainstringRegistrable domain of the page.
data.pages[].mediaTypestringMedia type of the page.
data.pages[].pageSpamScoreintegerSpam score of the page on a 0-100 scale.
data.pages[].platformTypesstring[]Site types detected, such as blogs, news, or ecommerce.
data.pages[].previousVisitedUtcnumberWhen the page was crawled before the last time. UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.
data.pages[].rankintegerAuthority rank on a 0-1000 scale. Populated whenever the provider has data for the entity.
data.pages[].referringDomainsintegerDistinct linking domains.
data.pages[].referringDomainsNofollowintegerLinking domains whose every link is nofollow.
data.pages[].referringIpsintegerDistinct IP addresses of linking pages.
data.pages[].referringMainDomainsintegerDistinct linking registrable domains.
data.pages[].referringMainDomainsNofollowintegerLinking registrable domains whose every link is nofollow.
data.pages[].referringPagesintegerDistinct linking pages.
data.pages[].referringPagesNofollowintegerLinking pages whose links are all nofollow.
data.pages[].referringSubnetsintegerDistinct subnets of linking pages.
data.pages[].serverstringWeb server or CDN serving the page.
data.pages[].sizeintegerPage size in bytes.
data.pages[].socialTagsobjectOpen Graph and Twitter card tags, by tag name.
data.pages[].spamScoreintegerAverage spam score of those backlinks on a 0-100 scale.
data.pages[].statusCodeintegerHTTP status of the page on the last crawl.
data.pages[].technologiesobjectTechnologies detected on the page, by category.
data.pages[].titlestringPage title.
data.pages[].tldstringTop-level domain of the page.
data.pages[].urlstringPage URL. Populated whenever the provider has data for the entity.
data.pages[].wordsCountintegerWords on the page.
data.totalCountintegerTotal pages, before the limit. Populated whenever the provider has data for the entity.
foundboolean
reason"not_found"Present only when `found` is false, and says why there is no result. `not_found`: the source states the target does not exist, or returned nothing for it. A `found: false` answer is a successful call, not an error, and `costUsd` is what it actually cost.
Price
Price per request (ceiling)USD$0.0768
Price /1k resultsUSD$0.08

FAQ

About the SEO Domain pages API

The AnyAPI SEO Domain pages API returns SEO domain pages data as normalized JSON from one POST call to /v1/run/seo.domain_pages. Get AnyAPI SEO pages of a domain with their backlink profile (rank, backlinks, referring domains) and on-page data (title, headings, word count, status, technologies) as normalized JSON. AnyAPI returns one normalized schema whichever source serves it. It costs $0.08 per 1,000 results, and never more than $0.0768 for a single request, in US dollars with no subscription and no monthly minimum.

It costs $0.08 per 1,000 results, and never more than $0.0768 for a single request, in US dollars with no subscription and no monthly minimum. You fund one USD wallet, each call draws it down, and a failed request costs $0.

Get AnyAPI SEO pages of a domain with their backlink profile (rank, backlinks, referring domains) and on-page data (title, headings, word count, status, technologies) as normalized JSON. The response is normalized JSON with the same envelope every AnyAPI endpoint returns, so parsing a second endpoint is a change of URL and nothing else.