# 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](https://rankfield.dev/endpoints/referrers), in the other direction.

- Page: https://rankfield.dev/endpoints/outbound-domains
- Full reference: https://rankfield.dev/docs/referring-domains/list-outbound-domains

## Request

`GET https://rankfield.dev/v1/domains/{domain}/outbound-domains`

Send `Authorization: Bearer YOUR_API_KEY`. Get a free key at https://rankfield.dev/?tab=key#playground (no account).

```bash
curl "https://rankfield.dev/v1/domains/github.com/outbound-domains?limit=3" \
  -H "Authorization: Bearer $RANKFIELD_API_KEY"
```

Response:

```json
{
  "domain": "github.com",
  "crawlRelease": "2026-may-jun-jul",
  "buildId": "graph-2026mayjunjul-v3",
  "asOf": "2026-08-19T00:00:00Z",
  "totalGraphRelationships": 218285,
  "sort": "strength_desc",
  "minSiteStrength": 0,
  "destinations": [
    { "domain": "adobe.com", "siteStrength": 100 },
    { "domain": "amazon.com", "siteStrength": 100 },
    { "domain": "amazonaws.com", "siteStrength": 100 }
  ],
  "nextCursor": "eyJ2IjoxLCJkb21haW4iOiJnaXRodWIuY29tIi…"
}
```

## Parameters

| Name | In | Type | Required | Default | Description |
|---|---|---|---|---|---|
| `domain` | path | string | yes |  | A domain such as `github.com`. Case and a leading `www.` are ignored; a URL works too, URL-encoded. |
| `limit` | query | integer | no | `100` | Domains per page, 1 to 1,000. |
| `cursor` | query | string | no |  | `nextCursor` from the previous page. It keeps the filters, the order and the graph release of the first page. |
| `minSiteStrength` | query | integer | no | `0` | Leave out domains below this Site Strength, 0 to 100. |
| `sort` | query | string | no | `strength_desc` | `strength_desc` or `strength_asc`. |
| `format` | query | string | no | `json` | `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

```bash
curl "https://rankfield.dev/v1/domains/example.com/outbound-domains?format=csv" \
  -H "Authorization: Bearer $RANKFIELD_API_KEY"
```

```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](https://rankfield.dev/endpoints/dataset-status) tells you which release answered. A domain that isn't in our link graph yet answers `200` with `"inGraph": false` and zeros; the field is absent otherwise, and a malformed domain gets `400`.

## MCP

Tools on https://rankfield.dev/mcp: `list_outbound_domains`, `start_domain_export`, `get_export_job`.
