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

# Read Automation Dashboard Data

> The figures a Module automation's Pulse dashboards show, computed server-side the same way the dashboard computes them: each tile's `label`, `value`, `unit` and `display` (the value as the dashboard prints it), with a `description` where the label alone leaves the figure unclear and a `note` for what the tile shows besides it. Call this for any number on a Module dashboard instead of reading the dashboard's HTML (`getPulseDashboardHtml` refuses Module dashboards for size) or paging through Cases: a recount can disagree with the tile the user sees. Pass `dashboard_id` for one dashboard, or leave it out for every dashboard of the automation the caller may open. `range` applies to dashboards with a time range control; the result names the range it read. Pass `time_zone` with the user's IANA zone so a day starts at their midnight, as their dashboard's do; without it days start at midnight UTC, and `range.time_zone` says which zone was used. Quote `display`, say the period it covers, and name and link the dashboard with its `link`. A dashboard whose figures are not declared, or that was changed since it was installed, comes back `unsupported`; one that could not be read comes back `error`; both carry a `hint`. Needs Queues on the team's plan. Each `link` is a path in the Duvo web app; give the user the full URL beside it (`url`).



## OpenAPI

````yaml https://api.duvo.ai/v2/documentation/mintlify.json get /v2/automations/{automation_id}/dashboard-data
openapi: 3.0.3
info:
  title: Duvo Public API
  description: >-
    Public API for programmatic access to Duvo. Authenticate with API keys
    created in the Duvo dashboard.


    ## Rate limits


    Requests are counted per API key. Every response advertises the quota with
    the IETF RateLimit fields, so a client can self-throttle without waiting for
    a rejection:


    - `RateLimit-Policy: "default";q=<quota>;w=<window seconds>` — the policy in
    force: `q` requests per `w` seconds.

    - `RateLimit: "default";r=<remaining>;t=<seconds>` — the live state: `r`
    requests left, quota resetting in `t` seconds.

    - Read the quota from the headers rather than hard-coding it; it differs per
    environment.

    - The same numbers are also sent as `ratelimit-limit`, `ratelimit-remaining`
    and `ratelimit-reset`.


    Once the quota is exhausted the API answers `429 Too Many Requests` with
    `Retry-After` set to the seconds to wait; honor it instead of retrying
    immediately.
  version: 1.0.0
servers:
  - url: https://api.duvo.ai
    description: Production server
security: []
tags:
  - name: Runs
    description: Start, monitor, and manage agent runs (Runs in the Duvo UI)
  - name: Sandboxes
    description: Create sandboxes and upload files for agent runs
  - name: Queues
    description: Manage queues and their agent bindings
  - name: Cases
    description: Create, list, and manage cases and their labels within queues
  - name: Case Approvals
    description: Submit decisions on pending case approval requests issued by an agent run
  - name: Case Attachments
    description: Upload, list, download, and remove the files attached to a case
  - name: Automations
    description: >-
      List and manage automations — the workspace container that groups the
      agents and queues making up one end-to-end process
  - name: Agents
    description: Create and manage agents for automation workloads
  - name: Revisions
    description: Create and manage agent revisions — the underlying Setup for an Agent
  - name: Agent Folders
    description: Organize agents into folders
  - name: Agent Memory
    description: Read an agent's memory files (the Memory feature in the Duvo UI)
  - name: Suggestions
    description: >-
      List, apply, and dismiss an Agent's improvement suggestions (the
      suggestions inbox in the Duvo UI)
  - name: Notifications
    description: >-
      List, read, dismiss, and clear the authenticated user's team notifications
      (the Notification Center in the Duvo UI)
  - name: Schedules
    description: List schedules configured for an agent
  - name: Duvo Pulse
    description: >-
      Create, list, iterate on, and delete Duvo Pulse dashboards — live,
      agent-generated visualizations of your Duvo data
  - name: Case Triggers
    description: >-
      Configure case triggers that automatically dispatch agent runs (Runs in
      the Duvo UI) for cases added to a queue
  - name: Triggers
    description: >-
      Configure event triggers that start a Run automatically when an external
      event fires (e.g. an email arrives, a Linear issue is created, or a file
      changes in Google Drive)
  - name: Skills
    description: Manage team and system skills (reusable knowledge packs).
  - name: Files
    description: Manage team files.
  - name: Plugins
    description: Discover plugins that can be referenced from a revision.
  - name: Organizations
    description: Inspect organizations you belong to and the teams within them
  - name: Team
    description: Inspect the team and members associated with the API key
  - name: Invites
    description: >-
      Invite people to a team — one at a time or in bulk, scoped to a Clarity
      process or the whole team — and manage the team's shareable invite link
  - name: Integrations
    description: Browse the team's catalog of available integration types
  - name: Connections
    description: Manage your connected integrations
  - name: Credentials
    description: >-
      Manage logins (domain + username + password + TOTP) used by agents to sign
      in to websites and desktop applications, and attach them to assignment
      revisions
  - name: Secrets
    description: >-
      Manage env-var secrets injected into runs, and attach them to assignment
      revisions. Only metadata is exposed; values are never returned
  - name: Revision Integrations
    description: >-
      Attach integrations to assignment revisions, pin specific connections, and
      link queues
  - name: ClarityV2
    description: >-
      Manage Clarity v2 process snapshots, automation proposals, and the
      extra-capture-request follow-up loop
