# Summarize the backlink profile of a domain or URL

Returns a domain or page's backlink profile in one object: rank, backlink and linking domain counts, and spam score. Use it for a quick view of a site's authority.

Tool `web.backlinks.summary` on Open web and SEO. Contract version 1, released 2026-10-27.

## Example call

Over REST, send the input in the body. Over MCP, pass the same input to `call_tool`.

cURL:

```bash
curl https://api.voxoria.ai/v1/tools/web.backlinks.summary/calls \
  -H "Authorization: Bearer $VOXORIA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"target":"moz.com"}}'
```

Python:

```python
import os

import httpx

response = httpx.post(
    "https://api.voxoria.ai/v1/tools/web.backlinks.summary/calls",
    headers={"Authorization": f"Bearer {os.environ['VOXORIA_API_KEY']}"},
    json={"input": {"target": "moz.com"}},
    timeout=60,
)
print(response.json())
```

TypeScript:

```ts
const response = await fetch("https://api.voxoria.ai/v1/tools/web.backlinks.summary/calls", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.VOXORIA_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"input": {"target": "moz.com"}}),
});
console.log(await response.json());
```

MCP (`tools/call` params):

```json
{
  "name": "call_tool",
  "arguments": {
    "tool": "web.backlinks.summary",
    "input": {
      "target": "moz.com"
    }
  }
}
```

Both return [the full response](/docs/call-response.md): the call's ID, status and cost, with this tool's result in `output`.

## Input

| Input | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `target` | string | Yes |  | The domain or subdomain, without scheme or www, such as "moz.com", or the full URL of one page. 1 or more characters. |
| `link_status` | string | No | `live` | Which backlinks count: live (still on the linking page), lost (gone from it, or the page itself gone) or all. One of `live`, `lost`, `all`. |

## Output

A successful call returns these blocks in its `output`. A field not marked required can be `null`.

### summary

One object. Can be `null`.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `rank` | integer | No | Authority of the target from its backlinks, from 0 to 100, the domain's for a domain and the page's for a URL. Each provider computes its own; scores of different providers do not compare. |
| `backlink_count` | integer | Yes | Links to the target from other sites. |
| `dofollow_backlink_count` | integer | No | Of those, the links that pass ranking credit, having no nofollow attribute. |
| `broken_backlink_count` | integer | No | Links to pages of the target that answer with an error. |
| `linking_domain_count` | integer | Yes | Domains that link to the target. |
| `nofollow_linking_domain_count` | integer | No | Of those, the domains with at least one nofollow link to the target. |
| `linking_page_count` | integer | No | Pages that link to the target. |
| `linking_ip_count` | integer | No | IP addresses the linking domains are hosted on. |
| `linking_subnet_count` | integer | No | Class C subnets (/24) the linking domains are hosted on. |
| `spam_score` | integer | No | Likelihood that the target is spam, from 0 (least) to 100. Each provider computes its own. |
| `first_seen_at` | string | No | When the target was first found, as an ISO 8601 timestamp in UTC. |

## Example output

The `output` of a real call, each list cut to 3 items.

```json
{
  "summary": {
    "rank": 75,
    "backlink_count": 4069058,
    "dofollow_backlink_count": null,
    "broken_backlink_count": 52395,
    "linking_domain_count": 122601,
    "nofollow_linking_domain_count": 22111,
    "linking_page_count": 3362993,
    "linking_ip_count": 61181,
    "linking_subnet_count": 26390,
    "spam_score": 0,
    "first_seen_at": "2019-01-15T22:55:49Z"
  }
}
```
