---
title: "Site Health Ep"
method: GET
path: "/sites/{site_id}/health"
tags: ["sites"]
---

# Site Health Ep

`GET /sites/{site_id}/health`

## 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}/health`
- Auth: API key in header `X-Agent-Key`

One consolidated health picture, assembled server-side.

The same finding currently renders across five surfaces in five
vocabularies with no shared identity. This is the single payload behind the
Health tab: scores, triage counts, issues grouped by RULE (one row saying
"40 pages", not 40 rows), the new-vs-fixed delta, ranked opportunities and
the site-type requirements summary.

Scores are computed server-side so the tab never re-derives them client-side
— the 0.45/0.30/0.25 weights were duplicated in brand-overview.tsx and drifting.

## Path parameters

- `site_id` string, required

## Query parameters

- `email` string, nullable
- `days` integer

## 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)
