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.
Backlinks summary
Totals for the whole domain including subdomains, with internal links excluded.
Costs 8.3 credits per call.
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,canonicaland so on.
- Name
top_countries- Type
- array
- Description
Countries of the linking sites, by link count.
Request
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"
}
}
Backlinks
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.
Costs 9.3 credits per call, regardless of limit.
Required attributes
- Name
target- Type
- string
- Description
A domain such as
example.com, or one page such asexample.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,neworall. Defaultlive.
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
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"
}
}
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.
Costs 9.3 credits per call, regardless of limit.
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
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"
}
}
