Free Backlink API: Query Any Domain's Link Profile
Crawly's free backlink API returns referring domains, individual backlinks with quality ratings, and outbound links for any domain. No credit card required.
16 May 2026 · 6 min read
Crawly's free backlink API returns the full link profile for any domain: referring domains, individual backlinks with quality ratings, outbound links, and authority scores. Free API key, no credit card, 100 requests per day.
The backlinks endpoint is designed for developers building link analysis tools, agency dashboards, prospecting scripts, or anything that needs structured backlink data without a paid subscription to Ahrefs, Moz, or Semrush.
What the backlink API returns
A request to /api/v1/backlinks returns the complete backlink profile for a domain:
{
"domain": "example.com",
"summary": {
"referring_domains": 1284,
"total_links": 9430
},
"backlinks": {
"total": 1284,
"backlinks": [
{
"source_domain": "nytimes.com",
"link_count": 14,
"domain_rating": "High",
"pagerank_rank": 45
}
]
},
"outlinks": {
"total": 312,
"outlinks": [
{ "target_domain": "github.com", "link_count": 9 }
]
},
"score": {
"harmonic_rank": 124500,
"pagerank_rank": 892000,
"host_count": 460
}
}
The response includes:
- summary: total referring domain count and backlink count
- backlinks: each referring domain, how many links it sends, its quality rating, and its PageRank rank
- outlinks: domains the target site links out to
- score: harmonic rank and PageRank-based authority signals
Getting your free API key
Go to getcrawly.com/api, enter a project name and email address, and your API key is generated instantly. No credit card, no verification email.
Pass the key as a Bearer token in the Authorization header:
curl "https://www.getcrawly.com/api/v1/backlinks?domain=example.com" \
-H "Authorization: Bearer crawly_live_your_key"
Or as a query parameter:
curl "https://www.getcrawly.com/api/v1/backlinks?domain=example.com&key=crawly_live_your_key"
Using the backlink API in code
JavaScript
const domain = "example.com";
const key = "crawly_live_your_key";
const res = await fetch(
`https://www.getcrawly.com/api/v1/backlinks?domain=${domain}`,
{ headers: { Authorization: `Bearer ${key}` } }
);
const data = await res.json();
console.log(`Referring domains: ${data.summary.referring_domains}`);
console.log(`Total links: ${data.summary.total_links}`);
data.backlinks.backlinks.forEach(link => {
console.log(`${link.source_domain}: ${link.link_count} links (${link.domain_rating})`);
});
Python
import requests
domain = "example.com"
key = "crawly_live_your_key"
res = requests.get(
"https://www.getcrawly.com/api/v1/backlinks",
params={"domain": domain},
headers={"Authorization": f"Bearer {key}"},
)
data = res.json()
print(f"Referring domains: {data['summary']['referring_domains']}")
for link in data["backlinks"]["backlinks"]:
print(f"{link['source_domain']}: {link['link_count']} links ({link['domain_rating']})")
What you can build with backlink data
Competitor backlink analysis
Pull the backlink profile for a competitor domain and identify which high-quality sites link to them but not to you. Those are your link building targets.
import requests
def get_referring_domains(domain, key):
res = requests.get(
"https://www.getcrawly.com/api/v1/backlinks",
params={"domain": domain},
headers={"Authorization": f"Bearer {key}"},
)
data = res.json()
return {link["source_domain"] for link in data["backlinks"]["backlinks"]}
key = "crawly_live_your_key"
my_domains = get_referring_domains("mysite.com", key)
competitor_domains = get_referring_domains("competitor.com", key)
link_gaps = competitor_domains - my_domains
print(f"Competitor has {len(link_gaps)} domains linking to them that don't link to you:")
for d in sorted(link_gaps):
print(f" {d}")
Backlink quality scoring
Combine the backlinks endpoint with the domain authority endpoint and spam score endpoint to assign a quality score to each referring domain. Flag low-authority or high-spam sources for disavowal consideration.
import requests, time
def score_referring_domains(domain, key):
backlinks_res = requests.get(
"https://www.getcrawly.com/api/v1/backlinks",
params={"domain": domain},
headers={"Authorization": f"Bearer {key}"},
).json()
scored = []
for link in backlinks_res["backlinks"]["backlinks"]:
source = link["source_domain"]
spam_res = requests.get(
"https://www.getcrawly.com/api/v1/spam-score",
params={"domain": source},
headers={"Authorization": f"Bearer {key}"},
).json()
scored.append({
"domain": source,
"links": link["link_count"],
"rating": link["domain_rating"],
"spam_score": spam_res["spam_score"],
"risk": spam_res["risk"],
})
time.sleep(0.3)
return scored
Link monitoring dashboard
Query your backlink profile monthly and store the referring domain count. Track it over time and alert when the count drops significantly, which can indicate lost links worth reclaiming.
Rate limits
| Tier | Requests per day | Reset |
|---|---|---|
| Free | 100 | Every 24 hours |
The 100 daily requests cover the domain authority, backlinks, and spam score endpoints combined. For a workflow checking 30 domains across all three endpoints, that is 90 requests: within the free limit in a single run.
Combining endpoints
The same API key works across all three Crawly API endpoints. A full domain analysis in one script:
import requests
def full_domain_report(domain, key):
headers = {"Authorization": f"Bearer {key}"}
base = "https://www.getcrawly.com/api/v1"
da = requests.get(f"{base}/domain-authority", params={"domain": domain}, headers=headers).json()
bl = requests.get(f"{base}/backlinks", params={"domain": domain}, headers=headers).json()
sp = requests.get(f"{base}/spam-score", params={"domain": domain}, headers=headers).json()
return {
"domain": domain,
"referring_domains": da["summary"]["referring_domains"],
"total_links": da["summary"]["total_links"],
"top_linker": bl["backlinks"]["backlinks"][0]["source_domain"] if bl["backlinks"]["backlinks"] else None,
"spam_score": sp["spam_score"],
"spam_risk": sp["risk"],
}
report = full_domain_report("example.com", "crawly_live_your_key")
print(report)
See the full API reference for complete endpoint documentation, error codes, and response schemas.
Get your free backlink API key at getcrawly.com/api. No credit card. 100 requests per day. No vendor lock-in.