Free SEO API
SEO data for developers
Query domain authority, backlinks and spam scores programmatically. Free API key, no credit card, 100 requests per day.
Get your API key
Enter a project name and email. Your key is generated instantly.
Endpoints
All endpoints accept GET requests and return JSON. Pass your key as a Bearer token or a query parameter.
/api/v1/domain-authorityReturns authority score, referring domains, total backlinks, PageRank rank, and harmonic rank for any domain.
| Parameter | Type | Required | Description |
|---|---|---|---|
| domain | string | required | The domain to query (e.g. example.com) |
| key | string | required | Your API key (or pass as Authorization: Bearer <key>) |
Request
curl "https://www.getcrawly.com/api/v1/domain-authority?domain=example.com" \
-H "Authorization: Bearer crawly_live_your_key"Response
{
"domain": "example.com",
"summary": {
"referring_domains": 1284,
"total_links": 9430
},
"score": {
"harmonic_rank": 124500,
"harmonic_score": 0.81,
"pagerank_rank": 892000,
"host_count": 460
}
}/api/v1/backlinksReturns the full backlink profile for a domain including referring domains, individual backlinks with quality ratings, and outbound links.
| Parameter | Type | Required | Description |
|---|---|---|---|
| domain | string | required | The domain to query (e.g. example.com) |
| key | string | required | Your API key (or pass as Authorization: Bearer <key>) |
Request
curl "https://www.getcrawly.com/api/v1/backlinks?domain=example.com" \
-H "Authorization: Bearer crawly_live_your_key"Response
{
"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
}
}/api/v1/spam-scoreReturns a spam score (0-100) for a domain based on link density, IP diversity, and authority signals. Lower is better.
| Parameter | Type | Required | Description |
|---|---|---|---|
| domain | string | required | The domain to query (e.g. example.com) |
| key | string | required | Your API key (or pass as Authorization: Bearer <key>) |
Request
curl "https://www.getcrawly.com/api/v1/spam-score?domain=example.com" \
-H "Authorization: Bearer crawly_live_your_key"Response
{
"domain": "example.com",
"spam_score": 12,
"risk": "Very Low",
"signals": {
"total_links": 9430,
"referring_domains": 1284,
"host_count": 460,
"harmonic_rank": 124500
}
}Code examples
Use any HTTP client. No SDK required.
JavaScript
const domain = "example.com";
const key = "crawly_live_your_key";
const res = await fetch(
`https://www.getcrawly.com/api/v1/domain-authority?domain=${domain}`,
{ headers: { Authorization: `Bearer ${key}` } }
);
const data = await res.json();
console.log(data.summary.referring_domains);Python
import requests
domain = "example.com"
key = "crawly_live_your_key"
res = requests.get(
"https://www.getcrawly.com/api/v1/domain-authority",
params={"domain": domain},
headers={"Authorization": f"Bearer {key}"},
)
data = res.json()
print(data["summary"]["referring_domains"])Limits and errors
Rate limits
| Requests per day | 100 |
| Reset | Every 24 hours |
| Burst | No hard limit |
Error codes
| 400 | Bad request |
| 401 | Invalid or missing key |
| 429 | Rate limit exceeded |
| 500 | Internal server error |
Also available
Crawly MCP Server
Query your crawl data directly from Claude Code, Cursor, Codex or Windsurf using natural language. The MCP server connects your AI coding tool to Crawly's full crawl dataset.
Learn about the MCP server