> ## Documentation Index
> Fetch the complete documentation index at: https://promptwatch.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Get a site audit run

> One run's health score, coverage counts, per-check affected URL counts and new/fixed deltas against the previous run.



## OpenAPI

````yaml /v2/openapi.json get /site-audit/runs/{id}
openapi: 3.0.0
info:
  title: Promptwatch API v2
  description: >-
    API v2 for customer integrations with Promptwatch monitoring platform. This
    version provides improved structure, additional endpoints, and enhanced
    functionality.
  version: 2.0.0
  contact:
    name: Promptwatch Support
    email: team@promptwatch.com
    url: https://promptwatch.com
  license:
    name: Commercial
    url: https://promptwatch.com/terms-and-conditions
servers:
  - url: https://server.promptwatch.com/api/v2
    description: Promptwatch API v2
security: []
tags:
  - name: Authentication
    description: API key validation and authentication
  - name: Content
    description: >-
      AI content generation and content refresh. Create content asynchronously
      and poll for results.
  - name: Content Agent
    description: >-
      Content Agent (automated content) lifecycle: project settings, scheduled
      slots, review (accept/decline), and publish.
  - name: Content Gap
    description: Content gap analysis and recommendations
  - name: Publishing
    description: >-
      Publish content to a connected CMS, or record a live URL, and track the
      published page
  - name: Models
    description: Available LLM models
  - name: Monitors
    description: Monitor management and CRUD operations
  - name: Page Tracker
    description: Track URLs and inspect citation stats, responses, and prompts
  - name: Prompts
    description: Prompt management and operations
  - name: Query Fanouts
    description: ChatGPT query fanout keywords
  - name: Responses
    description: LLM response data and analytics
  - name: Tags
    description: Tag management for prompts
  - name: Topics
    description: Topic management for prompts
  - name: Actions
    description: Action items (GEO suggestions and tasks)
  - name: Personas
    description: Persona configuration for monitors
  - name: Brands
    description: Brand management for competitive analysis
  - name: Visibility
    description: Brand visibility time series and competitor heatmaps
  - name: Events
    description: >-
      Dated project events such as prompts added and actions completed, for
      annotating time series
  - name: Citations
    description: Citation analytics from AI responses
  - name: Analytics
    description: Visitor analytics, AI crawler logs, sentiment, and brand visibility trends
  - name: Search Insights
    description: >-
      Google Search Console and Bing Webmaster performance for the project
      website
  - name: Projects
    description: Project management (organization-level keys only)
  - name: Usage
    description: Plan usage and limits (organization-level keys only)
  - name: Sitemap
    description: Sitemap feeds, crawler settings, crawl progress, and discovered URLs
  - name: Site Health
    description: >-
      Crawled pages with SEO issues (titles, meta descriptions, H1, thin
      content)
  - name: Site Audit
    description: >-
      Site audit runs: health score over time, per-check issue counts and
      failing URLs
  - name: Socials
    description: >-
      Social media citations (Reddit posts, YouTube videos, and LinkedIn posts)
      found in LLM responses
  - name: Ads Radar
    description: Sponsored ads captured in AI answers
  - name: Shopping
    description: Product appearances in AI shopping answers and tracked products
