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.
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())
{
"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"
}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 30dcurl -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"}'| Field | Type | Example value |
|---|---|---|
| Request body | ||
| target | string | "ahrefs.com"Domain or subdomain to list pages for, without a protocol or leading www. |
| includeSubdomains | boolean | Count links pointing at the target's subdomains as well as the target itself. |
| limit | integer | 10Maximum number of pages to return. You are billed per returned result, so a lower limit costs less. |
| status | enum | Count backlinks that are live now, ones that have been lost, or both. |
| Response | ||
| data | object | |
| data.pages | object[] | Pages of the domain with their backlink and on-page data. Populated whenever the provider has data for the entity. |
| data.pages[].backlinks | integer | Backlinks counted. Populated whenever the provider has data for the entity. |
| data.pages[].brokenBacklinks | integer | Backlinks pointing at pages that no longer resolve. |
| data.pages[].brokenPages | integer | Linked pages with an error status. |
| data.pages[].canonical | string | Canonical URL declared by the page. |
| data.pages[].charset | string | Character set of the page. |
| data.pages[].contentEncoding | string | Content encoding of the response. |
| data.pages[].domain | string | Host of the page. Populated whenever the provider has data for the entity. |
| data.pages[].encodedSize | integer | Encoded page size in bytes. |
| data.pages[].externalLinks | integer | Outbound links on the page. |
| data.pages[].fetchedUtc | number | When the page was last crawled. UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. |
| data.pages[].firstSeenUtc | number | When 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[].firstVisitedUtc | number | When the page was first crawled. UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds. |
| data.pages[].h1 | string[] | H1 headings on the page. |
| data.pages[].h2 | string[] | H2 headings on the page. |
| data.pages[].h3 | string[] | H3 headings on the page. |
| data.pages[].imagesCount | integer | Images on the page. |
| data.pages[].internalLinks | integer | Internal links on the page. |
| data.pages[].ip | string | IP address the page was fetched from. |
| data.pages[].language | string | Language code of the page. |
| data.pages[].linksByAttribute | object | Count of these backlinks, by rel attribute (nofollow, sponsored, ugc, noopener, and so on). |
| data.pages[].linksByCountry | object | Count of these backlinks, by country code of the linking domain. An empty key means the country is unknown. |
| data.pages[].linksByPlatformType | object | Count of these backlinks, by type of linking site (blogs, news, ecommerce, and so on). |
| data.pages[].linksBySemanticLocation | object | Count 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[].linksByTld | object | Count of these backlinks, by top-level domain of the linking page. |
| data.pages[].linksByType | object | Count of these backlinks, by link type (anchor, image, redirect, canonical, alternate). |
| data.pages[].lostUtc | number | When 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[].mainDomain | string | Registrable domain of the page. |
| data.pages[].mediaType | string | Media type of the page. |
| data.pages[].pageSpamScore | integer | Spam score of the page on a 0-100 scale. |
| data.pages[].platformTypes | string[] | Site types detected, such as blogs, news, or ecommerce. |
| data.pages[].previousVisitedUtc | number | When 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[].rank | integer | Authority rank on a 0-1000 scale. Populated whenever the provider has data for the entity. |
| data.pages[].referringDomains | integer | Distinct linking domains. |
| data.pages[].referringDomainsNofollow | integer | Linking domains whose every link is nofollow. |
| data.pages[].referringIps | integer | Distinct IP addresses of linking pages. |
| data.pages[].referringMainDomains | integer | Distinct linking registrable domains. |
| data.pages[].referringMainDomainsNofollow | integer | Linking registrable domains whose every link is nofollow. |
| data.pages[].referringPages | integer | Distinct linking pages. |
| data.pages[].referringPagesNofollow | integer | Linking pages whose links are all nofollow. |
| data.pages[].referringSubnets | integer | Distinct subnets of linking pages. |
| data.pages[].server | string | Web server or CDN serving the page. |
| data.pages[].size | integer | Page size in bytes. |
| data.pages[].socialTags | object | Open Graph and Twitter card tags, by tag name. |
| data.pages[].spamScore | integer | Average spam score of those backlinks on a 0-100 scale. |
| data.pages[].statusCode | integer | HTTP status of the page on the last crawl. |
| data.pages[].technologies | object | Technologies detected on the page, by category. |
| data.pages[].title | string | Page title. |
| data.pages[].tld | string | Top-level domain of the page. |
| data.pages[].url | string | Page URL. Populated whenever the provider has data for the entity. |
| data.pages[].wordsCount | integer | Words on the page. |
| data.totalCount | integer | Total pages, before the limit. Populated whenever the provider has data for the entity. |
| found | boolean | |
| 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 results | USD | $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.