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

# Get bundled scalar metrics for a tab

> Returns the scalar columns powering a dashboard tab in one
round-trip. Cheaper than calling `/metrics/{metric}` once per
column.




## OpenAPI

````yaml /openapi.yaml get /universes/{id}/tabs/{tab}
openapi: 3.1.0
info:
  title: Verseodin API
  version: 1.0.0
  description: |
    Read-only HTTP API for pulling Verseodin dashboard data:
    universes, history rows (per-day aggregates of brand visibility,
    citations, and mentions across AI search engines), and full prompt
    records including the AI's response text and cited URLs.

    The same key authorises the Verseodin Claude / MCP connector — one
    credential, two surfaces.
servers:
  - url: https://verseodin.com/api/v1
    description: Production
security:
  - BearerAuth: []
paths:
  /universes/{id}/tabs/{tab}:
    get:
      tags:
        - History
      summary: Get bundled scalar metrics for a tab
      description: |
        Returns the scalar columns powering a dashboard tab in one
        round-trip. Cheaper than calling `/metrics/{metric}` once per
        column.
      operationId: getTab
      parameters:
        - $ref: '#/components/parameters/UniverseId'
        - name: tab
          in: path
          required: true
          schema:
            type: string
            enum:
              - ai_visibility
              - geo_audit
              - aeo_audit
              - monitors
          description: Dashboard tab.
        - $ref: '#/components/parameters/Day'
        - $ref: '#/components/parameters/Engine'
        - $ref: '#/components/parameters/Days'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  tab:
                    type: string
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/TabResultRow'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  parameters:
    UniverseId:
      name: id
      in: path
      required: true
      schema:
        type: string
        format: uuid
      description: Universe UUID — see `GET /universes`.
    Day:
      name: day
      in: query
      required: false
      schema:
        type: string
        format: date
      description: >-
        Pin the query to a specific day (`YYYY-MM-DD`). Without this, returns
        the most recent day.
    Engine:
      name: engine
      in: query
      required: false
      schema:
        type: string
        enum:
          - chatgpt
          - gemini
          - grok
          - claude
      description: Filter to a single AI engine. Omit for all.
    Days:
      name: days
      in: query
      required: false
      schema:
        type: integer
        minimum: 1
        maximum: 90
        default: 1
      description: Most-recent N days back from `day` (or today).
  schemas:
    TabResultRow:
      type: object
      description: >-
        One row of bundled scalar metrics for a tab. Always carries `day` and
        `engine`; the remaining keys depend on which tab was requested.
      properties:
        day:
          type: string
          format: date
        engine:
          type: string
      additionalProperties: true
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - type
            - message
          properties:
            type:
              type: string
              enum:
                - authentication_error
                - permission_error
                - not_found
                - invalid_request_error
                - rate_limit_error
                - api_error
              description: Machine-readable error category.
            message:
              type: string
              description: Human-readable explanation.
  responses:
    BadRequest:
      description: Malformed request (bad UUID, bad date, etc.).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Missing / invalid / revoked API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: API key is valid but doesn't own the requested universe.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Universe (or metric, or row) doesn't exist.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: vso_<48 hex chars>
      description: |
        Generate a key at `/dashboard/settings/api-keys`. Pass it as
        `Authorization: Bearer vso_xxx` on every request.

````