paths:
  /v2/automations/{automation_id}/dashboard-data:
    get:
      tags:
        - Automations
      summary: Read Automation Dashboard Data
      description: >-
        The figures a Module automation's Pulse dashboards show, computed
        server-side the same way the dashboard computes them: each tile's
        `label`, `value`, `unit` and `display` (the value as the dashboard
        prints it), with a `description` where the label alone leaves the figure
        unclear and a `note` for what the tile shows besides it. Call this for
        any number on a Module dashboard instead of reading the dashboard's HTML
        (`getPulseDashboardHtml` refuses Module dashboards for size) or paging
        through Cases: a recount can disagree with the tile the user sees. Pass
        `dashboard_id` for one dashboard, or leave it out for every dashboard of
        the automation the caller may open. `range` applies to dashboards with a
        time range control; the result names the range it read. Pass `time_zone`
        with the user's IANA zone so a day starts at their midnight, as their
        dashboard's do; without it days start at midnight UTC, and
        `range.time_zone` says which zone was used. Quote `display`, say the
        period it covers, and name and link the dashboard with its `link`. A
        dashboard whose figures are not declared, or that was changed since it
        was installed, comes back `unsupported`; one that could not be read
        comes back `error`; both carry a `hint`. Needs Queues on the team's
        plan. Each `link` is a path in the Duvo web app; give the user the full
        URL beside it (`url`).
      operationId: readAutomationDashboardData
      parameters:
        - schema:
            type: string
            format: uuid
          in: query
          name: dashboard_id
          required: false
          description: >-
            One of the automation's Module dashboards; leave out to read every
            one
        - schema:
            type: string
            enum:
              - today
              - yesterday
              - week
              - month
              - ytd
              - all
          in: query
          name: range
          required: false
          description: >-
            today, yesterday, week, month, ytd or all, for dashboards with a
            time range control; leave out for the range the dashboard opens on
        - schema:
            type: string
          in: query
          name: time_zone
          required: false
          description: >-
            IANA zone the range's days start in, such as Europe/Prague. Pass the
            user's own zone so Today matches their dashboard; UTC when left out
        - schema:
            type: string
            format: uuid
          in: path
          name: automation_id
          required: true
          description: Automation ID
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  dashboards:
                    type: array
                    items:
                      oneOf:
                        - type: object
                          properties:
                            status:
                              type: string
                              enum:
                                - ok
                            dashboard:
                              type: object
                              properties:
                                id:
                                  type: string
                                  format: uuid
                                  description: The dashboard
                                name:
                                  type: string
                                  description: The dashboard's name, as its tab shows it
                                link:
                                  type: string
                                  description: >-
                                    Root-relative path that opens the dashboard;
                                    link it when quoting its figures
                                url:
                                  type: string
                                  description: >-
                                    The same page as `link`, as a full web-app
                                    URL to give the user
                              required:
                                - id
                                - name
                                - link
                                - url
                              additionalProperties: false
                            metrics:
                              type: array
                              items:
                                type: object
                                properties:
                                  key:
                                    type: string
                                  label:
                                    type: string
                                    description: The tile's label
                                  value:
                                    nullable: true
                                    description: Null where the dashboard shows no number
                                    type: number
                                  unit:
                                    type: string
                                    description: >-
                                      `count`, `percent`, `minutes`, or the ISO
                                      currency of a money figure
                                  display:
                                    type: string
                                    description: >-
                                      The value as the dashboard prints it;
                                      quote this
                                  description:
                                    description: >-
                                      What the figure is, when the label alone
                                      leaves it unclear
                                    type: string
                                  note:
                                    description: What the tile shows besides its figure
                                    type: string
                                required:
                                  - key
                                  - label
                                  - value
                                  - unit
                                  - display
                                additionalProperties: false
                            range:
                              type: object
                              properties:
                                key:
                                  nullable: true
                                  description: >-
                                    The range read: today, yesterday, week,
                                    month, ytd or all
                                  type: string
                                label:
                                  type: string
                                from:
                                  type: string
                                  nullable: true
                                to:
                                  type: string
                                  nullable: true
                                time_zone:
                                  nullable: true
                                  description: >-
                                    The zone the range's days start in; null for
                                    a dashboard with no range control
                                  type: string
                              required:
                                - key
                                - label
                                - from
                                - to
                                - time_zone
                              additionalProperties: false
                            as_of:
                              type: string
                              description: When the figures were computed
                            note:
                              description: >-
                                Present when the figures cover only part of the
                                queue
                              type: string
                          required:
                            - status
                            - dashboard
                            - metrics
                            - range
                            - as_of
                          additionalProperties: false
                        - type: object
                          properties:
                            status:
                              type: string
                              enum:
                                - unsupported
                                - error
                              description: >-
                                `unsupported`: its figures are not declared, or
                                it changed since install. `error`: it could not
                                be read
                            dashboard:
                              type: object
                              properties:
                                id:
                                  type: string
                                  format: uuid
                                  description: The dashboard
                                name:
                                  type: string
                                  description: The dashboard's name, as its tab shows it
                                link:
                                  type: string
                                  description: >-
                                    Root-relative path that opens the dashboard;
                                    link it when quoting its figures
                                url:
                                  type: string
                                  description: >-
                                    The same page as `link`, as a full web-app
                                    URL to give the user
                              required:
                                - id
                                - name
                                - link
                                - url
                              additionalProperties: false
                            hint:
                              type: string
                              description: Why, and what to do instead
                          required:
                            - status
                            - dashboard
                            - hint
                          additionalProperties: false
                  hint:
                    description: >-
                      Present when the automation has no Module dashboard to
                      read
                    type: string
                required:
                  - dashboards
                additionalProperties: false
        '400':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
                additionalProperties: false
        '401':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
                additionalProperties: false
        '403':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
                additionalProperties: false
        '404':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
                additionalProperties: false
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
                additionalProperties: false
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key authentication. Get your API key from the Duvo dashboard.

````

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