# Get a page audit

> Read one page audit by id, with each dimension's score, summary, recommendations and the checks behind the score.

Source: https://ranqo.ai/docs/api/reference/get-page-audit

```http
GET https://api.ranqo.ai/v1/brands/{brand_id}/page-audits/{audit_id}
```

One audit with each dimension's checks.

## Path parameters

| Name | Type | Description |
| --- | --- | --- |
| `brand_id` | string | The brand id, from `GET /v1/brands`. |
| `audit_id` | string | The audit id, from `GET /v1/brands/{brand_id}/page-audits`. |

## Response

One audit of one page, with every dimension's checks.

| Field | Type | Description |
| --- | --- | --- |
| `id` | string |  |
| `url` | string |  |
| `title` | string or null |  |
| `status` | string | One of `pending`, `analyzing`, `completed`, `failed`. |
| `page_type` | string or null | What the page is, such as `blog_article` or `product`. |
| `page_score` | integer or null | 0-100, the weighted score over the dimensions audited. Null until it completes. |
| `scores` | object | Each dimension's 0-100 score. A page that served no text is scored on crawlability and page speed only; page speed is null when it could not be measured. |
| `scores.crawlability` | integer or null | 0-100; null when the dimension was not audited. |
| `scores.content_quality` | integer or null | 0-100; null when the dimension was not audited. |
| `scores.page_speed` | integer or null | 0-100; null when the dimension was not audited. |
| `scores.ai_readiness` | integer or null | 0-100; null when the dimension was not audited. |
| `scores.citation_potential` | integer or null | 0-100; null when the dimension was not audited. |
| `scores.authority_trust` | integer or null | 0-100; null when the dimension was not audited. |
| `seo_score` | integer or null | 0-100. |
| `geo_score` | integer or null | 0-100, generative-engine optimization. |
| `word_count` | integer or null |  |
| `created_at` | string | RFC 3339 timestamp in UTC. |
| `completed_at` | string or null | RFC 3339 timestamp in UTC. |
| `error` | string or null | Why the audit failed; null otherwise. |
| `meta_description` | string or null |  |
| `dimensions` | array of objects | Each dimension audited, with the checks behind its score. |
| `dimensions[].id` | string | One of `crawlability`, `content_quality`, `page_speed`, `ai_readiness`, `citation_potential`, `authority_trust`. |
| `dimensions[].label` | string |  |
| `dimensions[].score` | integer |  |
| `dimensions[].weight` | number | Its share of the page score, 0-1: the shares of the dimensions audited sum to 1, as the score divides them. |
| `dimensions[].summary` | string |  |
| `dimensions[].recommendations` | array of strings |  |
| `dimensions[].signals` | array of objects |  |
| `dimensions[].signals[].id` | string |  |
| `dimensions[].signals[].label` | string |  |
| `dimensions[].signals[].status` | string | One of `pass`, `warning`, `fail`. |
| `dimensions[].signals[].score` | number |  |
| `dimensions[].signals[].max_score` | number |  |
| `dimensions[].signals[].feedback` | string |  |

## Response headers

| Header | Description |
| --- | --- |
| `X-Request-Id` | The request id; quote it to support. |
| `RateLimit` | Requests left in this window and seconds until it resets. |
| `RateLimit-Policy` | The key's limit per window. |

## Example request

```bash title="curl"
curl "https://api.ranqo.ai/v1/brands/BRAND_ID/page-audits/AUDIT_ID" \
  -H "Authorization: Bearer $RANQO_API_KEY"
```

## Errors

Errors are problem details (`application/problem+json`) with a stable `code`. See [Errors](https://ranqo.ai/docs/api/errors) for each one.

| Status | Codes |
| --- | --- |
| 400 | [`unknown_parameter`](https://ranqo.ai/docs/api/errors#unknown_parameter), [`api_key_in_url`](https://ranqo.ai/docs/api/errors#api_key_in_url) |
| 401 | [`missing_api_key`](https://ranqo.ai/docs/api/errors#missing_api_key), [`invalid_api_key`](https://ranqo.ai/docs/api/errors#invalid_api_key), [`api_key_revoked`](https://ranqo.ai/docs/api/errors#api_key_revoked), [`api_key_expired`](https://ranqo.ai/docs/api/errors#api_key_expired), [`api_key_orphaned`](https://ranqo.ai/docs/api/errors#api_key_orphaned) |
| 403 | [`plan_upgrade_required`](https://ranqo.ai/docs/api/errors#plan_upgrade_required), [`subscription_inactive`](https://ranqo.ai/docs/api/errors#subscription_inactive) |
| 404 | [`not_found`](https://ranqo.ai/docs/api/errors#not_found) |
| 429 | [`rate_limited`](https://ranqo.ai/docs/api/errors#rate_limited) |
| 500 | [`internal_error`](https://ranqo.ai/docs/api/errors#internal_error) |
| 503 | [`service_unavailable`](https://ranqo.ai/docs/api/errors#service_unavailable) |
