---
title: "Compute Content Gaps Ep"
method: POST
path: "/sites/{site_id}/gaps/compute"
tags: ["sites"]
---

# Compute Content Gaps Ep

`POST /sites/{site_id}/gaps/compute`

## Request

- Base URL: `https://api.xeorank.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.xeorank.com/sites/{site_id}/gaps/compute`
- Auth: API key in header `X-Agent-Key`

Work out what rivals cover that this site's pages don't, and store it.

Deliberately user-triggered rather than scheduled: each gap fetches rival
pages, and running that on a timer across the fleet would generate a lot of
outbound traffic for answers nobody asked for. Everything downstream reads
the stored result for free.

Metered against `content_gaps.monthly` (free 25 / pro 150 / agency 500 /
managed unlimited), one unit per gap. If the allowance runs out mid-run the
gaps computed so far are kept and the response says how many were left.

`dry_run=true` lists what would be analysed and how many units it needs,
without spending any.

## Path parameters

- `site_id` string, required

## Query parameters

- `email` string, nullable
- `limit` integer
- `dry_run` boolean

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/xeorank/apis/seo-intelligence-engine.md) · [All operations](https://skmtc.dev/xeorank/apis/seo-intelligence-engine/llms.txt) · [OpenAPI document](https://skmtc.dev/xeorank/apis/seo-intelligence-engine/revisions/449a3fd73454?raw)
