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

# Get Project Usage

> Retrieve credit usage, subscription details, and per-service request counts for a project within the current credit cycle.

## Overview

Returns a complete picture of a project's credit consumption for the current credit cycle, including credits remaining, subscription plan details, and a breakdown of requests by service type (RPC, DAS, gRPC, WebSocket, etc.).

All credit figures are scoped to the `creditCycle` — the window credits accrue and reset against, derived from the subscription's billing anchor. Every project has one, including free plans. The `subscriptionDetails.billingCycle` is the invoicing window; it is informational and `null` on free plans, which are never invoiced.

## Request Parameters

<ParamField path="id" type="string" required>
  The project ID to retrieve usage for. Must match the project associated with the API key used for authentication.
</ParamField>

## Response Fields

<ParamField body="creditsRemaining" type="number">
  Credits remaining in the current credit cycle. Calculated as the plan's credit limit minus regular credits consumed, floored at zero.
</ParamField>

<ParamField body="creditsUsed" type="number">
  Total credits consumed in the current credit cycle, including both regular and prepaid credits.
</ParamField>

<ParamField body="prepaidCreditsRemaining" type="number">
  Prepaid credits still available.
</ParamField>

<ParamField body="prepaidCreditsUsed" type="number">
  Prepaid credits consumed in the current credit cycle.
</ParamField>

<ParamField body="creditCycle" type="object">
  The window every credit figure in this response is scoped to — the period credits accrue and reset against, derived from the subscription's billing anchor. Always present, for every plan, including free plans.
</ParamField>

<ParamField body="creditCycle.start" type="string">
  Credit cycle start date in `YYYY-MM-DD` format (UTC).
</ParamField>

<ParamField body="creditCycle.end" type="string">
  Credit cycle end date in `YYYY-MM-DD` format (UTC).
</ParamField>

<ParamField body="subscriptionDetails" type="object">
  Subscription plan and invoicing cycle information.
</ParamField>

<ParamField body="subscriptionDetails.billingCycle" type="object | null">
  Start and end dates of the current invoicing cycle. Informational only — `null` on free plans, which are never invoiced. On paid plans this normally matches `creditCycle`.
</ParamField>

<ParamField body="subscriptionDetails.billingCycle.start" type="string">
  Billing cycle start date in `YYYY-MM-DD` format.
</ParamField>

<ParamField body="subscriptionDetails.billingCycle.end" type="string">
  Billing cycle end date in `YYYY-MM-DD` format.
</ParamField>

<ParamField body="subscriptionDetails.creditsLimit" type="number">
  Total credit allowance for the credit cycle based on your plan.
</ParamField>

<ParamField body="subscriptionDetails.plan" type="string">
  The name of the subscription plan (e.g., `"business"`, `"professional"`).
</ParamField>

<ParamField body="credits" type="object">
  Per-product credit consumption for the current credit cycle, in whole credits. Covers every product. Values are accumulated raw and rounded once at the end to match billing, so per-product credits may not sum exactly to `creditsUsed` after rounding.
</ParamField>

<ParamField body="credits.rpc" type="number">
  Credits consumed by standard Solana RPC.
</ParamField>

<ParamField body="credits.enhancedApi" type="number">
  Credits consumed by the Enhanced API (e.g., parsed transactions, token metadata).
</ParamField>

<ParamField body="credits.walletApi" type="number">
  Credits consumed by the Wallet API.
</ParamField>

<ParamField body="credits.das" type="number">
  Credits consumed by the DAS (Digital Asset Standard) API.
</ParamField>

<ParamField body="credits.webhooks" type="number">
  Credits consumed by Webhooks.
</ParamField>

<ParamField body="credits.laserstreamGrpc" type="number">
  Credits consumed by LaserStream gRPC (bandwidth-metered).
</ParamField>

<ParamField body="credits.laserstreamWebsocket" type="number">
  Credits consumed by LaserStream WebSocket (bandwidth-metered).
</ParamField>

<ParamField body="credits.preConfirmations" type="number">
  Credits consumed by Preconfirmations.
</ParamField>

<ParamField body="credits.archival" type="number">
  Credits consumed by Archival.
</ParamField>

<ParamField body="credits.photon" type="number">
  Credits consumed by Photon (ZK Compression).
</ParamField>

<ParamField body="credits.other" type="number">
  Credits consumed by uncategorized usage.
</ParamField>

<ParamField body="requests" type="object">
  Request counts for the current credit cycle, for request-metered products only. The bandwidth-metered LaserStream products (`laserstreamGrpc`, `laserstreamWebsocket`) do not appear here — see `dataTransfer`. Fields: `rpc`, `enhancedApi`, `walletApi`, `das`, `webhooks`, `preConfirmations`, `archival`, `photon`, `other`.
