---
title: Get Content Health
protocol: rest
method: GET
endpoint: /v1/projects/{projectId}/analytics/content-health
description: "Aggregate documentation health: overall score, stale pages, gaps, and API coverage."
---

# Get Content Health

Returns an aggregate view of documentation health: an overall score, pages that haven't been updated in 90+ days, documentation gaps detected from AI chat, and API coverage.

<Endpoint method="GET" path="/v1/projects/{projectId}/analytics/content-health" />

## Path Parameters

<ParamField path="projectId" type="string" required>
  The project ID.
</ParamField>

## Example

```bash
curl https://api.syntext.dev/v1/projects/prj_abc123/analytics/content-health \
  -H "Authorization: Bearer stx_abc12345_..."
```

### Response

```json
{
  "data": {
    "score": 82,
    "stalePages": [
      {
        "path": "/guides/legacy-setup",
        "lastUpdated": "2026-02-10T08:00:00Z"
      }
    ],
    "gaps": [
      {
        "topic": "webhook retry behavior",
        "source": "ai_chat",
        "frequency": 14
      }
    ],
    "coveragePercent": 76
  }
}
```

## Response Fields

<ParamField body="score" type="integer">
  Overall content health, 0–100. The average of per-page health scores (freshness, feedback, broken links, completeness).
</ParamField>

<ParamField body="stalePages" type="array">
  Pages not updated in more than 90 days.
</ParamField>

<ParamField body="gaps" type="array">
  Topics visitors asked the AI assistant about that the docs don't cover well, with how often each came up.
</ParamField>

<ParamField body="coveragePercent" type="integer">
  Percentage of public API symbols that have documentation.
</ParamField>

<Note>
Per-page scores are available at `GET /v1/projects/{projectId}/analytics/health`.
</Note>
