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

# List node usage with the Chainstack Platform API v2

> Retrieve per-node usage metrics — compute hours, GB-hours, request units, and bloXroute requests — using the Platform API v2. Send a GET request to /v2/reporting/node-usage/ for the paginated usage report.



## OpenAPI

````yaml get /v2/reporting/node-usage/
openapi: 3.0.3
info:
  x-logo:
    url: https://chainstack.com/assets/docs/api-docs-logo.svg
    backgroundColor: '#F5F8FC'
    altText: Chainstack
  title: 💙 CHAINSTACK PLATFORM API
  version: v2
  contact:
    name: API Support
    email: support@chainstack.com
  description: >
    A set of API endpoints to operate and manage the platform resources.<br>

    See also a [quick API
    tutorial](https://docs.chainstack.com/reference/quick-tutorial).
servers:
  - url: https://api.chainstack.com
    description: API endpoint
security: []
paths:
  /v2/reporting/node-usage/:
    get:
      tags:
        - Node usage V2
      summary: List node usage
      description: >
        List per-node usage metrics for your organization — compute hours,
        GB-hours, request units, and bloXroute requests — bucketed by day or
        hour.

        <br> When `date_from` and `date_to` are omitted, the report covers your
        organization's current metered billing period. Usage data is retained
        for 2 months — `date_from` cannot be earlier than the first day of the
        previous calendar month.

        <br> The response is paginated at 100 rows per page and includes
        dataset-wide totals for the selected filters.

        <br> Rate limit: 60 requests per minute per organization.
      operationId: listNodeUsageV2
      parameters:
        - $ref: '#/components/parameters/NodeUsageDateFrom'
        - $ref: '#/components/parameters/NodeUsageDateTo'
        - $ref: '#/components/parameters/NodeUsageNodeId'
        - $ref: '#/components/parameters/NodeUsageProtocol'
        - $ref: '#/components/parameters/NodeUsageNetwork'
        - $ref: '#/components/parameters/NodeUsageNodeType'
        - $ref: '#/components/parameters/NodeUsageGranularity'
        - $ref: '#/components/parameters/NodeUsageOrdering'
        - $ref: '#/components/parameters/Pagination'
      responses:
        '200':
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Pagination'
                  - type: object
                    properties:
                      results:
                        type: array
                        items:
                          $ref: '#/components/schemas/NodeUsageV2'
                      totals:
                        $ref: '#/components/schemas/NodeUsageTotalsV2'
              examples:
                list:
                  value:
                    count: 2
                    next: null
                    previous: null
                    results:
                      - node_id: ND-123-456-789
                        node_name: My Ethereum node
                        datetime: '2026-07-16T00:00:00Z'
                        node_type: dedicated
                        protocol: ethereum
                        network: ethereum-mainnet
                        compute_hours: 24
                        gb_hour: 2064
                        request_units: null
                        bloxroute_requests: null
                      - node_id: ND-987-654-321
                        node_name: My Solana node
                        datetime: '2026-07-16T00:00:00Z'
                        node_type: elastic
                        protocol: solana
                        network: solana-mainnet
                        compute_hours: null
                        gb_hour: null
                        request_units: 184023
                        bloxroute_requests: 0
                    totals:
                      compute_hours: 24
                      gb_hour: 2064
                      request_units: 184023
                      bloxroute_requests: 0
          description: ''
        '400':
          $ref: '#/components/responses/ValidationError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '429':
          description: >-
            Request was throttled. The node usage list endpoint allows 60
            requests per minute per organization.
      security:
        - APIKeyAuthentication: []
components:
  parameters:
    NodeUsageDateFrom:
      name: date_from
      required: false
      in: query
      description: >
        Start of the reporting period, inclusive, as an ISO 8601 datetime.

        <br> Defaults to the start of your organization's current metered
        billing period.

        <br> Cannot be earlier than the first day of the previous calendar month
        — usage data is retained for 2 months.
      schema:
        type: string
        format: date-time
        example: '2026-07-01T00:00:00Z'
    NodeUsageDateTo:
      name: date_to
      required: false
      in: query
      description: >
        End of the reporting period as an ISO 8601 datetime. Must be later than
        `date_from`.

        <br> Defaults to the end of your organization's current metered billing
        period.
      schema:
        type: string
        format: date-time
        example: '2026-07-17T00:00:00Z'
    NodeUsageNodeId:
      name: node_id
      required: false
      in: query
      description: >-
        Filter by node ID. Accepts a comma-separated list
        (`ND-123-456-789,ND-987-654-321`).
      schema:
        type: string
    NodeUsageProtocol:
      name: protocol
      required: false
      in: query
      description: Filter by protocol. Accepts a comma-separated list (`ethereum,solana`).
      schema:
        type: string
    NodeUsageNetwork:
      name: network
      required: false
      in: query
      description: >
        Filter by the network's public internal name, prefixed by protocol
        (`ethereum-mainnet`, `ethereum-sepolia-testnet`). Accepts a
        comma-separated list.
      schema:
        type: string
    NodeUsageNodeType:
      name: node_type
      required: false
      in: query
      description: Filter by node type. Omit to include both types.
      schema:
        type: string
        enum:
          - elastic
          - dedicated
    NodeUsageGranularity:
      name: granularity
      required: false
      in: query
      description: Size of the time bucket the usage is aggregated into.
      schema:
        type: string
        enum:
          - day
          - hour
        default: day
    NodeUsageOrdering:
      name: ordering
      required: false
      in: query
      description: >
        Which fields to use when ordering the results — a comma-separated list
        of `datetime` and `node_id`.

        <br> Use the `-` prefix to perform descending ordering (`-datetime`).
      schema:
        type: string
        default: '-datetime,node_id'
    Pagination:
      name: page
      required: false
      in: query
      description: A page number within the paginated result set.
      schema:
        type: integer
  schemas:
    Pagination:
      type: object
      properties:
        count:
          type: integer
          example: 123
          description: Number of the objects in the paginated results.
        next:
          type: string
          nullable: true
          description: Link to the next page.
        previous:
          type: string
          nullable: true
          description: Link to the previous page.
        results:
          type: array
          items:
            type: object
    NodeUsageV2:
      type: object
      readOnly: true
      properties:
        node_id:
          type: string
          description: Unique node identifier.
          example: ND-123-456-789
        node_name:
          type: string
          description: Name of the node.
          example: My Ethereum node
        datetime:
          type: string
          format: date-time
          description: >
            Start of the usage bucket in UTC — one day with `granularity=day`,
            one hour with `granularity=hour`.
          example: '2026-07-16T00:00:00Z'
        node_type:
          type: string
          enum:
            - elastic
            - dedicated
          description: Type of the node.
        protocol:
          type: string
          nullable: true
          description: Protocol of the node.
          example: ethereum
        network:
          type: string
          nullable: true
          description: >
            Public network internal name of the node, prefixed by protocol
            (`ethereum-mainnet`, `solana-mainnet`).
          example: ethereum-mainnet
        compute_hours:
          type: integer
          nullable: true
          description: >
            Compute hours consumed by the node in the bucket. `null` when the
            metric doesn't apply to the node.
        gb_hour:
          type: integer
          nullable: true
          description: >
            Storage consumed by the node in the bucket, in GB-hours. `null` when
            the metric doesn't apply to the node.
        request_units:
          type: integer
          nullable: true
          description: >
            Request units (RUs) consumed by the node in the bucket. `null` when
            the metric doesn't apply to the node.
        bloxroute_requests:
          type: integer
          nullable: true
          description: >
            bloXroute requests served by the node in the bucket. `null` when the
            metric doesn't apply to the node.
    NodeUsageTotalsV2:
      type: object
      readOnly: true
      description: >-
        Dataset-wide totals across every row matching the filters, not just the
        current page.
      properties:
        compute_hours:
          type: integer
          description: Total compute hours.
        gb_hour:
          type: integer
          description: Total storage in GB-hours.
        request_units:
          type: integer
          description: Total request units (RUs).
        bloxroute_requests:
          type: integer
          description: Total bloXroute requests.
  responses:
    ValidationError:
      description: Validation error.
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: object
                properties:
                  code:
                    type: string
                    description: A string indicating the kind of error.
                  message:
                    type: string
                    description: A human-readable description of the error.
                  fields:
                    type: object
                    additionalProperties:
                      type: array
                      items:
                        type: string
                    description: Optional. Field-level validation errors.
    UnauthorizedError:
      description: Authentication credentials were missing or incorrect.
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: object
                properties:
                  code:
                    type: string
                    description: A string indicating the kind of error.
                  message:
                    type: string
                    description: A human-readable description of the error.
    ForbiddenError:
      description: The request is not allowed with the current permissions.
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: object
                properties:
                  code:
                    type: string
                    description: A string indicating the kind of error.
                  message:
                    type: string
                    description: A human-readable description of the error.
  securitySchemes:
    APIKeyAuthentication:
      type: http
      scheme: bearer
      description: >
        Chainstack API uses [API
        keys](https://docs.chainstack.com/reference/platform-api-getting-started)
        to authenticate requests. You can view and manage your API keys in the
        platform UI.

        Your API keys carry many privileges, so be sure to keep them secure!

        Provide your API key as the `Authorization` header. The value of the
        header consists of `Bearer` prefix and secret key generated through the
        platform UI.


        ```bash

        curl -X GET 'https://api.chainstack.com/v1/organization/' \

        --header 'Authorization: Bearer
        FX7CWlLg.FMpAO8cgCX2N7s41EncRru2nb5CmTZUt'

        ```


        All API requests must be made over HTTPS.

````