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

# Get the overall dashboard for authorized partner tenants.

> This endpoint returns one row per tenant in the authorized partner's tenant scope: where
the tenant sits in the hierarchy, its industry and tags, its asset and finding counts, and
its current scores and grades.

**Notes:**
- `tenant_ids` (optional, comma-separated) restricts results to specific tenants.
- A grade is `null` until the tenant has been scored for it.


Required headers:

- `Authorization: Bearer {token}` (requires the `pulse.read` scope)



## OpenAPI

````yaml /api/partner-api/reporting.json get /pulse/v1/partner/dashboards/overall
openapi: 3.1.1
info:
  title: 'Cyrisma New Partner API: Reporting'
  version: v1
servers:
  - url: https://{instance}.cyrisma.com/app
    description: The partner's CYRISMA instance host.
    variables:
      instance:
        default: ccnnnnnn
        description: The instance label of the tenant host issued to the partner.
security:
  - bearerAuth:
      - pulse.read
tags:
  - name: Reporting
paths:
  /pulse/v1/partner/dashboards/overall:
    get:
      tags:
        - Reporting
      summary: Get the overall dashboard for authorized partner tenants.
      description: >-
        This endpoint returns one row per tenant in the authorized partner's
        tenant scope: where

        the tenant sits in the hierarchy, its industry and tags, its asset and
        finding counts, and

        its current scores and grades.


        **Notes:**

        - `tenant_ids` (optional, comma-separated) restricts results to specific
        tenants.

        - A grade is `null` until the tenant has been scored for it.



        Required headers:


        - `Authorization: Bearer {token}` (requires the `pulse.read` scope)
      operationId: GetPartnerOverallDashboardV1
      parameters:
        - name: tenant_ids
          in: query
          description: >-
            Comma-separated tenant ids to read. Every id must be inside the
            caller's authorized scope, otherwise 403 `tenant_out_of_scope`. Omit
            it to read every authorized tenant.
          schema:
            type: string
      responses:
        '200':
          description: One row per covered tenant.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerOverallDashboardResponse'
        '400':
          description: >-
            A value in `tenant_ids` is not a UUID (`invalid_tenant_id`), or
            another parameter is invalid; the `error` field names the problem.
        '401':
          description: No bearer token, or an invalid or expired one.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: >-
            The token is not allowed to read this: it is not a machine-client
            token (`machine_client_subject_required`), lacks the `pulse.read`
            scope (`missing_required_scope`), is outdated
            (`stale_token_version`), or belongs to a disabled tenant. A tenant
            outside the caller's scope in `tenant_ids` returns
            `tenant_out_of_scope`.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '503':
          description: >-
            The data store is unavailable
            (`pulse_overall_dashboard_unavailable`), or the tenant scope could
            not be loaded. Retry later.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
