SEO API

SEO Backlinks API

Get AnyAPI SEO backlinks for a domain or URL, each with the linking page, anchor text, dofollow flag, authority rank, spam score, and first and last seen dates as normalized JSON.

$0.08/1k results, pay per request, no subscription.

What the API returnedbacklinks[0]
{
"urlFrom": "https://www.theverge.com/2026/6/2/notion-ai-workspace-redesign",
"domainFrom": "theverge.com",
"urlTo": "https://notion.so",
"anchor": "Notion",
"dofollow": true,
"linkType": "anchor",
"rank": 912,
"pageFromRank": 743,
... 37 more fields
}
Uptime
100.00%
30d · 67 calls
Requests
67
30d · weekly, last 12 wks
Response
0.9s
median · 30d

Pricing

SEO Backlinks API pricing

You pay
$0.80
$0.08/1k results, only for what you use. No monthly plan.
One request costs at most $0.0768 (960 results).
The $0.10 starting balance covers at least 1 requests.

Call it

Get SEO backlinks in one request

import os, requests

res = requests.post(
    "https://api.getanyapi.com/v1/run/seo.backlinks",
    headers={"Authorization": f"Bearer {os.environ['ANYAPI_KEY']}"},
    json={
        "target": ""
    },
)
print(res.json())
Open in
Get a free key
Sample response

This sample shows 44 of 50 fields. See every field

{
  "found": true,
  "data": {
    "totalCount": 4218654,
    "backlinks": [
      {
        "urlFrom": "https://www.theverge.com/2026/6/2/notion-ai-workspace-redesign",
        "domainFrom": "theverge.com",
        "urlTo": "https://notion.so",
        "anchor": "Notion",
        "dofollow": true,
        "linkType": "anchor",
        "rank": 912,
        "pageFromRank": 743,
        "domainFromRank": 912,
        "spamScore": 2,
        "pageFromTitle": "Notion redesigns its workspace around AI",
        "domainFromCountry": "US",
        "textBefore": "the productivity app",
        "textAfter": "announced a major redesign this week.",
        "isNew": true,
        "isLost": false,
        "isBroken": false,
        "firstSeenUtc": 1748822400,
        "lastSeenUtc": 1758844800,
        "previousSeenUtc": 1756166400,
        "domainTo": "notion.so",
        "tldFrom": "com",
        "attributes": [
          "noopener"
        ],
        "domainFromPlatformTypes": [
          "news",
          "technology"
        ],
        "pageFromLanguage": "en",
        "pageFromEncoding": "utf-8",
        "pageFromStatusCode": 200,
        "pageFromSize": 182044,
        "pageFromExternalLinks": 38,
        "pageFromInternalLinks": 212,
        "pageFromKeywordsTop3": 4,
        "pageFromKeywordsTop10": 12,
        "pageFromKeywordsTop100": 61,
        "semanticLocation": "article",
        "linksCount": 1,
        "groupCount": 1,
        "isOriginal": true,
        "isIndirect": false,
        "urlToStatusCode": 200,
        "urlToSpamScore": 1
      },
      {
        "urlFrom": "https://zapier.com/blog/best-note-taking-apps/",
        "domainFrom": "zapier.com",
        "urlTo": "https://notion.so/templates",
        "anchor": "Notion templates",
        "dofollow": true,
        "linkType": "anchor",
        "rank": 878,
        "pageFromRank": 611,
        "domainFromRank": 878,
        "spamScore": 3,
        "pageFromTitle": "The 12 best note-taking apps in 2026",
        "domainFromCountry": "US",
        "textBefore": "you can browse thousands of",
        "textAfter": "built by the community.",
        "isNew": false,
        "isLost": false,
        "isBroken": false,
        "firstSeenUtc": 1701388800,
        "lastSeenUtc": 1758844800,
        "domainTo": "notion.so",
        "tldFrom": "com",
        "attributes": [],
        "domainFromPlatformTypes": [
          "blogs",
          "software"
        ],
        "pageFromLanguage": "en",
        "pageFromStatusCode": 200,
        "pageFromSize": 96210,
        "pageFromExternalLinks": 54,
        "pageFromInternalLinks": 168,
        "semanticLocation": "article",
        "linksCount": 1,
        "groupCount": 1,
        "isOriginal": false,
        "isIndirect": false,
        "urlToStatusCode": 200
      },
      {
        "urlFrom": "https://www.reddit.com/r/productivity/comments/1a2b3c4",
        "domainFrom": "reddit.com",
        "urlTo": "https://notion.so",
        "anchor": "notion.so",
        "dofollow": false,
        "linkType": "anchor",
        "rank": 969,
        "pageFromRank": 402,
        "domainFromRank": 969,
        "spamScore": 6,
        "pageFromTitle": "What app do you use to organize your whole life?",
        "domainFromCountry": "US",
        "isNew": false,
        "isLost": false,
        "isBroken": false,
        "firstSeenUtc": 1690848000,
        "lastSeenUtc": 1758844800,
        "domainTo": "notion.so",
        "tldFrom": "com",
        "attributes": [
          "nofollow",
          "ugc"
        ],
        "domainFromPlatformTypes": [
          "forums"
        ],
        "pageFromLanguage": "en",
        "pageFromStatusCode": 200,
        "semanticLocation": "article",
        "linksCount": 1,
        "groupCount": 1,
        "isOriginal": true,
        "isIndirect": false,
        "urlToStatusCode": 200
      }
    ]
  }
}

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

