---
title: "Get Audit Findings Public"
method: GET
path: "/get-audit-findings"
tags: ["public-api"]
---

# Get Audit Findings Public

`GET /get-audit-findings`

## Request

- Base URL: `https://api.trakkr.ai`
- URL: `https://api.trakkr.ai/get-audit-findings`
- Auth: HTTP bearer

Return the audit issues + flagged pages for a brand's latest (or specified)
audit. This is the "what's wrong" surface for an AI-search technical audit,
mirroring the data the Optimize page's Findings and Pages tabs render from.

Dismissals are applied: a check the customer marked intentional in Optimize
reads as status='ignored' here rather than open, and stays that way across
re-scans. Pass issue_status=ignored to list them.

Returns status='no_audit_yet' if the brand has no completed audit yet.

Read-only. Never triggers an audit or any analysis.

## Query parameters

- `brand_id` string, uuid, required: Brand UUID
- `audit_id` string, nullable: Specific audit UUID. Defaults to the latest complete audit for the brand.
- `severity` string, nullable: Comma-separated severities: critical, high, medium, low.
- `issue_status` string, nullable: Comma-separated issue statuses: open, in_progress, fixed, ignored.
- `check_name` string, nullable: Filter to a single check. Names, aliases and casing are resolved ('schema', 'schema_markup' and 'Schema Markup' all match), and a resolved name is filtered in the database so page counts are complete on large sites. Anything else falls back to a substring scan over a capped page slice, reported as filters_applied.check_filter_mode.
- `page_url` string, nullable: Filter issues whose affected_urls contain this URL substring.
- `page_type` string, nullable: Filter audit_pages by page_type.
- `url_pattern` string, nullable: Filter audit_pages by URL substring.
- `min_score` integer, nullable: Min technical_score for pages.
- `max_score` integer, nullable: Max technical_score for pages.
- `issues_limit` integer: Max issues to return.
- `pages_limit` integer: Max pages to return. 100 covers a whole site on almost every audit; pages_total_matching reports the true total either way.
- `full_urls` boolean: Return the complete affected_urls list for each issue instead of a sample. Requires check_name so the response stays bounded.

## Response `200`

Successful Response

- AuditFindingsResponse: GET /get-audit-findings response.
  - `status` 'ok' | 'no_audit_yet'
  - `audit_summary` AuditFindingsSummary: Audit-level rollup attached to /get-audit-findings.
    - `audit_id` string, required
    - `overall_score` integer, nullable
    - `pages_crawled` integer, nullable
    - `critical_issues` integer, nullable
    - `high_issues` integer, nullable
    - `medium_issues` integer, nullable
    - `low_issues` integer, nullable
    - `detected_platform` string, nullable
    - `site_url` string, nullable
    - `created_at` string, nullable
    - `has_llms_txt` boolean
    - `ai_crawler_blocked` boolean
    - `has_sitemap` boolean
  - `issues` AuditIssueItem[]
    - `id` string, nullable
    - `check_name` string, required
    - `category` string, nullable
    - `severity` string, nullable
    - `status` string, nullable
    - `title` string, nullable
    - `description` string, nullable
    - `impact` string, nullable
    - `affected_count` integer, nullable
    - `affected_percent` number, nullable
    - `sample_urls` string[]
    - `affected_urls` string[]
    - `affected_urls_returned` integer
    - `affected_urls_total` integer
    - `affected_urls_truncated` boolean
    - `fix_effort` string, nullable
    - `fix_impact` string, nullable
    - `implementation` unknown[]
      - unknown
    - `fixed_at` string, nullable
  - `issues_count` integer
  - `pages` AuditPageItem[]
    - `id` string, nullable
    - `url` string, required
    - `final_url` string, nullable
    - `page_type` string, nullable
    - `title` string, nullable
    - `technical_score` integer, nullable
    - `status_code` integer, nullable
    - `word_count` integer, nullable
    - `failed_checks` string[]
    - `warning_checks` string[]
    - `is_deep_analyzed` boolean
  - `pages_count` integer
  - `pages_total_matching` integer, nullable
  - `pages_truncated` boolean
  - `filters_applied` object
  - `note` string, 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)