paths:
  /site-audit/runs/{id}:
    get:
      tags:
        - Site Audit
      summary: Get a site audit run
      description: >-
        One run's health score, coverage counts, per-check affected URL counts
        and new/fixed deltas against the previous run.
      operationId: getSiteAuditRun
      parameters:
        - schema:
            type: string
            format: uuid
          in: path
          name: id
          required: true
          description: Audit run ID
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                example:
                  id: 6ba7b820-9dad-11d1-80b4-00c04fd430c8
                  state: COMPLETED
                  trigger: SCHEDULED
                  healthScore: 82
                  urlsTotal: 1200
                  urlsChecked: 1180
                  urlsSkipped: 20
                  urlsUnchecked: 0
                  createdAt: '2026-08-01T09:00:00.000Z'
                  startedAt: '2026-08-01T09:00:04.000Z'
                  finishedAt: '2026-08-01T09:42:00.000Z'
                  error: null
                  issueCounts:
                    status4xx: 12
                    missingDescription: 30
                  issueDiffs:
                    status4xx:
                      affectedUrls: 12
                      fixedUrls: 4
                      newUrls: 3
                properties:
                  id:
                    type: string
                    format: uuid
                    description: Audit run identifier
                  state:
                    type: string
                    enum:
                      - PENDING
                      - RUNNING
                      - FINALIZING
                      - COMPLETED
                      - FAILED
                      - PARTIAL
                    description: >-
                      Run state; PARTIAL means the plan's URL ceiling capped
                      coverage
                  trigger:
                    type: string
                    enum:
                      - SCHEDULED
                      - MANUAL
                    description: What opened the run
                  healthScore:
                    type: integer
                    nullable: true
                    description: Health score 0-100; null until the run finalizes
                  urlsTotal:
                    type: integer
                    description: URLs selected for the run
                  urlsChecked:
                    type: integer
                    description: URLs the sweep returned a result for
                  urlsSkipped:
                    type: integer
                    description: URLs left out of the run by the plan ceiling
                  urlsUnchecked:
                    type: integer
                    description: URLs selected but never answered before the run closed
                  createdAt:
                    type: string
                    format: date-time
                    description: Timestamp (ISO 8601)
                  startedAt:
                    type: string
                    format: date-time
                    description: When the first check was dispatched
                    nullable: true
                  finishedAt:
                    type: string
                    format: date-time
                    description: When the run finalized
                    nullable: true
                  error:
                    type: string
                    nullable: true
                    description: Failure reason when the run state is FAILED
                  issueCounts:
                    type: object
                    additionalProperties:
                      type: integer
                    description: >-
                      Affected URL count per check, keyed by check id
                      (status4xx, status5xx, brokenInternalLink,
                      redirectChainTooLong, missingTitle, noH1,
                      certificateInvalid, sitemapUrlRedirects, orphanPage,
                      missingDescription, multipleH1, thinContent, slowTtfb,
                      oversizedHtml, certificateExpiringSoon,
                      linkedNotInSitemap, titleLengthOutOfRange,
                      externalCanonical, duplicateContent, navOnlyPage,
                      contentRequiresJs). Checks that never fired are omitted.
                  issueDiffs:
                    type: object
                    additionalProperties:
                      type: object
                      properties:
                        affectedUrls:
                          type: integer
                          description: URLs the check fires on in this run
                        fixedUrls:
                          type: integer
                          description: >-
                            URLs that stopped firing since the previous
                            completed run
                        newUrls:
                          type: integer
                          description: >-
                            URLs that started firing since the previous
                            completed run
                      required:
                        - affectedUrls
                        - fixedUrls
                        - newUrls
                      additionalProperties: false
                    description: >-
                      New/fixed deltas against the previous completed run, keyed
                      by check id
                required:
                  - id
                  - state
                  - trigger
                  - healthScore
                  - urlsTotal
                  - urlsChecked
                  - urlsSkipped
                  - urlsUnchecked
                  - createdAt
                  - error
                  - issueCounts
                  - issueDiffs
                additionalProperties: false
        '400':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                example:
                  error: Bad Request
                  code: DATE_RANGE_TOO_LARGE
                  message: Date range cannot exceed 90 days
                properties:
                  error:
                    type: string
                    description: Error label
                  code:
                    type: string
                    description: Optional machine-readable code (e.g. DATE_RANGE_TOO_LARGE)
                  message:
                    type: string
                    description: Reason the request was rejected
                required:
                  - error
                  - message
        '401':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                example:
                  error: Unauthorized
                  message: Missing or invalid X-API-Key header.
                properties:
                  error:
                    type: string
                    description: Error category (often aligned with HTTP semantics)
                  code:
                    type: string
                    description: Optional machine-readable code
                  message:
                    type: string
                    description: Human-readable explanation
                  details:
                    type: object
                    description: Optional structured detail (e.g. validation)
                    additionalProperties: true
                required:
                  - error
                  - message
                additionalProperties: false
        '402':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                example:
                  code: SITE_AUDIT_RUN_NOT_FOUND
                  message: Site audit run not found
                properties:
                  code:
                    type: string
                    description: Error code indicating the type of error
                    enum:
                      - SITE_AUDIT_PLAN_REQUIRED
                      - SITE_AUDIT_RUN_NOT_FOUND
                      - INTERNAL_ERROR
                    example: SITE_AUDIT_PLAN_REQUIRED
                  message:
                    type: string
                    description: Human-readable error message
                required:
                  - code
                  - message
                additionalProperties: false
        '404':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                example:
                  code: SITE_AUDIT_RUN_NOT_FOUND
                  message: Site audit run not found
                properties:
                  code:
                    type: string
                    description: Error code indicating the type of error
                    enum:
                      - SITE_AUDIT_PLAN_REQUIRED
                      - SITE_AUDIT_RUN_NOT_FOUND
                      - INTERNAL_ERROR
                    example: SITE_AUDIT_PLAN_REQUIRED
                  message:
                    type: string
                    description: Human-readable error message
                required:
                  - code
                  - message
                additionalProperties: false
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                example:
                  code: SITE_AUDIT_RUN_NOT_FOUND
                  message: Site audit run not found
                properties:
                  code:
                    type: string
                    description: Error code indicating the type of error
                    enum:
                      - SITE_AUDIT_PLAN_REQUIRED
                      - SITE_AUDIT_RUN_NOT_FOUND
                      - INTERNAL_ERROR
                    example: SITE_AUDIT_PLAN_REQUIRED
                  message:
                    type: string
                    description: Human-readable error message
                required:
                  - code
                  - message
                additionalProperties: false
      security:
        - ApiKeyAuth: []
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: >-
        API key for authentication. Get yours from the Promptwatch dashboard
        under Settings > API Keys.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.