Reference

One request, one response shape.

Every field you send and every field you get back, each with a real example.

Last verified 2026-11-08 · uptime and latency measured over 30d

Request body

JSON, posted to this endpoint.

  • targetstring

    notion.so

    Domain, subdomain, or full page URL to analyze. Send a domain without a protocol or leading www.

  • includeSubdomainsboolean

    true

    Count links pointing at the target's subdomains as well as the target itself.

  • limitinteger

    10

    Maximum number of backlinks to return. You are billed per returned result, so a lower limit costs less.

  • modeenum

    as_is

    as_is returns every backlink; one_per_domain keeps one backlink per linking domain; one_per_anchor keeps one per anchor text.

  • statusenum

    live

    Return backlinks that are live now, ones that have been lost, or both.

You send. A small JSON body. The values shown are examples to replace with your own.

Response

JSON, one example value per field.

each backlinkdata.backlinks[]

Backlinks pointing at the target. Populated whenever the provider has data for the entity.

  • anchorstring

    Notion

    Anchor text of the link.

  • attributesstring[]

    rel attributes on the link, such as nofollow, sponsored, ugc, or noopener.

  • dofollowboolean

    true

    True when the link passes ranking value (no nofollow attribute). Populated whenever the provider has data for the entity.

  • domainFromstring

    theverge.com

    Domain of the linking page. Populated whenever the provider has data for the entity.

  • domainFromCountrystring

    US

    Country code of the linking domain.

  • domainFromIpstring

    IP address of the linking domain.

  • domainFromIsIpboolean

    True when the linking host is a bare IP address.

  • domainFromPlatformTypesstring[]

    Site types of the linking domain, such as blogs, news, or ecommerce.

  • domainFromRankinteger

    912

    Authority rank of the linking domain on a 0-1000 scale.

  • domainTostring

    notion.so

    Domain of the target URL.

  • firstSeenUtcnumber

    1748822400

    When the backlink was first seen. UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.

  • groupCountinteger

    1

    Backlinks grouped into this one by the requested mode.

  • imageAltstring

    Alt text of the linked image, for image links.

  • imageUrlstring

    URL of the linked image, for image links.

  • isBrokenboolean

    false

    True when the target URL no longer resolves.

  • isIndirectboolean

    false

    True when the link reaches the target through a redirect or canonical.

  • isLostboolean

    false

    True when the backlink has been removed.

  • isNewboolean

    true

    True when the backlink appeared since the previous crawl.

  • isOriginalboolean

    true

    True when the link was present on the first crawl of the linking page.

  • lastSeenUtcnumber

    1758844800

    When the backlink was last seen. UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.

  • linkTypestring

    anchor

    How the link is placed: anchor, image, redirect, canonical, alternate, and so on.

  • linksCountinteger

    1

    Identical links from the linking page to the target.

  • pageFromEncodingstring

    utf-8

    Character encoding of the linking page.

  • pageFromExternalLinksinteger

    38

    Outbound links on the linking page.

  • pageFromInternalLinksinteger

    212

    Internal links on the linking page.

  • pageFromKeywordsTop10integer

    12

    Keywords the linking page ranks in the top 10 for.

  • pageFromKeywordsTop100integer

    61

    Keywords the linking page ranks in the top 100 for.

  • pageFromKeywordsTop3integer

    4

    Keywords the linking page ranks in the top 3 for.

  • pageFromLanguagestring

    en

    Language code of the linking page.

  • pageFromRankinteger

    743

    Authority rank of the linking page on a 0-1000 scale.

  • pageFromSizeinteger

    182044

    Size of the linking page in bytes.

  • pageFromStatusCodeinteger

    200

    HTTP status the linking page returned.

  • pageFromTitlestring

    Notion redesigns its workspace around AI

    Title of the linking page.

  • previousSeenUtcnumber

    1756166400

    When the backlink was seen on the crawl before the last one. UTC epoch timestamp in seconds (Unix time). Multiply by 1000 for a JS Date in milliseconds.

  • rankinteger

    912

    Authority rank of the backlink on a 0-1000 scale.

  • semanticLocationstring

    article

    Page section holding the link, such as article, footer, or nav.

  • spamScoreinteger

    2

    Spam score of the backlink on a 0-100 scale.

  • textAfterstring

    announced a major redesign this week.

    Text right after the link on the linking page.

  • textBeforestring

    the productivity app

    Text right before the link on the linking page.

  • tldFromstring

    com

    Top-level domain of the linking page.

  • urlFromstring

    https://www.theverge.com/2026/6/2/notion-ai-workspace-redesign

    URL of the page carrying the link. Populated whenever the provider has data for the entity.

  • urlTostring

    https://notion.so

    Target URL the link points at. Populated whenever the provider has data for the entity.

  • urlToRedirectTargetstring

    Where the target URL redirects, if it does.

  • urlToSpamScoreinteger

    1

    Spam score of the target URL on a 0-100 scale.

  • urlToStatusCodeinteger

    200

    HTTP status the target URL returned.

