> ## 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.

# List assets for authorized partner tenants.

> This endpoint returns a cursor-paginated list of assets across the authorized partner's
tenant scope.

**Notes:**
- `tenant_ids` (optional, comma-separated) restricts results to specific tenants.
- `source_type`, `severity`, `root_cause_type`, and `patchability` filter the result set.
- `page_size` (optional, default 100, max 500) controls page size.
- `cursor` (optional) resumes from a previous page using the `next_cursor` value returned in
  the response.


Required headers:

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



## OpenAPI

````yaml /api/partner-api/reporting.json get /pulse/v1/partner/assets
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/assets:
    get:
      tags:
        - Reporting
      summary: List assets for authorized partner tenants.
      description: >-
        This endpoint returns a cursor-paginated list of assets across the
        authorized partner's

        tenant scope.


        **Notes:**

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

        - `source_type`, `severity`, `root_cause_type`, and `patchability`
        filter the result set.

        - `page_size` (optional, default 100, max 500) controls page size.

        - `cursor` (optional) resumes from a previous page using the
        `next_cursor` value returned in
          the response.


        Required headers:


        - `Authorization: Bearer {token}` (requires the `pulse.read` scope)
      operationId: ListPartnerAssetsV1
      parameters:
        - name: tenant_ids
          in: query
          description: >-
            Comma-separated tenant UUIDs to scope the list to. Omit to use every
            tenant the caller is authorized for.
          schema:
            type: string
        - name: include_descendants
          in: query
          description: >-
            When true, widens each id in `tenant_ids` to that tenant and every
            tenant beneath it in the hierarchy. Ignored when `tenant_ids` is
            omitted, since the default is already the caller's whole scope.
          schema:
            enum:
              - 'true'
              - 'false'
            type: string
        - name: page_size
          in: query
          description: Maximum number of items per page.
          schema:
            type: string
        - name: cursor
          in: query
          description: >-
            Opaque pagination cursor: pass the previous response's next_cursor
            to fetch the next page.
          schema:
            type: string
        - name: expand
          in: query
          description: >-
            Comma-separated optional expansions. `tenants` adds a per-tenant
            breakdown to each row; `cves` (on /assets) narrows the list to
            assets with at least one open finding and attaches their CVEs.
            Expansions cost extra reads, so ask for them only when needed.
          schema:
            type: string
        - name: asset_id
          in: query
          description: >-
            Restricts the read to a single asset. Asset identifiers are unique
            within a tenant, not across tenants, so `tenant_ids` must also be
            supplied; a request with `asset_id` and no `tenant_ids` is rejected
            with 400 `asset_id_requires_tenant_ids`.
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerAssetsResponse'
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '503':
          description: Service Unavailable
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
components:
  schemas:
    PartnerAssetsResponse:
      required:
        - root_tenant_id
        - page_size
        - next_cursor
        - coverage
        - items
      type: object
      properties:
        root_tenant_id:
          type: string
          format: uuid
        page_size:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - integer
            - string
          format: int32
        next_cursor:
          type:
            - 'null'
            - string
        coverage:
          type: array
          items:
            $ref: '#/components/schemas/PartnerTenantCoverage'
        items:
          type: array
          items:
            $ref: '#/components/schemas/GlobalAssetRow'
    ProblemDetails:
      type: object
      properties:
        type:
          type:
            - 'null'
            - string
        title:
          type:
            - 'null'
            - string
        status:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - 'null'
            - integer
            - string
          format: int32
        detail:
          type:
            - 'null'
            - string
        instance:
          type:
            - 'null'
            - string
    PartnerTenantCoverage:
      required:
        - tenant_id
        - tenant_host
      type: object
      properties:
        tenant_id:
          type: string
          format: uuid
        tenant_host:
          type: string
    GlobalAssetRow:
      required:
        - tenant_id
        - tenant_host
        - asset_id
        - asset_type
        - source_type
        - lifecycle_state
        - display_name
        - hostname
        - fqdn
        - address
        - platform
        - os_family
        - os_name
        - os_version
        - agent_status
        - agent_last_check_in_at
        - last_seen_at
        - open_finding_count
        - open_critical_count
        - open_high_count
        - open_medium_count
        - open_low_count
        - open_info_count
        - highest_cvr_score
        - vulnerability_grade
        - password_manager_status
        - disk_encryption_status
        - lock_status
        - security_software_status
        - eol_status
        - tags
      type: object
      properties:
        tenant_id:
          type: string
          format: uuid
        tenant_host:
          type: string
        asset_id:
          type: string
        asset_type:
          $ref: '#/components/schemas/GlobalAssetType'
        source_type:
          $ref: '#/components/schemas/GlobalSourceType'
        lifecycle_state:
          $ref: '#/components/schemas/EndpointLifecycleState'
        display_name:
          type:
            - 'null'
            - string
        hostname:
          type:
            - 'null'
            - string
        fqdn:
          type:
            - 'null'
            - string
        address:
          type:
            - 'null'
            - string
        platform:
          type:
            - 'null'
            - string
        os_family:
          type:
            - 'null'
            - string
        os_name:
          type:
            - 'null'
            - string
        os_version:
          type:
            - 'null'
            - string
        agent_status:
          type:
            - 'null'
            - string
        agent_last_check_in_at:
          type:
            - 'null'
            - string
          format: date-time
        last_seen_at:
          type:
            - 'null'
            - string
          format: date-time
        open_finding_count:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - integer
            - string
          format: uint64
        open_critical_count:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - integer
            - string
          format: uint64
        open_high_count:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - integer
            - string
          format: uint64
        open_medium_count:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - integer
            - string
          format: uint64
        open_low_count:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - integer
            - string
          format: uint64
        open_info_count:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - integer
            - string
          format: uint64
        highest_cvr_score:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?$
          type:
            - 'null'
            - number
            - string
          format: double
        vulnerability_grade:
          type:
            - 'null'
            - string
        password_manager_status:
          type:
            - 'null'
            - string
        disk_encryption_status:
          type:
            - 'null'
            - string
        lock_status:
          type:
            - 'null'
            - string
        security_software_status:
          type:
            - 'null'
            - string
        eol_status:
          type:
            - 'null'
            - string
        tags:
          type: array
          items:
            type: string
        ports:
          type:
            - 'null'
            - array
          items:
            type: string
        port_observation:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/GlobalPortObservation'
        secure_baseline_score:
          pattern: ^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$
          type:
            - 'null'
            - number
            - string
          format: double
        secure_baseline_profile_id:
          type:
            - 'null'
            - string
        secure_baseline_profile_label:
          type:
            - 'null'
            - string
        fips_status:
          type:
            - 'null'
            - string
        tenant_name:
          type:
            - 'null'
            - string
        authenticated:
          type:
            - 'null'
            - boolean
        mac_address:
          type:
            - 'null'
            - string
        mac_vendor:
          type:
            - 'null'
            - string
        device_fingerprint:
          type:
            - 'null'
            - string
        snmp_summary:
          type:
            - 'null'
            - string
        os_eol:
          type:
            - 'null'
            - string
          format: date
    GlobalAssetType:
      enum:
        - endpoint
        - host
        - server
        - workstation
        - network_device
        - printer
        - router
        - switch
        - firewall
        - service
        - external
        - domain
        - unknown
    GlobalSourceType:
      enum:
        - endpoint
        - network
        - external
        - domain
        - unknown
    EndpointLifecycleState:
      enum:
        - active
        - inactive
        - retired
        - unknown
    GlobalPortObservation:
      enum:
        - host_observed
        - scan_observed
  securitySchemes:
    bearerAuth:
      type: http
      description: >-
        A Tenant Authority machine-client token from POST /v1/auth/client-token,
        carrying subject_type=machine_client and the pulse.read scope.
      scheme: bearer
      bearerFormat: JWT

````