Backlinks

One call that summarises a domain's link profile. Use it to size a competitor's authority before deciding whether to compete on content or on links.


POST/v1/domains/backlinks

Totals for the whole domain including subdomains, with internal links excluded.

Required attributes

  • Name
    domain
    Type
    string
    Description

    A bare domain such as example.com. Protocol, www. and paths are stripped.

Response fields

  • Name
    rank
    Type
    integer
    Description

    Domain rank from 0 to 1000, based on the quality and quantity of links.

  • Name
    referring_domains
    Type
    integer
    Description

    Distinct domains linking to the target. Usually the number that matters.

  • Name
    nofollow_backlinks
    Type
    integer
    Description

    Links carrying rel=nofollow.

  • Name
    spam_score
    Type
    integer
    Description

    0 to 100. Higher means more links from suspicious sources.

  • Name
    top_tlds
    Type
    array
    Description

    Top level domains of the linking sites, by link count.

  • Name
    link_types
    Type
    array
    Description

    anchor, image, redirect, canonical and so on.

  • Name
    top_countries
    Type
    array
    Description

    Countries of the linking sites, by link count.

Request

POST
/v1/domains/backlinks
curl -X POST https://suvjexogmfpvxjcktvuk.supabase.co/functions/v1/api/v1/domains/backlinks \
  -H "Authorization: Bearer $PENGU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain": "hubspot.com"}'

Response

{
  "data": {
    "domain": "hubspot.com",
    "checked_at": "2026-09-09T11:47:23.500Z",
    "rank": 679,
    "backlinks": 29053738,
    "referring_domains": 384860,
    "referring_main_domains": 333298,
    "referring_ips": 129902,
    "referring_pages": 22169548,
    "broken_backlinks": 186430,
    "broken_pages": 174114,
    "nofollow_backlinks": 966161,
    "sponsored_backlinks": 14181,
    "spam_score": 5,
    "first_seen": "2019-01-15 22:57:10 +00:00",
    "top_tlds": [
      {
        "name": "com",
        "count": 14879506
      },
      {
        "name": "org",
        "count": 751402
      },
      {
        "name": "blogspot.com",
        "count": 512841
      },
      // ...
    ],
    "link_types": [
      {
        "name": "anchor",
        "count": 11777768
      },
      {
        "name": "image",
        "count": 10268383
      },
      {
        "name": "redirect",
        "count": 86656
      },
      // ...
    ],
    "top_countries": [
      {
        "name": "US",
        "count": 8437285
      },
      {
        "name": "",
        "count": 4870336
      },
      {
        "name": "WW",
        "count": 3208828
      },
      // ...
    ]
  },
  "meta": {
    "credits_charged": 4.5,
    "credits_remaining": 483.5,
    "request_id": "7f1a4da0-ae05-4890-89b8-f8503d33b697"
  }
}

POST/v1/domains/backlinks-list

The individual links, where the summary endpoint above gives you the totals. Source page, anchor text, whether the link is followed, the source's authority rank and when it was first and last seen.

Required attributes

  • Name
    target
    Type
    string
    Description

    A domain such as example.com, or one page such as example.com/pricing. A page target answers "who links to this article", which is the question worth asking before you rewrite it.

Optional attributes

  • Name
    limit
    Type
    integer
    Description

    Links to return, 10 to 100. Default 50. Capped by your plan.

  • Name
    per_domain
    Type
    boolean
    Description

    Return at most one link per linking domain. Default false. Turn it on when a single site links to you a thousand times and drowns out everything else.

  • Name
    status
    Type
    string
    Description

    live, lost, new or all. Default live.

Response fields

  • Name
    dofollow_count
    Type
    integer
    Description

    How many of the returned links pass authority.

  • Name
    referring_domains
    Type
    integer
    Description

    Distinct domains among the returned links.

  • Name
    backlinks[].anchor
    Type
    string
    Description

    The clickable text of the link, which is what tells you what the linking page thinks you are about.

Request

POST
/v1/domains/backlinks-list
curl -X POST https://suvjexogmfpvxjcktvuk.supabase.co/functions/v1/api/v1/domains/backlinks-list \
  -H "Authorization: Bearer $PENGU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"target": "example.com", "limit": 50}'

Response

{
  "data": {
    "target": "example.com",
    "status": "live",
    "checked_at": "2026-09-20T09:50:22.004Z",
    "count": 50,
    "dofollow_count": 38,
    "referring_domains": 41,
    "backlinks": [
      {
        "from_domain": "industry-blog.com",
        "from_url": "https://industry-blog.com/best-tools-2026",
        "to_url": "https://example.com/pricing",
        "anchor": "Example pricing",
        "dofollow": true,
        "rank": 312,
        "page_title": "The 12 tools we actually pay for in 2026",
        "first_seen": "2026-02-14 09:11:02 +00:00",
        "last_seen": "2026-09-18 03:22:40 +00:00"
      }
    ]
  },
  "meta": {
    "credits_charged": 5.5,
    "credits_remaining": 2794.5,
    "request_id": "3f8b0c7e-1d42-4a99-8e06-2b1c7f5a9d30"
  }
}

POST/v1/domains/referring-domains

Referring domains

One row per linking domain instead of one per link. This is the number that matters for authority: a hundred links from one site are worth less than ten links from ten.

Domains whose links are gone are dropped from the response. They describe history, not something you can act on today.

Required attributes

  • Name
    domain
    Type
    string
    Description

    The domain to look up, bare: example.com.

Optional attributes

  • Name
    limit
    Type
    integer
    Description

    Domains to return, 10 to 100. Default 50. Capped by your plan.

Response fields

  • Name
    total_backlinks
    Type
    integer
    Description

    Links summed across the returned domains.

  • Name
    referring_domains[].dofollow
    Type
    integer
    Description

    How many of that domain's links pass authority.

  • Name
    referring_domains[].rank
    Type
    integer
    Description

    The linking domain's own authority rank. Sorted highest first.

Request

POST
/v1/domains/referring-domains
curl -X POST https://suvjexogmfpvxjcktvuk.supabase.co/functions/v1/api/v1/domains/referring-domains \
  -H "Authorization: Bearer $PENGU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain": "example.com", "limit": 50}'

Response

{
  "data": {
    "domain": "example.com",
    "checked_at": "2026-09-20T09:52:10.663Z",
    "count": 50,
    "total_backlinks": 1284,
    "referring_domains": [
      {
        "domain": "industry-blog.com",
        "rank": 312,
        "backlinks": 14,
        "dofollow": 11,
        "referring_pages": 9,
        "first_seen": "2026-02-14 09:11:02 +00:00"
      }
    ]
  },
  "meta": {
    "credits_charged": 5.5,
    "credits_remaining": 2789,
    "request_id": "6c0d2a95-7b81-4e33-95af-1d84b2e60c57"
  }
}

Was this page helpful?