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

# Get Audit summary

> Returns completed Audit summaries and independently bounded trend calendars. date belongs to UTC citations and answer fetches; clicksDate and priorClicksDate belong to Pacific GSC source windows ending at D-3. Read GSC coverage and bounds from searchConsole. Unverified days are null; GSC is never padded with zeros through UTC today.



## OpenAPI

````yaml /openapi.json get /projects/{projectId}/audit/summary
openapi: 3.1.0
info:
  title: DevTune API
  version: 2.0.0
  description: >-
    API for programmatic access to your AI visibility data, webhook
    subscriptions, and automation workflows. Use this API to integrate DevTune
    data into CI/CD pipelines, BI tools, AI agents, and operational systems.
servers:
  - url: https://devtune.ai/api/v2
    description: Production
security:
  - bearerAuth: []
paths:
  /projects/{projectId}/audit/summary:
    get:
      summary: Get Audit summary
      description: >-
        Returns completed Audit summaries and independently bounded trend
        calendars. date belongs to UTC citations and answer fetches; clicksDate
        and priorClicksDate belong to Pacific GSC source windows ending at D-3.
        Read GSC coverage and bounds from searchConsole. Unverified days are
        null; GSC is never padded with zeros through UTC today.
      operationId: getAuditSummary
      parameters:
        - name: projectId
          in: path
          required: true
          schema:
            type: string
            format: uuid
        - name: windowDays
          in: query
          schema:
            type: integer
            default: 30
            enum:
              - 7
              - 30
              - 90
          description: >-
            Fixed rolling window in days. Supported values are 7, 30, and 90.
            Defaults to 30.
      responses:
        '200':
          description: Audit summary
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/AuditSummaryData'
                  meta:
                    $ref: '#/components/schemas/Meta'
                required:
                  - data
                  - meta
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '429':
          $ref: '#/components/responses/RateLimitExceededError'
components:
  schemas:
    AuditSummaryData:
      type: object
      properties:
        searchConsole:
          $ref: '#/components/schemas/GscWindowPeriods'
        domains:
          type: array
          items:
            $ref: '#/components/schemas/FlexibleRollupItem'
        trend:
          type: array
          items:
            type: object
            description: >-
              date is UTC for citations and answer fetches. clicksDate and
              priorClicksDate are Pacific GSC dates read independently, ending
              at the returned source boundary; points align by period offset,
              not calendar date.
            properties:
              date:
                type: string
                format: date
              clicksDate:
                type: string
                format: date
              priorClicksDate:
                type: string
                format: date
              clicks:
                type:
                  - number
                  - 'null'
              priorClicks:
                type:
                  - number
                  - 'null'
              aiCitations:
                type:
                  - number
                  - 'null'
              priorAiCitations:
                type:
                  - number
                  - 'null'
              answerFetches:
                type:
                  - number
                  - 'null'
              priorAnswerFetches:
                type:
                  - number
                  - 'null'
            required:
              - date
              - clicksDate
              - priorClicksDate
              - clicks
              - priorClicks
              - aiCitations
              - priorAiCitations
              - answerFetches
              - priorAnswerFetches
        windowDays:
          type: integer
          enum:
            - 7
            - 30
            - 90
      required:
        - domains
        - trend
        - windowDays
        - searchConsole
    Meta:
      type: object
      properties:
        timestamp:
          type: string
          format: date-time
        projectId:
          type: string
          format: uuid
    GscWindowPeriods:
      type: object
      required:
        - current
        - prior
        - delta
      properties:
        current:
          $ref: '#/components/schemas/GscWindowPeriod'
        prior:
          $ref: '#/components/schemas/GscWindowPeriod'
        delta:
          oneOf:
            - type: 'null'
            - type: object
              properties:
                clicks:
                  type: integer
                impressions:
                  type: integer
          description: >-
            Absolute change in project totals, present only when both periods
            are verified.
    FlexibleRollupItem:
      type: object
      additionalProperties: true
      description: >-
        A projected row from the same bounded rollup used by the corresponding
        DevTune application surface.
    Error:
      type: object
      properties:
        error:
          type: string
        message:
          type: string
        status:
          type: integer
      required:
        - error
        - message
        - status
    GscWindowPeriod:
      type: object
      required:
        - aggregates
        - window
      properties:
        aggregates:
          type: object
          properties:
            clicks:
              type:
                - integer
                - 'null'
            impressions:
              type:
                - integer
                - 'null'
            ctr:
              type:
                - number
                - 'null'
            avgPosition:
              type:
                - number
                - 'null'
            measurement:
              $ref: '#/components/schemas/GscMeasurement'
        window:
          type: object
          properties:
            days:
              type: integer
              enum:
                - 7
                - 30
                - 90
            dateFrom:
              type: string
              format: date
            dateTo:
              type: string
              format: date
    GscMeasurement:
      type: object
      required:
        - availability
        - status
        - isCurrent
        - asOfDate
        - explanation
        - contributors
        - coveredRanges
        - storedEvidence
        - sourceDateFrom
        - sourceDateTo
        - finalityBoundary
      properties:
        availability:
          type: string
          enum:
            - unavailable
            - partial
            - verified_zero
            - measured
        status:
          type: string
          enum:
            - unmeasured
            - measured
          description: Compatibility field. Use availability when reporting evidence.
        isCurrent:
          type: boolean
          description: >-
            False when serving a retained publication after invalidation or
            source-boundary aging, or before first publication.
        asOfDate:
          type:
            - string
            - 'null'
          format: date-time
          description: Timestamp of the published source snapshot, when available.
        explanation:
          type: string
        coverageFrom:
          type:
            - string
            - 'null'
          format: date
        coverageThrough:
          type:
            - string
            - 'null'
          format: date
        sourceDateFrom:
          type:
            - string
            - 'null'
          format: date
        sourceDateTo:
          type:
            - string
            - 'null'
          format: date
        finalityBoundary:
          type:
            - string
            - 'null'
          format: date
          description: >-
            Published Pacific finality boundary, shared by current and prior
            periods. A retained snapshot keeps its original boundary.
        contributors:
          type: array
          items:
            type: object
            additionalProperties: true
        coveredRanges:
          type: array
          description: >-
            Clipped verified ranges per contributor. Overlap does not establish
            full project coverage.
          items:
            type: object
            properties:
              connectionId:
                type:
                  - string
                  - 'null'
              dateFrom:
                type: string
                format: date
              dateTo:
                type: string
                format: date
        storedEvidence:
          type: array
          description: >-
            Stored row-presence bounds, including legacy and historical
            generations. Excluded from verified totals.
          items:
            type: object
            additionalProperties: true
  responses:
    BadRequestError:
      description: Bad request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    UnauthorizedError:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ForbiddenError:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFoundError:
      description: Not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    RateLimitExceededError:
      description: Rate limit exceeded
      headers:
        X-RateLimit-Limit:
          $ref: '#/components/headers/X-RateLimit-Limit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/X-RateLimit-Remaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/X-RateLimit-Reset'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  headers:
    X-RateLimit-Limit:
      description: Maximum requests per window
      schema:
        type: integer
    X-RateLimit-Remaining:
      description: Requests remaining in current window
      schema:
        type: integer
    X-RateLimit-Reset:
      description: Unix timestamp when the window resets
      schema:
        type: integer
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        API key with dtk_live_ prefix. Obtain it from API Keys in the account
        sidebar. New keys start with all supported scopes selected for the
        chosen project, and you can narrow them to specific read/write scopes as
        needed.

````

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