datadata
  • totalCountinteger

    4218654

    Total backlinks matching the request, before the limit. Populated whenever the provider has data for the entity.

top level
  • foundboolean

    true

  • 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.

You get back. Named, typed fields in the same shape whichever source answers.

FAQ

About the SEO Backlinks API

The AnyAPI SEO Backlinks API returns SEO backlinks data as normalized JSON from one POST call to /v1/run/seo.backlinks. Get AnyAPI SEO backlinks for a domain or URL, each with the linking page, anchor text, dofollow flag, authority rank, spam score, and first and last seen dates 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. Over the last 30 days, 100.0% of SEO backlinks calls through AnyAPI succeeded, with a median response time of 0.9 seconds across 67 measured calls.

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 and each call draws it down. Some failed wallet-funded requests incur processing charges that we pass through at cost, with no markup; the error response shows the amount charged.

Get AnyAPI SEO backlinks for a domain or URL, each with the linking page, anchor text, dofollow flag, authority rank, spam score, and first and last seen dates 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 backlinks calls through AnyAPI succeeded, with a median response time of 0.9 seconds across 67 measured calls. These are AnyAPI's own measurements of traffic through the gateway, recomputed continuously, not a published service-level target.

Yes. A new AnyAPI account starts with $0.10 of free balance and no card required, which covers at least 1 SEO Backlinks calls at up to $0.0768 each.

Send a POST request to https://api.getanyapi.com/v1/run/seo.backlinks with your AnyAPI key in an "Authorization: Bearer" header and the input as a JSON body. The same key and the same wallet work on every AnyAPI endpoint.

No. You add US dollars to one prepaid AnyAPI balance and each request draws it down. There is no monthly plan and no minimum, and the same balance pays for every AnyAPI endpoint.

Yes. Install @getanyapi/sdk from npm for TypeScript or getanyapi from pip for Python. Both call every AnyAPI endpoint with the same key, and any HTTP client works too.

Yes. An agent can connect to the AnyAPI MCP server at https://api.getanyapi.com/mcp, or create its own free-trial key with one unauthenticated POST to https://api.getanyapi.com/agent/signup and call this endpoint over HTTP.