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

# Get kubernetes cluster workload container usage

> Returns observed usage percentiles, the current/recommended request, cost and the right-sizing recommendation for a single workload container, scoped to one resource dimension (cpu, memory or an accelerator measurement) and observation window, for the tenant selected by the X-CostGraph-Tenant-ID header. For gpu_utilization the request and limit are the whole accelerators the container holds.



## OpenAPI

````yaml /api-reference/costgraph/openapi.json get /api/v1/tenant/clusters/{cluster_id}/workloads/{resource_id}/containers/{container_name}/usage
openapi: 3.0.0
info:
  description: Read and manage your CostGraph organization, spend, alerts, and settings.
  title: CostGraph API
  contact: {}
  version: '1.0'
servers:
  - url: https://api.costgraph.ai
security: []
tags:
  - name: ai
    x-group: AI
  - name: ai-serving
    x-group: AI serving
  - name: anomalies
    x-group: Anomalies
  - name: auth
    x-group: Auth
  - name: billing
    x-group: Billing
  - name: billing-export
    x-group: Billing export
  - name: budgets
    x-group: Budgets
  - name: ci
    x-group: CI
  - name: compute-recommendations
    x-group: Compute recommendations
  - name: config
    x-group: Config
  - name: cost
    x-group: Cost
  - name: gpus
    x-group: GPUs
  - name: graphai
    x-group: Graph AI
  - name: infracost
    x-group: Infracost
  - name: integrations
    x-group: Integrations
  - name: invitations
    x-group: Invitations
  - name: kubernetes-clusters
    x-group: Kubernetes clusters
  - name: marketplace
    x-group: Marketplace
  - name: network-requests
    x-group: Network requests
  - name: notifications
    x-group: Notifications
  - name: oauth
    x-group: OAuth
  - name: oauth-clients
    x-group: OAuth clients
  - name: opencost
    x-group: OpenCost
  - name: organization
    x-group: Audit log
  - name: organizations
    x-group: Organizations
  - name: placement-alternatives
    x-group: Placement alternatives
  - name: reports
    x-group: Reports
  - name: service-map
    x-group: Service map
  - name: settings
    x-group: Settings
  - name: sso
    x-group: Single sign-on
  - name: tenants
    x-group: Tenants
  - name: user
    x-group: Users
  - name: virtual-machines
    x-group: Virtual machines
  - name: virtual-tags
    x-group: Virtual tags
  - name: workflows
    x-group: Workflows
paths:
  /api/v1/tenant/clusters/{cluster_id}/workloads/{resource_id}/containers/{container_name}/usage:
    get:
      tags:
        - kubernetes-clusters
      summary: Get kubernetes cluster workload container usage
      description: >-
        Returns observed usage percentiles, the current/recommended request,
        cost and the right-sizing recommendation for a single workload
        container, scoped to one resource dimension (cpu, memory or an
        accelerator measurement) and observation window, for the tenant selected
        by the X-CostGraph-Tenant-ID header. For gpu_utilization the request and
        limit are the whole accelerators the container holds.
      parameters:
        - description: Tenant ID
          name: X-CostGraph-Tenant-ID
          in: header
          required: true
          schema:
            type: string
        - description: Kubernetes cluster ID
          name: cluster_id
          in: path
          required: true
          schema:
            type: string
        - description: Kubernetes workload resource ID
          name: resource_id
          in: path
          required: true
          schema:
            type: string
        - description: Container name
          name: container_name
          in: path
          required: true
          schema:
            type: string
        - description: >-
            Observation window. The gpu_sm_active, gpu_sm_occupancy, gpu_memory
            and gpu_memory_copy_utilization dimensions are recorded as a single
            latest observation, so they ignore this and answer with window
            latest.
          name: window
          in: query
          schema:
            type: string
            enum:
              - 7d
              - 30d
            default: 7d
        - description: Resource dimension
          name: dimension
          in: query
          schema:
            type: string
            enum:
              - cpu
              - memory
              - gpu_utilization
              - gpu_sm_active
              - gpu_sm_occupancy
              - gpu_memory
              - gpu_memory_copy_utilization
            default: memory
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/responses.SuccessResponse'
                  - type: object
                    properties:
                      data:
                        $ref: '#/components/schemas/k8scluster.WorkloadContainerUsage'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses.ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses.ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses.ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses.ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses.ErrorResponse'
      security:
        - BearerAuth: []
components:
  schemas:
    responses.SuccessResponse:
      type: object
      required:
        - message
        - status
      properties:
        data: {}
        message:
          type: string
          example: some message
        status:
          type: string
          example: success
    k8scluster.WorkloadContainerUsage:
      type: object
      required:
        - container_name
        - current_request
        - limit
        - metadata
        - recommendation
        - resource
        - stats
        - window
      properties:
        container_name:
          type: string
        current_request:
          type: number
        limit:
          type: number
        metadata:
          $ref: '#/components/schemas/k8scluster.WorkloadContainerUsageMetadata'
        recommendation:
          $ref: '#/components/schemas/k8scluster.WorkloadContainerUsageRecommendation'
        recommended_request:
          description: or null, for no recommendation
          type: number
          nullable: true
        resource:
          type: string
        stats:
          $ref: '#/components/schemas/schema.StatsRow'
        window:
          type: string
    responses.ErrorResponse:
      type: object
      required:
        - message
        - status
      properties:
        message:
          type: string
          example: some message
        status:
          type: string
          example: error
    k8scluster.WorkloadContainerUsageMetadata:
      type: object
      required:
        - current_cost
        - namespace
        - nodes
        - provider
        - replicas
        - spikiness_cv
        - usage_type
        - utilization_band
        - volatility
        - workload_kind
      properties:
        current_cost:
          type: number
        namespace:
          type: string
        nodes:
          type: array
          items:
            type: string
        provider:
          type: string
        recommended_cost:
          description: or null, for no recommendation
          type: number
          nullable: true
        replicas:
          type: integer
        spikiness_cv:
          type: number
        usage_type:
          type: string
        utilization_band:
          type: string
        volatility:
          type: string
        workload_kind:
          type: string
    k8scluster.WorkloadContainerUsageRecommendation:
      type: object
      required:
        - percent_change_in_request
        - reasons
        - recommendation
      properties:
        estimated_savings_per_replica:
          description: or null, for no recommendation
          type: number
          nullable: true
        percent_change_in_request:
          type: number
        reasons:
          type: array
          items:
            type: string
        recommendation:
          type: string
    schema.StatsRow:
      type: object
      properties:
        id:
          type: string
        last:
          type: number
        max:
          type: number
        mean:
          type: number
        min:
          type: number
        p50:
          type: number
        p90:
          type: number
        p95:
          type: number
        p99:
          type: number
        std_dev:
          type: number
        tenant_id:
          type: string
  securitySchemes:
    BearerAuth:
      description: Enter "Bearer {token}"
      type: apiKey
      name: Authorization
      in: header

````

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