---
title: "List site audits"
method: GET
path: "/v1/sites/{siteId}/audits"
tags: ["Sites"]
---

# List site audits

`GET /v1/sites/{siteId}/audits`

## Request

- Base URL: `https://api.ironfang.com/audit`
- URL: `https://api.ironfang.com/audit/v1/sites/{siteId}/audits`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Returns audit runs for the selected site within the authenticated organisation. A site outside the organisation is reported as not found.

## Query parameters

- `limit` integer
- `cursor` string
- `status` 'active' | 'created' | 'queued' | 'discovering' | 'capturing' | 'evaluating' | 'finalising_evidence' | 'timestamping' | 'completed' | 'failed' | 'cancelled' | 'partial' | 'quota_blocked'

## Response `200`

Audits

- AuditList
  - `audits` Audit[], required
    - `capture_profile_snapshot` CaptureProfile: Viewport and rendering settings for the monitor's evidence captures. Clamped to Ironfang Render's ceilings.
      - `color_scheme` 'light' | 'dark'
      - `device_scale_factor` number
      - `height` integer
      - `locale` string
      - `width` integer
    - `captured_page_count` integer, required
    - `change_policy_snapshot` ChangePolicy: When a page observation counts as changed.
      - `ignore_numbers` boolean
      - `ignored_selectors` string[]
      - `min_text_change` number: Fraction of text that must differ, 0-1.
      - `min_visual_change` number: Fraction of pixels that must differ, 0-1.
      - `notify_only_on_rule_change` boolean
    - `completed_at` string, date-time
    - `compliance_state` 'PASS' | 'WARNING' | 'FAIL' | 'ERROR'
    - `created_at` string, date-time, required
    - `credits_consumed` integer, required: Page captures this audit was charged against audit.capture: one per finalised page evidence record, settled when it finalised. Zero while running, when not metered, or when its admission had expired. The name is kept from the launch-era credits.
    - `discovered_page_count` integer, required
    - `error` string
    - `error_page_count` integer, required
    - `evidence_expires_at` string, date-time
    - `evidence_hosted` boolean, required
    - `failed_page_count` integer, required
    - `id` string, uuid, required
    - `manifest_sha256` string
    - `monitor_id` string, uuid
    - `organisation_id` string, uuid, required
    - `page_bound` integer: The most pages this audit may capture: what was reserved against audit.capture when it was admitted. Absent on audits from before admission.
    - `passed_page_count` integer, required
    - `reason` string
    - `retention_days` integer: The hosted retention promised when the audit was created: the rate catalogue's standard retention for audit.capture (a retired plan's, on older audits). A retention extension moves evidence_expires_at later; it never shortens it.
    - `root_hash` string
    - `scheduled_for` string, date-time
    - `scope_snapshot` ScopeSnapshot
      - `crawl_policy` CrawlPolicy
        - `allowed_hosts` string[], nullable, required
        - `exclude_patterns` string[], nullable, required
        - `identity_parameters` string[], nullable, required
        - `ignored_parameters` string[], nullable, required
        - `include_patterns` string[], nullable, required
        - `max_depth` integer, required
        - `max_pages` integer, required
        - `max_response_bytes` integer, required
        - `requests_per_second` integer, required
        - `respect_robots` boolean, required
      - `mode` 'full_site' | 'url_set', required
      - `urls` string[]
    - `signing_key_id` string
    - `site_id` string, uuid, required
    - `site_name` string, required: The audited site's name, resolved with the audit so a list need not read every site to label its rows.
    - `started_at` string, date-time
    - `status` 'created' | 'queued' | 'discovering' | 'capturing' | 'evaluating' | 'finalising_evidence' | 'timestamping' | 'completed' | 'failed' | 'cancelled' | 'partial' | 'quota_blocked', required: quota_blocked is historical: audits the retired plans could not pay for ended there. Audits are now admitted before they are accepted, so none enters it.
    - `trigger_type` 'manual' | 'api' | 'schedule', required
    - `warning_page_count` integer, required
  - `next_cursor` string: Opaque continuation boundary. Absent on the final page; no total is inferred from a page.

## Other responses

- `400`: Problem response

---

[API](https://skmtc.dev/ironfang/apis/ironfang-audit-api.md) · [All operations](https://skmtc.dev/ironfang/apis/ironfang-audit-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ironfang/apis/ironfang-audit-api/revisions/7430deff2cbd?raw)
