Outbound Domains API
Lists the domains a domain links to in the Rankfield web graph, with each one's Site Strength, 1,000 a page. Same filters, paging and export as All Referring Domains, in the other direction.
https://rankfield.dev/v1/domains/{domain}/outbound-domainsSend Authorization: Bearer YOUR_API_KEY. Get a free key; no account needed.
Parameters#
| Name | Type | Description |
|---|---|---|
domain | string | A domain such as github.com. Case and a leading www. are ignored; a URL works too, URL-encoded. |
limit | integer | Domains per page, 1 to 1,000. |
cursor | string | nextCursor from the previous page. It keeps the filters, the order and the graph release of the first page. |
minSiteStrength | integer | Leave out domains below this Site Strength, 0 to 100. |
sort | string | strength_desc or strength_asc. |
format | string | csv or jsonl export every matching row instead of one page (see Export). |
Response#
| Field | Type | Description |
|---|---|---|
domain | string | The domain you asked about. |
inGraph | boolean | Only when the domain isn't in our link graph yet: false, with an empty list. Absent otherwise. |
crawlRelease buildId asOf | string | The web graph release, its build and the date the data describes. |
totalGraphRelationships | integer | How many linked domains the domain has in the graph: all pages put together. |
sort minSiteStrength | string, integer | The order and filter this page uses. |
destinations | array | {domain, siteStrength}, strongest first by default. siteStrength is null for a domain without enough rank evidence. |
nextCursor | string | null | Pass it as cursor for the next page; null on the last page. |
Errors#
Errors come as {"error":{"message":"…"}} with the HTTP status.
| Status | When |
|---|---|
400 | The domain is not valid: {"error":{"message":"Invalid domain"}}. |
401 | The key is missing, unknown or revoked. |
409 | An export is already running for your key. |
429 | Only while the graph service is down and its fallback is busy. Wait for Retry-After. |
503 | The graph is briefly unavailable. Retry after Retry-After. |
Price and limits#
- Free; no per-call charge.
- No daily quota or concurrency cap per key.
Export the whole list#
Add format=csv or format=jsonl to export every linked domain that matches minSiteStrength, with no page limit. Rows: domain, siteStrength, crawlRelease, asOf, evidenceCoverage.
Up to 50,000 rows stream straight back. A longer list answers 202 with a job: follow statusUrl (GET /v1/jobs/{id}) until status is completed, then download GET /v1/jobs/{id}/download, or the checksummed parts at /v1/jobs/{id}/parts/{index} (10,000 rows each). DELETE /v1/jobs/{id} cancels; POST /v1/jobs/{id}/resume restarts a failed job. Files are kept for 7 days.
One export runs at a time per key; a second one answers 409. A real run: example.com's 150,374 referring domains were ready in 1.4 seconds as an 11.8 MB CSV.
Reference: https://rankfield.dev/docs/referring-domains/start-an-export-job
curl "https://rankfield.dev/v1/domains/example.com/outbound-domains?format=csv" \
-H "Authorization: Bearer $RANKFIELD_API_KEY"import os
import requests
response = requests.get(
"https://rankfield.dev/v1/domains/example.com/outbound-domains?format=csv",
headers={"Authorization": f"Bearer {os.environ['RANKFIELD_API_KEY']}"},
)
print(response.json())const response = await fetch("https://rankfield.dev/v1/domains/example.com/outbound-domains?format=csv", {
headers: {
Authorization: `Bearer ${process.env.RANKFIELD_API_KEY}`,
},
});
console.log(await response.json());{
"id": "fcb7b7b0-92db-4570-90cd-e7780867fa2d",
"status": "queued",
"kind": "referrers-export",
"domain": "example.com",
"release": "2026-may-jun-jul",
"buildId": "graph-2026mayjunjul-v3",
"totalGraphRelationships": 150374,
"expiresAt": "2026-11-01T14:34:29.106Z",
"statusUrl": "/v1/jobs/fcb7b7b0-92db-4570-90cd-e7780867fa2d"
}Notes#
- Data: the Rankfield web graph, built from public web crawl data of May–July 2026 (
2026-may-jun-jul), 117,963,409 domains. Dataset Status tells you which release answered. A domain that isn't in our link graph yet answers200with"inGraph": falseand zeros; the field is absent otherwise, and a malformed domain gets400.
See also#
- Full reference: https://rankfield.dev/docs/referring-domains/list-outbound-domains
- MCP tools on
https://rankfield.dev/mcp:list_outbound_domains,start_domain_export,get_export_job - This page as Markdown: /endpoints/outbound-domains.md