</ParamField>

<ParamField body="dataTransfer" type="object">
  Bytes transferred for the current credit cycle, for the bandwidth-metered LaserStream products only. These products are billed by data transferred, not request count, so they appear here and in `credits` but never in `requests`. Fields: `laserstreamGrpc`, `laserstreamWebsocket`.
</ParamField>

## Request Parameters

<ParamField body="id" type="string" required>
  The project ID to retrieve usage for. Must match the project associated with the API key.
</ParamField>


## OpenAPI

````yaml openapi/admin-api/getProjectUsage.yaml GET /v0/admin/projects/{id}/usage
openapi: 3.0.3
info:
  title: Helius Admin API
  description: |
    Programmatic access to project usage and billing data.

    ## Authentication

    All requests require an API key passed either as:
    - Header: `X-Api-Key: YOUR_API_KEY`
    - Query parameter: `?api-key=YOUR_API_KEY`
  version: 1.0.0
  contact:
    name: API Support
    url: https://helius.dev
servers:
  - url: https://admin-api.helius.xyz
    description: Production server
security:
  - ApiKeyQuery: []
  - ApiKeyHeader: []
paths:
  /v0/admin/projects/{id}/usage:
    get:
      tags:
        - Admin
      summary: Get Project Usage
      description: >
        Retrieve credit usage, subscription details, and per-service request
        counts for a project within the current credit cycle — the window
        credits accrue and reset against, reported in the `creditCycle` field.


        The API key used for authentication must belong to the project specified
        in the path. Requests where the API key's project does not match the
        `id` parameter will return a `400` error.
      operationId: getProjectUsage
      parameters:
        - name: id
          in: path
          required: true
          description: >-
            The project ID to retrieve usage for. Must match the project
            associated with the API key.
          schema:
            type: string
            format: uuid
            example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
      responses:
        '200':
          description: Project usage retrieved successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectUsageResponse'
              example:
                creditsRemaining: 486100
                creditsUsed: 13900
                prepaidCreditsRemaining: 50000
                prepaidCreditsUsed: 0
                creditCycle:
                  start: '2026-04-01'
                  end: '2026-05-01'
                subscriptionDetails:
                  billingCycle:
                    start: '2026-04-01'
                    end: '2026-05-01'
                  creditsLimit: 500000
                  plan: business
                credits:
                  rpc: 4500
                  enhancedApi: 1200
                  walletApi: 0
                  das: 5000
                  webhooks: 800
                  laserstreamGrpc: 1500
                  laserstreamWebsocket: 800
                  preConfirmations: 100
                  archival: 0
                  photon: 0
                  other: 0
                requests:
                  rpc: 4500
                  enhancedApi: 1200
                  walletApi: 0
                  das: 5000
                  webhooks: 800
                  preConfirmations: 50
                  archival: 0
                  photon: 0
                  other: 0
                dataTransfer:
                  laserstreamGrpc: 15000000
                  laserstreamWebsocket: 8000000
        '400':
          description: >-
            Bad Request — the project ID in the path does not match the project
            associated with the API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                statusCode: 400
                message: Invalid project id
                error: Bad Request
        '401':
          description: Unauthorized — API key is missing, malformed, or not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                statusCode: 401
                message: Missing or invalid API key
                error: Unauthorized
        '403':
          description: Forbidden — the Admin API is not enabled for this project.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                statusCode: 403
                message: Admin API not enabled for this project
                error: Forbidden
        '429':
          description: Too Many Requests — rate limit of 5 requests per second exceeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                statusCode: 429
                message: 'ThrottlerException: Too Many Requests'
                error: Too Many Requests
        '500':
          description: >-
            Internal Server Error — a server-side error occurred (e.g., missing
            billing data).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                statusCode: 500
                message: Internal server error
                error: Internal Server Error
