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

# Get full report

> The complete client report as JSON: the same sections and numbers as the PDF, Excel and Markdown exports.
Large; use the focused endpoints above unless you need everything for the period at once. Requires `visibility:read`.




## OpenAPI

````yaml /openapi.yaml get /visibility/report
openapi: 3.1.0
info:
  title: AeoNut API
  version: '1.0'
  description: >
    Read your workspace's AI visibility data for every project (brand) it
    tracks. Every response is wrapped in

    `{code, messages, data}`. Rates are fractions between 0 and 1 unless a field
    says otherwise.
servers:
  - url: https://services.aeonut.com/core/api/external/v1
security:
  - bearerAuth: []
  - apiKeyHeader: []
tags:
  - name: Me
  - name: Project
  - name: Workspace
  - name: AI visibility
paths:
  /visibility/report:
    get:
      tags:
        - AI visibility
      summary: Get full report
      description: >
        The complete client report as JSON: the same sections and numbers as the
        PDF, Excel and Markdown exports.

        Large; use the focused endpoints above unless you need everything for
        the period at once. Requires `visibility:read`.
      parameters:
        - $ref: '#/components/parameters/ProjectId'
        - $ref: '#/components/parameters/Range'
      responses:
        '200':
          description: Report
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Envelope'
                  - properties:
                      data:
                        type: object
                        properties:
                          sections:
                            type: array
                            description: >-
                              One entry per section, in report order. Each
                              carries its own rows and totals.
                            items:
                              type: object
                              required:
                                - key
                              properties:
                                key:
                                  type: string
                                  enum:
                                    - summary
                                    - trend
                                    - platforms
                                    - categories
                                    - competitors
                                    - cited_sources
                                    - your_pages
                                    - competitor_pages
                                    - prompts
                                    - answers
                              additionalProperties: true
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/ValidationError'
components:
  parameters:
    ProjectId:
      name: project_id
      in: query
      description: >
        The project (brand) to read. Required unless the key is pinned to a
        project, in which case it is ignored.

        Ids come from `GET /projects`. Missing on an unpinned key → `422` with
        `data.project_id`.
      schema:
        type: string
        format: uuid
    Range:
      name: range
      in: query
      description: >-
        The period to report on. The previous period of the same length is
        returned for comparison.
      schema:
        $ref: '#/components/schemas/RangeValue'
  schemas:
    Envelope:
      type: object
      properties:
        code:
          type: integer
          description: AeoNut status code
        messages:
          type: string
        data: {}
    RangeValue:
      type: string
      enum:
        - 7d
        - 30d
        - 90d
      default: 30d
    Scope:
      type: string
      enum:
        - workspace:read
        - visibility:read
  responses:
    Unauthorized:
      description: Missing (`code` 4021), invalid, revoked or expired (`code` 4022) API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Envelope'
          example:
            code: 4022
            messages: Invalid, revoked or expired API key.
            data: null
    Forbidden:
      description: The key lacks a required scope
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/Envelope'
              - properties:
                  data:
                    type: object
                    properties:
                      required:
                        type: array
                        items:
                          $ref: '#/components/schemas/Scope'
                      missing:
                        type: array
                        items:
                          $ref: '#/components/schemas/Scope'
          example:
            code: 4023
            messages: This API key does not have the scope required for this request.
            data:
              required:
                - visibility:read
              missing:
                - visibility:read
    NotFound:
      description: The resource doesn't exist in this workspace
    ValidationError:
      description: >-
        Invalid parameters, or `project_id` missing on a key that is not pinned
        to a project
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Envelope'
          example:
            code: 422
            messages: project_id is required
            data:
              project_id:
                - >-
                  project_id is required for keys not pinned to a project. See
                  GET /projects.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Your API key: `Authorization: Bearer API Key Value`'
    apiKeyHeader:
      type: apiKey
      in: header
      name: X-API-KEY

````

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