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

# List Site Diagnostics

> List the latest diagnostics per page for a brand — its AI-visibility scores, the opportunities to improve it (`opportunities`), and what it already does well (`strengths`).

Pass one or more `path` params (e.g. `?path=/about&path=/pricing`) to scope to specific pages; omit them to page through every audited path. Paths are matched normalized (case-insensitive, trailing slash ignored). Each path returns only its most recent audit.



## OpenAPI

````yaml /api-reference/openapi.json get /{brand_id}/site-diagnostics
openapi: 3.1.0
info:
  title: Scrunch Data API
  version: 0.1.0
servers:
  - url: https://api.scrunchai.com/v1
security: []
paths:
  /{brand_id}/site-diagnostics:
    get:
      tags:
        - site-diagnostics
      summary: List Site Diagnostics
      description: >-
        List the latest diagnostics per page for a brand — its AI-visibility
        scores, the opportunities to improve it (`opportunities`), and what it
        already does well (`strengths`).


        Pass one or more `path` params (e.g. `?path=/about&path=/pricing`) to
        scope to specific pages; omit them to page through every audited path.
        Paths are matched normalized (case-insensitive, trailing slash ignored).
        Each path returns only its most recent audit.
      operationId: listSiteDiagnostics
      parameters:
        - name: brand_id
          in: path
          required: true
          schema:
            type: integer
            title: Brand Id
        - name: path
          in: query
          required: false
          schema:
            anyOf:
              - items:
                  type: string
                type: array
              - type: 'null'
            description: Restrict to these page paths. Repeat for multiple.
            title: Path
          description: Restrict to these page paths. Repeat for multiple.
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            maximum: 200
            minimum: 1
            description: Maximum number of pages to return.
            default: 50
            title: Limit
          description: Maximum number of pages to return.
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            minimum: 0
            description: Number of pages to skip (pagination).
            default: 0
            title: Offset
          description: Number of pages to skip (pagination).
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollectionResponse_PathDiagnostics_'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - HTTPBearer:
            - query
