> ## 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 a single metric column

> Returns one column from the `history` table for the universe.
The column must be one of the names returned by `/metrics`.

Use this when you want a single time series — e.g. to chart
`ai_avg_trust_position` over the last 30 days. For the full
history row in one call, use `/universes/{id}/history` instead.




## OpenAPI

````yaml /openapi.yaml get /universes/{id}/metrics/{metric}
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}/metrics/{metric}:
    get:
      tags:
        - History
      summary: Get a single metric column
      description: |
        Returns one column from the `history` table for the universe.
        The column must be one of the names returned by `/metrics`.

        Use this when you want a single time series — e.g. to chart
        `ai_avg_trust_position` over the last 30 days. For the full
        history row in one call, use `/universes/{id}/history` instead.
      operationId: getMetric
      parameters:
        - $ref: '#/components/parameters/UniverseId'
        - name: metric
          in: path
          required: true
          schema:
            type: string
          description: Column name from `/metrics`.
        - $ref: '#/components/parameters/Day'
        - $ref: '#/components/parameters/Engine'
        - $ref: '#/components/parameters/Days'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  metric:
                    type: string
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        day:
                          type: string
                          format: date
                        engine:
                          type: string
                        value:
                          description: >-
                            Scalar (number/bool/string) for scalar metrics,
                            structured array/object for JSON metrics.
        '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).
  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'
  schemas:
    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.
  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.

````