Outbound Links
Get the links a domain points out to, with anchor text and a concentration summary.
GET
/v1/outbound-links2 creditsAPI keyReturns links going out from a domain to other sites, ranked by how often each link appears, plus a small summary of how concentrated those destinations are. Use it to audit who a site links to or to find sites that a competitor endorses. Data comes from the pre-processed link graph snapshot (see Response format).
Request
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
domain | string | Yes | none | Domain whose outgoing links you want, for example smartify.in. No scheme or path. Must contain a dot. |
limit | integer | No | 100 | Number of rows to return. Clamped to 1 to 1000. A non-numeric value falls back to 100. |
This endpoint does not support offset. Raise limit (up to 1000) to see more rows.
Example
curl "https://api.rankparse.com/v1/outbound-links?domain=smartify.in&limit=50" \
-H "X-API-Key: rp_your_key"import requests
res = requests.get(
"https://api.rankparse.com/v1/outbound-links",
params={"domain": "smartify.in", "limit": 50},
headers={"X-API-Key": "rp_your_key"},
timeout=90,
)
res.raise_for_status()
body = res.json()
print(body["summary"])
for link in body["data"]:
print(link["to_domain"], link["edge_count"])const params = new URLSearchParams({ domain: "smartify.in", limit: "50" });
const res = await fetch(`https://api.rankparse.com/v1/outbound-links?${params}`, {
headers: { "X-API-Key": "rp_your_key" },
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const { data, summary } = await res.json();
console.log(summary, data);Response
{
"domain": "smartify.in",
"data": [
{
"to_domain": "github.com",
"to_url": "https://github.com/smartify/sdk",
"anchor_text": "Source code",
"link_type": "hyperlink",
"edge_count": 12
},
{
"to_domain": "twitter.com",
"to_url": "https://twitter.com/smartify",
"anchor_text": null,
"link_type": "hyperlink",
"edge_count": 8
}
],
"total": 2,
"limit": 50,
"credits_used": 2,
"credits_remaining": 996,
"summary": {
"unique_destinations": 2,
"top_domain": "github.com",
"top_domain_concentration": 0.6
}
}Response fields
Top level:
| Field | Type | Description |
|---|---|---|
domain | string | The normalized (lowercased) domain you queried. |
data | array | Outbound links sorted by edge_count descending. Empty when the domain has no data. |
total | integer | Number of rows returned in data. |
limit | integer | The limit value you sent, echoed back as received. |
summary | object | Concentration summary computed over the returned rows (below). |
credits_used | integer | Always 2. |
credits_remaining | integer | Your balance after this call. |
Each row in data:
| Field | Type | Description |
|---|---|---|
to_domain | string | Domain being linked to. |
to_url | string | Full URL being linked to. |
anchor_text | string or null | Anchor text, or null when there is none. |
link_type | string | hyperlink, image, script, stylesheet, iframe or other. |
edge_count | integer | How many times this exact link was observed. |
The summary object:
| Field | Type | Description |
|---|---|---|
unique_destinations | integer | Number of rows in data. |
top_domain | string or null | Destination domain of the first row, or null when there are no rows. |
top_domain_concentration | number | edge_count of the first row divided by the sum of edge_count across the returned rows (0 to 1). 0 when there are no rows. |
Behavior and limits
- Row grain: a row is one distinct combination of destination domain, URL, anchor text and link type, so the same domain can appear many times.
- Credits: 2 per call, charged before the lookup. Server errors are refunded.
- Caching: results are cached for 30 days per crawl release and per combination of
domainandlimit. A cache hit is billed the same as a fresh lookup. - Empty results: a domain with no data returns
200withdata: [], asummarywithunique_destinations: 0, and never404. - Rate limit: 60 requests per minute per key. See Rate limiting.
Errors
| HTTP | Code | When |
|---|---|---|
| 400 | invalid_domain | domain is missing or not a valid domain. |
| 401 | invalid_api_key | Missing, invalid or revoked API key. |
| 402 | insufficient_credits | Balance is lower than the call cost. |
| 402 | spend_cap_reached | Your monthly spend cap is reached. |
| 429 | rate_limited | More than 60 requests in a minute. |
| 503 | query_timeout, upstream_error | Transient data store problem. Retry after the Retry-After header. Credits are refunded. |
See Errors for the full list and the error body format.
Related
MCP tool: get_outbound_links (accepts domain, limit).