SEO API

SEO Top pages API

Get AnyAPI SEO top pages of a domain by organic search, each with ranking keyword counts, estimated traffic and its ad value, and position distribution as normalized JSON.

POST/v1/run/seo.top_pages
Uptime
100.00%
30d · 1 call
Requests
1
30d
Response
0.8s
median · 30d

Try it

Make your first request

Open in
Get a free key
Sample response
Free runs return only the first 3 results. Fund a key to get the full response.
{
  "data": {
    "pages": [
      {
        "organicDown": 42,
        "organicKeywords": 42,
        "organicLost": 42,
        "organicNew": 42,
        "organicPos1": 42,
        "organicPos11To20": 42,
        "organicPos21To30": 42,
        "organicPos2To3": 42,
        "organicPos31To40": 42,
        "organicPos41To50": 42,
        "organicPos4To10": 42,
        "organicPos51To60": 42,
        "organicPos61To70": 42,
        "organicPos71To80": 42,
        "organicPos81To90": 42,
        "organicPos91To100": 42,
        "organicTraffic": 12500,
        "organicTrafficCostUsd": 19.99,
        "organicUp": 42,
        "paidDown": 1024,
        "paidKeywords": 1024,
        "paidLost": 1024,
        "paidNew": 1024,
        "paidPos1": 1024,
        "paidPos11To20": 1024,
        "paidPos21To30": 1024,
        "paidPos2To3": 1024,
        "paidPos31To40": 1024,
        "paidPos41To50": 1024,
        "paidPos4To10": 1024,
        "paidPos51To60": 1024,
        "paidPos61To70": 1024,
        "paidPos71To80": 1024,
        "paidPos81To90": 1024,
        "paidPos91To100": 1024,
        "paidTraffic": 12500,
        "paidTrafficCostUsd": 19.99,
        "paidUp": 1024,
        "url": "https://example.com/page"
      }
    ],
    "totalCount": 12500
  },
  "found": true,
  "reason": "not_found"
}
Response interface
interface SeoTopPagesResponse {
  data: {
    pages: {
      organicDown?: number;
      organicKeywords?: number;
      organicLost?: number;
      organicNew?: number;
      organicPos1?: number;
      organicPos11To20?: number;
      organicPos21To30?: number;
      organicPos2To3?: number;
      organicPos31To40?: number;
      organicPos41To50?: number;
      organicPos4To10?: number;
      organicPos51To60?: number;
      organicPos61To70?: number;
      organicPos71To80?: number;
      organicPos81To90?: number;
      organicPos91To100?: number;
      organicTraffic?: number;
      organicTrafficCostUsd?: number;
      organicUp?: number;
      paidDown?: number;
      paidKeywords?: number;
      paidLost?: number;
      paidNew?: number;
      paidPos1?: number;
      paidPos11To20?: number;
      paidPos21To30?: number;
      paidPos2To3?: number;
      paidPos31To40?: number;
      paidPos41To50?: number;
      paidPos4To10?: number;
      paidPos51To60?: number;
      paidPos61To70?: number;
      paidPos71To80?: number;
      paidPos81To90?: number;
      paidPos91To100?: number;
      paidTraffic?: number;
      paidTrafficCostUsd?: number;
      paidUp?: number;
      url: string;
    }[];
    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.top_pages
curl -X POST https://api.getanyapi.com/v1/run/seo.top_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 to analyze, without a protocol or leading www.
languagestringLanguage code for search metrics.
limitinteger10Maximum number of pages to return. You are billed per returned result, so a lower limit costs less.
locationintegerLocation code for search metrics. The default is the United States.
statusenumCount rankings the page holds now, rankings it has lost, or both.
Response
dataobject
data.pagesobject[]Pages of the domain ranked by organic search traffic. Populated whenever the provider has data for the entity.
data.pages[].organicDownintegerOrganic keywords that moved down since the previous update.
data.pages[].organicKeywordsintegerKeywords the page ranks for in organic results. Populated whenever the provider has data for the entity.
data.pages[].organicLostintegerOrganic keywords no longer ranking since the previous update.
data.pages[].organicNewintegerOrganic keywords newly ranking since the previous update.
data.pages[].organicPos1integerOrganic keywords ranking the page at positions 1.
data.pages[].organicPos11To20integerOrganic keywords ranking the page at positions 11-20.
data.pages[].organicPos21To30integerOrganic keywords ranking the page at positions 21-30.
data.pages[].organicPos2To3integerOrganic keywords ranking the page at positions 2-3.
data.pages[].organicPos31To40integerOrganic keywords ranking the page at positions 31-40.
data.pages[].organicPos41To50integerOrganic keywords ranking the page at positions 41-50.
data.pages[].organicPos4To10integerOrganic keywords ranking the page at positions 4-10.
data.pages[].organicPos51To60integerOrganic keywords ranking the page at positions 51-60.
data.pages[].organicPos61To70integerOrganic keywords ranking the page at positions 61-70.
data.pages[].organicPos71To80integerOrganic keywords ranking the page at positions 71-80.
data.pages[].organicPos81To90integerOrganic keywords ranking the page at positions 81-90.
data.pages[].organicPos91To100integerOrganic keywords ranking the page at positions 91-100.
data.pages[].organicTrafficnumberEstimated monthly organic traffic to the page. Populated whenever the provider has data for the entity.
data.pages[].organicTrafficCostUsdnumberEstimated monthly cost in USD of buying the page's organic traffic as ads.
data.pages[].organicUpintegerOrganic keywords that moved up since the previous update.
data.pages[].paidDownintegerPaid keywords that moved down since the previous update.
data.pages[].paidKeywordsintegerKeywords the page ranks for in paid results.
data.pages[].paidLostintegerPaid keywords no longer ranking since the previous update.
data.pages[].paidNewintegerPaid keywords newly ranking since the previous update.
data.pages[].paidPos1integerPaid keywords ranking the page at positions 1.
data.pages[].paidPos11To20integerPaid keywords ranking the page at positions 11-20.
data.pages[].paidPos21To30integerPaid keywords ranking the page at positions 21-30.
data.pages[].paidPos2To3integerPaid keywords ranking the page at positions 2-3.
data.pages[].paidPos31To40integerPaid keywords ranking the page at positions 31-40.
data.pages[].paidPos41To50integerPaid keywords ranking the page at positions 41-50.
data.pages[].paidPos4To10integerPaid keywords ranking the page at positions 4-10.
data.pages[].paidPos51To60integerPaid keywords ranking the page at positions 51-60.
data.pages[].paidPos61To70integerPaid keywords ranking the page at positions 61-70.
data.pages[].paidPos71To80integerPaid keywords ranking the page at positions 71-80.
data.pages[].paidPos81To90integerPaid keywords ranking the page at positions 81-90.
data.pages[].paidPos91To100integerPaid keywords ranking the page at positions 91-100.
data.pages[].paidTrafficnumberEstimated monthly paid traffic to the page.
data.pages[].paidTrafficCostUsdnumberEstimated monthly cost in USD of buying the page's paid traffic as ads.
data.pages[].paidUpintegerPaid keywords that moved up since the previous update.
data.pages[].urlstringPage URL. Populated whenever the provider has data for the entity.
data.totalCountintegerTotal ranking 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.1584
Price /1k resultsUSD$0.165

FAQ

About the SEO Top pages API

The AnyAPI SEO Top pages API returns SEO top pages data as normalized JSON from one POST call to /v1/run/seo.top_pages. Get AnyAPI SEO top pages of a domain by organic search, each with ranking keyword counts, estimated traffic and its ad value, and position distribution as normalized JSON. AnyAPI returns one normalized schema whichever source serves it. It costs $0.17 per 1,000 results, and never more than $0.1584 for a single request, in US dollars with no subscription and no monthly minimum. Over the last 30 days, 100.0% of SEO top pages calls through AnyAPI succeeded, with a median response time of 0.8 seconds across 1 measured calls.

It costs $0.17 per 1,000 results, and never more than $0.1584 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 top pages of a domain by organic search, each with ranking keyword counts, estimated traffic and its ad value, and position distribution 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.

Over the last 30 days, 100.0% of SEO top pages calls through AnyAPI succeeded, with a median response time of 0.8 seconds across 1 measured calls. These are AnyAPI's own measurements of traffic through the gateway, recomputed continuously, not a published service-level target.