components:
  schemas:
    PartnerOverallDashboardResponse:
      required:
        - root_tenant_id
        - tenants
      type: object
      properties:
        root_tenant_id:
          type: string
          description: The top of the caller's authorized scope.
          format: uuid
        tenants:
          type: array
          items:
            $ref: '#/components/schemas/PartnerOverallTenant'
          description: One entry per tenant read, ordered by position in the hierarchy.
      description: >-
        Each authorized tenant with its asset and finding counts and its current
        grades.
    ProblemDetails:
      type: object
      properties:
        type:
          type:
            - 'null'
            - string
          description: A URI reference that identifies the kind of error.
        title:
          type:
            - 'null'
            - string
          description: A short summary of the error, or its code.
        status:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - 'null'
            - integer
            - string
          description: The HTTP status code.
          format: int32
        detail:
          type:
            - 'null'
            - string
          description: More detail about this occurrence, when there is any.
        instance:
          type:
            - 'null'
            - string
          description: A URI reference that identifies this occurrence, when there is one.
      description: >-
        An error in the RFC 9457 problem format. The error code is in `title`,
        for example `tenant_out_of_scope` or `pulse_posture_unavailable`.
    PartnerOverallTenant:
      required:
        - tenant_id
        - tenant_host
        - name
        - kind
        - status
        - parent_tenant_id
        - depth
        - industry_id
        - industry_name
        - tags
        - asset_count
        - endpoint_count
        - network_asset_count
        - open_finding_count
        - open_critical_count
        - open_high_count
        - open_medium_count
        - open_low_count
        - affected_asset_count
        - remediated_30d_count
        - overall
        - vulnerability
        - secure_baseline
      type: object
      properties:
        tenant_id:
          type: string
          description: The tenant's id.
          format: uuid
        tenant_host:
          type: string
          description: The tenant's host name.
        name:
          type: string
          description: The tenant's name.
        kind:
          type: string
          description: >-
            Where the tenant sits in the hierarchy, for example `organization`,
            `customer` or `tenant`.
        status:
          type: string
          description: >-
            The tenant's state, for example `active`, `provisioning`,
            `suspended`, `disabled` or `deleted`.
        parent_tenant_id:
          type:
            - 'null'
            - string
          description: >-
            The tenant directly above this one. For the roots of the caller's
            scope this is a tenant outside the scope, or null.
          format: uuid
        depth:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - integer
            - string
          description: >-
            How many levels below the top of the hierarchy the tenant is. `0` is
            the top.
          format: int32
        industry_id:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - 'null'
            - integer
            - string
          description: The tenant's industry id. Null when not set.
          format: int32
        industry_name:
          type:
            - 'null'
            - string
          description: The name of the industry. Null when not set.
        tags:
          type: array
          items:
            type: string
          description: The names of the tenant's tags. Empty when it has none.
        asset_count:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - integer
            - string
          description: All assets in the tenant.
          format: uint64
        endpoint_count:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - integer
            - string
          description: Agent-backed endpoints in the tenant.
          format: uint64
        network_asset_count:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - integer
            - string
          description: Network-scanned assets in the tenant.
          format: uint64
        open_finding_count:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - integer
            - string
          description: Open findings in the tenant.
          format: uint64
        open_critical_count:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - integer
            - string
          description: Open findings rated `critical`.
          format: uint64
        open_high_count:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - integer
            - string
          description: Open findings rated `high`.
          format: uint64
        open_medium_count:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - integer
            - string
          description: Open findings rated `medium`.
          format: uint64
        open_low_count:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - integer
            - string
          description: Open findings rated `low`.
          format: uint64
        affected_asset_count:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - integer
            - string
          description: Assets with an open finding.
          format: uint64
        remediated_30d_count:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - integer
            - string
          description: Findings remediated in the last 30 days.
          format: uint64
        overall:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/PartnerPostureGrade'
          description: >-
            The overall risk grade, which combines the vulnerability and secure
            baseline grades.
        vulnerability:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/PartnerPostureGrade'
          description: The vulnerability grade.
        secure_baseline:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/PartnerPostureGrade'
          description: The secure baseline (configuration benchmark) grade.
      description: >-
        One tenant with its asset and finding counts and its grades. A grade is
        null until the tenant has been scored for it, which is not the same as
        scoring `A+`.
    PartnerPostureGrade:
      required:
        - score
        - grade
        - scores_as_of
      type: object
      properties:
        score:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
            - 'null'
            - number
            - string
          description: The score, from 0 to 100. Higher is better.
          format: double
        grade:
          type: string
          description: >-
            The letter grade, from `A+` to `F`, computed from the score by
            CYRISMA's grading policy. Do not derive your own letter.
        scores_as_of:
          type:
            - 'null'
            - string
          description: When the score was last calculated, in UTC.
          format: date-time
      description: One posture component's score and letter grade.
  securitySchemes:
    bearerAuth:
      type: http
      description: >-
        A machine-client token from POST /v1/auth/client-token, carrying
        subject_type=machine_client and the pulse.read scope.
      scheme: bearer
      bearerFormat: JWT

````

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