---
title: "Get Page Analyses Public"
method: GET
path: "/get-page-analyses"
tags: ["public-api"]
---

# Get Page Analyses Public

`GET /get-page-analyses`

## Request

- Base URL: `https://api.trakkr.ai`
- URL: `https://api.trakkr.ai/get-page-analyses`
- Auth: HTTP bearer

Read cached deep page analyses for a brand.

Two modes:

1. **Listing** (no `url`): returns recent analyses with URL, scores,
   page_type, and stale flag. Useful to see which pages have been
   analyzed and which still need work.

2. **Detail** (with `url`): returns the full cached analysis for one
   URL — AI diagnosis, citation verdict, failed checks, ready-to-paste
   schema, entities, bot visibility. Returns 404 if no cached analysis
   exists (deliberately — this endpoint never triggers a new analysis
   to avoid uncontrolled LLM costs).

## Query parameters

- `brand_id` string, uuid, required: Brand UUID
- `url` string, nullable: If provided, return the deep analysis for this URL (404 if no cached analysis).
- `limit` integer: Max analyses to return when listing.
- `max_age_days` integer: When fetching by URL, only return analyses newer than this.

## Response `200`

Successful Response

- union
  - PageAnalysesListResponse: GET /get-page-analyses list response.
    - `analyses` PageAnalysisListItem[], required
      - `id` string, required
      - `url` string, required
      - `analyzed_at` string, nullable
      - `overall_score` integer, nullable
      - `technical_score` integer, nullable
      - `citation_score` integer, nullable
      - `page_type` string, nullable
      - `failed_checks_count` integer
      - `is_stale` boolean
    - `total` integer, required
  - PageAnalysisDetailResponse: GET /get-page-analyses?url=… detail response. Mirrors the shape stored in page_analyses.raw_analysis / materialized columns.
    - `url` string, required
    - `analyzed_at` string, nullable
    - `cached` boolean
    - `ai_diagnosis` string, nullable
    - `overall_score` integer, nullable
    - `technical_score` integer, nullable
    - `citation_score` integer, nullable
    - `citation_verdict` object, nullable
    - `single_top_fix` object, nullable
    - `secondary_fixes` object[]
    - `detected_queries` object[]
    - `quotable_facts` unknown[]
      - unknown
    - `ready_to_paste_schema` object, nullable
    - `technical_checks` object, nullable
    - `failed_checks` string[]
    - `warning_checks` string[]
    - `entities` object[]
    - `detected_cms` string, nullable
    - `bot_visibility` object, nullable

## Other responses

- `401`: Missing, malformed, or expired credentials
- `402`: The current plan does not fund this operation
- `403`: Invalid credentials, missing brand access, or insufficient role
- `422`: Validation Error
- `429`: Rate limit exceeded
- `500`: The operation failed
- `503`: Authentication, entitlement, or a required dependency is temporarily unavailable

---

[API](https://skmtc.dev/trakkr/apis/trakkr-api.md) · [All operations](https://skmtc.dev/trakkr/apis/trakkr-api/llms.txt) · [OpenAPI document](https://skmtc.dev/trakkr/apis/trakkr-api/revisions/189a9e76b8d5?raw)