components:
  schemas:
    ProjectUsageResponse:
      type: object
      properties:
        creditsRemaining:
          type: number
          description: >-
            Number of credits remaining in the current credit cycle. Calculated
            as `creditsLimit - regularCreditsUsed`, floored at 0.
          example: 487500
        creditsUsed:
          type: number
          description: >-
            Total credits consumed in the current credit cycle, including both
            regular and prepaid credits.
          example: 12500
        prepaidCreditsRemaining:
          type: number
          description: Number of prepaid credits remaining.
          example: 50000
        prepaidCreditsUsed:
          type: number
          description: Number of prepaid credits consumed in the current credit cycle.
          example: 0
        creditCycle:
          type: object
          description: >
            The window every credit figure in this response is scoped to — the
            period

            credits accrue and reset against, derived from the subscription's
            billing

            anchor. Always present, for every plan, including free plans that
            are

            never invoiced.
          properties:
            start:
              type: string
              description: Credit cycle start date (`YYYY-MM-DD`, UTC).
              example: '2026-04-01'
            end:
              type: string
              description: Credit cycle end date (`YYYY-MM-DD`, UTC).
              example: '2026-05-01'
        subscriptionDetails:
          type: object
          description: Details about the project's subscription plan and invoicing cycle.
          properties:
            billingCycle:
              type: object
              nullable: true
              description: >
                Start and end dates of the current invoicing cycle.
                Informational only —

                `null` on free plans, which are never invoiced. On paid plans
                this

                normally matches `creditCycle`.
              properties:
                start:
                  type: string
                  description: Billing cycle start date.
                  example: '2026-04-01'
                end:
                  type: string
                  description: Billing cycle end date.
                  example: '2026-05-01'
            creditsLimit:
              type: number
              description: >-
                Total credit allowance for the current credit cycle based on the
                plan.
              example: 500000
            plan:
              type: string
              description: The name of the subscription plan.
              example: business
        credits:
          type: object
          description: >
            Per-product credit consumption for the current credit cycle, in
            whole credits.

            Covers every product. Values are accumulated raw and rounded once at
            the end to

            match billing, so per-product credits may not sum exactly to
            `creditsUsed` after

            rounding.
          properties:
            rpc:
              type: number
              description: Credits consumed by standard Solana RPC.
              example: 4500
            enhancedApi:
              type: number
              description: >-
                Credits consumed by the Enhanced API (e.g., parsed transactions,
                token metadata).
              example: 1200
            walletApi:
              type: number
              description: Credits consumed by the Wallet API.
              example: 0
            das:
              type: number
              description: Credits consumed by the DAS (Digital Asset Standard) API.
              example: 5000
            webhooks:
              type: number
              description: Credits consumed by Webhooks.
              example: 800
            laserstreamGrpc:
              type: number
              description: Credits consumed by LaserStream gRPC (bandwidth-metered).
              example: 1500
            laserstreamWebsocket:
              type: number
              description: Credits consumed by LaserStream WebSocket (bandwidth-metered).
              example: 800
            preConfirmations:
              type: number
              description: Credits consumed by Preconfirmations.
              example: 100
            archival:
              type: number
              description: Credits consumed by Archival.
              example: 0
            photon:
              type: number
              description: Credits consumed by Photon (ZK Compression).
              example: 0
            other:
              type: number
              description: Credits consumed by uncategorized usage.
              example: 0
        requests:
          type: object
          description: >
            Request counts for the current credit cycle, for request-metered
            products only.

            The bandwidth-metered LaserStream products (`laserstreamGrpc`,
            `laserstreamWebsocket`)

            do not appear here — see `dataTransfer`.
          properties:
            rpc:
              type: number
              description: Number of standard Solana RPC requests.
              example: 4500
            enhancedApi:
              type: number
              description: Number of Enhanced API requests.
              example: 1200
            walletApi:
              type: number
              description: Number of Wallet API requests.
              example: 0
            das:
              type: number
              description: Number of DAS (Digital Asset Standard) API requests.
              example: 5000
            webhooks:
              type: number
              description: Number of webhook delivery events.
              example: 800
            preConfirmations:
              type: number
              description: Number of Preconfirmations requests.
              example: 50
            archival:
              type: number
              description: Number of archival RPC requests.
              example: 0
            photon:
              type: number
              description: Number of Photon (ZK Compression) requests.
              example: 0
            other:
              type: number
              description: Number of uncategorized requests.
              example: 0
        dataTransfer:
          type: object
          description: >
            Bytes transferred for the current credit cycle, for the
            bandwidth-metered

            LaserStream products only. These products are billed by data
            transferred, not

            request count, so they appear here and in `credits` but never in
            `requests`.
          properties:
            laserstreamGrpc:
              type: number
              description: Bytes transferred over LaserStream gRPC.
              example: 15000000
            laserstreamWebsocket:
              type: number
              description: Bytes transferred over LaserStream WebSocket.
              example: 8000000
    ErrorResponse:
      type: object
      properties:
        statusCode:
          type: integer
          description: HTTP status code.
        message:
          type: string
          description: Human-readable error message.
        error:
          type: string
          description: HTTP error name.
  securitySchemes:
    ApiKeyQuery:
      type: apiKey
      in: query
      name: api-key
      description: API key passed as a query parameter.
    ApiKeyHeader:
      type: apiKey
      in: header
      name: X-Api-Key
      description: API key passed as a request header.

````