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

# Get project app utilisation

> **Token scope:** `account` · `org` · `project` — read-only tokens allowed.

Per-app actual-vs-allocated compute utilisation over a window (default current cycle)

Quantities, not costs: the actual-consumption meters are collected at $0, so a cost-based ratio would read 0% for every app. `utilisation` is null when nothing was allocated in the window, which is not the same as 0% — the collector may simply not have run.



## OpenAPI

````yaml /openapi/project.json get /projects/{projectId}/utilisation
openapi: 3.1.0
info:
  title: InstaCloud API — Project level
  version: 0.1.0
  description: >-
    Endpoints under `/projects/{projectId}`: branches, services, deploys,
    secrets, databases, storage, cron, observability, governance. Callable with
    any token whose binding covers the project.


    Generated from the platform's own OpenAPI document
    (https://api.instacloud.com/openapi.json); see the [API
    overview](/reference/api/overview) for authentication and token scopes.
servers:
  - url: https://api.instacloud.com
    description: InstaCloud
security:
  - bearerAuth: []
tags:
  - name: Projects
    description: Projects inside an organization.
  - name: Branches
    description: >-
      Branch environments of a project: isolated database, storage and compute
      per branch.
  - name: Services
    description: 'Services on a branch: compute, postgres, storage and managed databases.'
  - name: Deploy
    description: Deploy an image or a source to a compute service.
  - name: Compute
    description: Build output of a compute service.
  - name: Secrets
    description: User secrets, service credentials and how they bind into compute env.
  - name: Database
    description: Postgres databases, extensions, credentials and ad-hoc SQL.
  - name: Storage
    description: Objects in a storage service.
  - name: Backups
    description: Database backups and restores.
  - name: Cron
    description: Scheduled HTTP calls against a service or an external URL.
  - name: Observability
    description: Logs, metrics, deploy events and database insight.
  - name: Governance
    description: Per-project agent policy and the approval queue.
  - name: Audit
    description: The project's event timeline, including agent-ingested events.
  - name: Domains
    description: >-
      Domains bought through InstaCloud, bring-your-own zones and their DNS
      records.
  - name: Billing
    description: Usage, cycles, invoices and credits.
  - name: Templates
    description: Deploy a template into a project.
paths:
  /projects/{projectId}/utilisation:
    get:
      tags:
        - Billing
      summary: Get project app utilisation
      description: >-
        **Token scope:** `account` · `org` · `project` — read-only tokens
        allowed.


        Per-app actual-vs-allocated compute utilisation over a window (default
        current cycle)


        Quantities, not costs: the actual-consumption meters are collected at
        $0, so a cost-based ratio would read 0% for every app. `utilisation` is
        null when nothing was allocated in the window, which is not the same as
        0% — the collector may simply not have run.
      operationId: getProjectAppUtilisation
      parameters:
        - schema:
            type: integer
          in: query
          name: from
          required: false
          description: unix seconds (default current cycle start)
        - schema:
            type: integer
          in: query
          name: to
          required: false
          description: unix seconds (default current cycle end)
        - schema:
            format: uuid
            type: string
          in: path
          name: projectId
          required: true
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProjectAppUtilisation'
        '403':
          description: Default Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    ProjectAppUtilisation:
      type: object
      properties:
        from:
          type: integer
        to:
          type: integer
        apps:
          type: array
          items:
            type: object
            properties:
              app:
                example: insta-myapp-ab12
                type: string
              resourceId:
                type: string
              cpu:
                $ref: '#/components/schemas/ResourceUtilisation'
              ram:
                $ref: '#/components/schemas/ResourceUtilisation'
        total:
          type: object
          properties:
            cpu:
              $ref: '#/components/schemas/ResourceUtilisation'
            ram:
              $ref: '#/components/schemas/ResourceUtilisation'
            cpuUnmeasuredApps:
              description: apps excluded from the cpu ratio for lack of a reading
              type: integer
            ramUnmeasuredApps:
              description: apps excluded from the ram ratio for lack of a reading
              type: integer
            cpuSuspectApps:
              description: >-
                apps excluded because actual exceeded allocation — impossible,
                so the stored rows are wrong
              type: integer
            ramSuspectApps:
              description: >-
                apps excluded because actual exceeded allocation — impossible,
                so the stored rows are wrong
              type: integer
            cpuUnmeteredApps:
              description: >-
                apps with no cpu metering rows at all — the ratio was computed
                over a smaller fleet than the real one
              type: integer
            ramUnmeteredApps:
              description: >-
                apps with no ram metering rows at all — the ratio was computed
                over a smaller fleet than the real one
              type: integer
    Error:
      type: object
      properties:
        error:
          type: string
      required:
        - error
    ResourceUtilisation:
      type: object
      properties:
        allocated:
          description: >-
            the ceiling that was billed, in `unit`. NULL means no allocation was
            recorded in this window — not that nothing was allocated.
          anyOf:
            - type: number
            - type: 'null'
        actual:
          description: >-
            what the app actually consumed, same unit. NULL means not measured
            in this window — not zero.
          anyOf:
            - type: number
            - type: 'null'
        unit:
          example: vCPU·min
          type: string
        utilisation:
          description: actual / allocated; null when either side is unknown
          anyOf:
            - type: number
            - type: 'null'
        suspect:
          description: >-
            actual exceeds allocation, which is physically impossible — the
            stored rows are wrong. Excluded from totals.
          type: boolean
        unmetered:
          description: >-
            the app exists but the collector produced no rows at all for it in
            this window — neither allocation nor reading. Worse than an absent
            reading: nothing bounds how much of the fleet is missing.
          type: boolean
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Session access JWT or an API token (`insta_<prefix>_<secret>`).

````