components:
  schemas:
    CollectionResponse_PathDiagnostics_:
      properties:
        total:
          type: integer
          title: Total
        offset:
          type: integer
          title: Offset
          default: 0
        limit:
          anyOf:
            - type: integer
            - type: 'null'
          title: Limit
        items:
          items:
            $ref: '#/components/schemas/PathDiagnostics'
          type: array
          title: Items
        metadata:
          anyOf:
            - $ref: '#/components/schemas/TimeSeriesMetadata'
            - type: 'null'
      type: object
      required:
        - total
        - items
      title: CollectionResponse[PathDiagnostics]
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    PathDiagnostics:
      properties:
        path:
          type: string
          title: Path
        generated_at:
          type: string
          format: date-time
          title: Generated At
        content_sha1:
          anyOf:
            - type: string
            - type: 'null'
          title: Content Sha1
        model_version:
          type: string
          title: Model Version
        scores:
          $ref: '#/components/schemas/PageScores'
        opportunities:
          items:
            $ref: '#/components/schemas/DiagnosticOpportunity'
          type: array
          title: Opportunities
          default: []
        strengths:
          items:
            $ref: '#/components/schemas/DiagnosticStrength'
          type: array
          title: Strengths
          default: []
        optimization_status:
          anyOf:
            - type: string
              enum:
                - pending
                - completed
                - staged
                - deployed
                - retired
                - outdated
                - acknowledged
            - type: 'null'
          title: Optimization Status
        acknowledged_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Acknowledged At
      type: object
      required:
        - path
        - generated_at
        - model_version
        - scores
      title: PathDiagnostics
      description: 'Endpoint 1 item: one page''s latest audit.'
    TimeSeriesMetadata:
      properties:
        aggregation_granularity:
          $ref: '#/components/schemas/AggregationGranularity'
          description: 'The aggregation granularity: daily, weekly, or monthly'
        period_count:
          type: integer
          title: Period Count
          description: The number of periods in the time series
        start_date:
          type: string
          format: date-time
          title: Start Date
          description: The start date of the time series
        end_date:
          type: string
          format: date-time
          title: End Date
          description: The end date of the time series
        top_domains:
          anyOf:
            - $ref: '#/components/schemas/TopDomainsMetadata'
            - type: 'null'
          description: Top domains metadata (only populated by sources/domains endpoints)
      type: object
      required:
        - aggregation_granularity
        - period_count
        - start_date
        - end_date
      title: TimeSeriesMetadata
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    PageScores:
      properties:
        retrievability:
          type: number
          title: Retrievability
        citeability:
          type: number
          title: Citeability
      type: object
      required:
        - retrievability
        - citeability
      title: PageScores
      description: Page-level AI-visibility scores as percentages (0-100).
    DiagnosticOpportunity:
      properties:
        best_practice_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Best Practice Id
        label:
          anyOf:
            - type: string
            - type: 'null'
          title: Label
        bucket:
          type: string
          enum:
            - hygiene
            - transformation
            - enrichment
          title: Bucket
        bucket_label:
          anyOf:
            - type: string
            - type: 'null'
          title: Bucket Label
        recommended_change:
          type: string
          title: Recommended Change
        expected_lift_pp:
          type: number
          title: Expected Lift Pp
        severity:
          type: string
          enum:
            - low
            - medium
            - high
          title: Severity
        heading_path:
          items:
            type: string
          type: array
          title: Heading Path
          default: []
      type: object
      required:
        - bucket
        - recommended_change
        - expected_lift_pp
        - severity
      title: DiagnosticOpportunity
      description: A recommended change for a page — the "what to improve" list.
    DiagnosticStrength:
      properties:
        best_practice_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Best Practice Id
        label:
          anyOf:
            - type: string
            - type: 'null'
          title: Label
        message:
          type: string
          title: Message
        contribution_pp:
          type: number
          title: Contribution Pp
        heading_path:
          items:
            type: string
          type: array
          title: Heading Path
          default: []
      type: object
      required:
        - message
        - contribution_pp
      title: DiagnosticStrength
      description: Something a page already does well — the "what's working" list.
    AggregationGranularity:
      type: string
      enum:
        - daily
        - weekly
        - monthly
    TopDomainsMetadata:
      properties:
        domains:
          items:
            $ref: '#/components/schemas/TopDomainSummary'
          type: array
          title: Domains
          description: Top domains by observation count (always domain-level aggregated)
        grand_total:
          type: integer
          title: Grand Total
          description: Total observation count across all domains (for calculating 'Other')
        owner_totals:
          additionalProperties:
            type: integer
          type: object
          title: Owner Totals
          description: Observation counts by owner type (brand, competitor, other)
        owner_time_series:
          anyOf:
            - items:
                $ref: '#/components/schemas/OwnerTimeSeriesPoint'
              type: array
            - type: 'null'
          title: Owner Time Series
          description: Time series data by owner type for trend visualization
        segment_totals:
          items:
            $ref: '#/components/schemas/SegmentTotal'
          type: array
          title: Segment Totals
          description: >-
            Server-side observation counts per citation segment (covers all
            domains, not just top-N)
      type: object
      required:
        - domains
        - grand_total
        - owner_totals
      title: TopDomainsMetadata
      description: Metadata about top domains, used by sources/domains endpoints.
    TopDomainSummary:
      properties:
        domain:
          type: string
          title: Domain
        domain_owner:
          type: string
          title: Domain Owner
        observation_count:
          type: integer
          title: Observation Count
      type: object
      required:
        - domain
        - domain_owner
        - observation_count
      title: TopDomainSummary
    OwnerTimeSeriesPoint:
      properties:
        time_bucket:
          type: string
          title: Time Bucket
          description: Date string for the time bucket (YYYY-MM-DD)
        brand:
          type: integer
          title: Brand
          description: Observation count for brand-owned domains
        competitor:
          type: integer
          title: Competitor
          description: Observation count for competitor-owned domains
        other:
          type: integer
          title: Other
          description: Observation count for third-party domains
      type: object
      required:
        - time_bucket
        - brand
        - competitor
        - other
      title: OwnerTimeSeriesPoint
      description: A single time bucket with observation counts by owner type.
    SegmentTotal:
      properties:
        name:
          type: string
          title: Name
        observation_count:
          type: integer
          title: Observation Count
      type: object
      required:
        - name
        - observation_count
      title: SegmentTotal
      description: Observation count for a citation segment, computed server-side.
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer

````

## Related topics

- [Site Diagnostics API: Per-page findings and optimization runs](/api-reference/site-diagnostics/overview.md)
- [Apply Page Optimization](/api-reference/site-diagnostics/apply-page-optimization.md)
- [Get Page Optimization Detail](/api-reference/site-diagnostics/get-page-optimization-detail.md)
