Harness Cloud Cost Management API

The Harness Cloud Cost Management (CCM) API provides programmatic access to cloud cost data, perspectives, budgets, anomaly detection, and AI-driven recommendations across AWS, Azure, GCP, and Kubernetes environments. CCM enables FinOps practices by exposing granular cost details across namespaces, nodes, pods, accounts, and services.

Run with Naftiko HarnessCloudCostAPI

What You Can Do

GET
Listperspectives — List perspectives
/ccm/api/perspective
POST
Createperspective — Create a perspective
/ccm/api/perspective
GET
Getperspective — Get a perspective
/ccm/api/perspective/{perspectiveId}
PUT
Updateperspective — Update a perspective
/ccm/api/perspective/{perspectiveId}
DELETE
Deleteperspective — Delete a perspective
/ccm/api/perspective/{perspectiveId}
GET
Listbudgets — List budgets
/ccm/api/budgets
POST
Createbudget — Create a budget
/ccm/api/budgets
GET
Getbudget — Get a budget
/ccm/api/budgets/{budgetId}
PUT
Updatebudget — Update a budget
/ccm/api/budgets/{budgetId}
DELETE
Deletebudget — Delete a budget
/ccm/api/budgets/{budgetId}
GET
Listrecommendations — List cost recommendations
/ccm/api/recommendation/overview/list
GET
Getrecommendation — Get a recommendation
/ccm/api/recommendation/{recommendationId}
GET
Listanomalies — List anomalies
/ccm/api/anomaly
GET
Getanomaly — Get an anomaly
/ccm/api/anomaly/{anomalyId}
GET
Listcostcategories — List cost categories
/ccm/api/business-mapping
POST
Createcostcategory — Create a cost category
/ccm/api/business-mapping
GET
Listconnectors — List connectors
/ng/api/connectors

MCP Tools

listperspectives

List perspectives

read-only idempotent
createperspective

Create a perspective

getperspective

Get a perspective

read-only idempotent
updateperspective

Update a perspective

idempotent
deleteperspective

Delete a perspective

idempotent
listbudgets

List budgets

read-only idempotent
createbudget

Create a budget

getbudget

Get a budget

read-only idempotent
updatebudget

Update a budget

idempotent
deletebudget

Delete a budget

idempotent
listrecommendations

List cost recommendations

read-only idempotent
getrecommendation

Get a recommendation

read-only idempotent
listanomalies

List anomalies

read-only idempotent
getanomaly

Get an anomaly

read-only idempotent
listcostcategories

List cost categories

read-only idempotent
createcostcategory

Create a cost category

listconnectors

List connectors

read-only idempotent

Capability Spec

harness-cloud-cost-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Harness Cloud Cost Management API
  description: The Harness Cloud Cost Management (CCM) API provides programmatic access to cloud cost data, perspectives,
    budgets, anomaly detection, and AI-driven recommendations across AWS, Azure, GCP, and Kubernetes environments. CCM enables
    FinOps practices by exposing granular cost details across namespaces, nodes, pods, accounts, and services.
  tags:
  - Harness
  - Cloud
  - Cost
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: harness-cloud-cost
    baseUri: https://app.harness.io
    description: Harness Cloud Cost Management API HTTP API.
    authentication:
      type: apikey
      in: header
      name: x-api-key
      value: '{{HARNESS_CLOUD_COST_TOKEN}}'
    resources:
    - name: ccm-api-perspective
      path: /ccm/api/perspective
      operations:
      - name: listperspectives
        method: GET
        description: List perspectives
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createperspective
        method: POST
        description: Create a perspective
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: ccm-api-perspective-perspectiveid
      path: /ccm/api/perspective/{perspectiveId}
      operations:
      - name: getperspective
        method: GET
        description: Get a perspective
        inputParameters:
        - name: perspectiveId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updateperspective
        method: PUT
        description: Update a perspective
        inputParameters:
        - name: perspectiveId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deleteperspective
        method: DELETE
        description: Delete a perspective
        inputParameters:
        - name: perspectiveId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: ccm-api-budgets
      path: /ccm/api/budgets
      operations:
      - name: listbudgets
        method: GET
        description: List budgets
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createbudget
        method: POST
        description: Create a budget
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: ccm-api-budgets-budgetid
      path: /ccm/api/budgets/{budgetId}
      operations:
      - name: getbudget
        method: GET
        description: Get a budget
        inputParameters:
        - name: budgetId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updatebudget
        method: PUT
        description: Update a budget
        inputParameters:
        - name: budgetId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deletebudget
        method: DELETE
        description: Delete a budget
        inputParameters:
        - name: budgetId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: ccm-api-recommendation-overview-list
      path: /ccm/api/recommendation/overview/list
      operations:
      - name: listrecommendations
        method: GET
        description: List cost recommendations
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: ccm-api-recommendation-recommendationid
      path: /ccm/api/recommendation/{recommendationId}
      operations:
      - name: getrecommendation
        method: GET
        description: Get a recommendation
        inputParameters:
        - name: recommendationId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: ccm-api-anomaly
      path: /ccm/api/anomaly
      operations:
      - name: listanomalies
        method: GET
        description: List anomalies
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: ccm-api-anomaly-anomalyid
      path: /ccm/api/anomaly/{anomalyId}
      operations:
      - name: getanomaly
        method: GET
        description: Get an anomaly
        inputParameters:
        - name: anomalyId
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: ccm-api-business-mapping
      path: /ccm/api/business-mapping
      operations:
      - name: listcostcategories
        method: GET
        description: List cost categories
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createcostcategory
        method: POST
        description: Create a cost category
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: ng-api-connectors
      path: /ng/api/connectors
      operations:
      - name: listconnectors
        method: GET
        description: List connectors
        inputParameters:
        - name: type
          in: query
          type: string
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: harness-cloud-cost-rest
    description: REST adapter for Harness Cloud Cost Management API.
    resources:
    - path: /ccm/api/perspective
      name: listperspectives
      operations:
      - method: GET
        name: listperspectives
        description: List perspectives
        call: harness-cloud-cost.listperspectives
        outputParameters:
        - type: object
          mapping: $.
    - path: /ccm/api/perspective
      name: createperspective
      operations:
      - method: POST
        name: createperspective
        description: Create a perspective
        call: harness-cloud-cost.createperspective
        outputParameters:
        - type: object
          mapping: $.
    - path: /ccm/api/perspective/{perspectiveId}
      name: getperspective
      operations:
      - method: GET
        name: getperspective
        description: Get a perspective
        call: harness-cloud-cost.getperspective
        with:
          perspectiveId: rest.perspectiveId
        outputParameters:
        - type: object
          mapping: $.
    - path: /ccm/api/perspective/{perspectiveId}
      name: updateperspective
      operations:
      - method: PUT
        name: updateperspective
        description: Update a perspective
        call: harness-cloud-cost.updateperspective
        with:
          perspectiveId: rest.perspectiveId
        outputParameters:
        - type: object
          mapping: $.
    - path: /ccm/api/perspective/{perspectiveId}
      name: deleteperspective
      operations:
      - method: DELETE
        name: deleteperspective
        description: Delete a perspective
        call: harness-cloud-cost.deleteperspective
        with:
          perspectiveId: rest.perspectiveId
        outputParameters:
        - type: object
          mapping: $.
    - path: /ccm/api/budgets
      name: listbudgets
      operations:
      - method: GET
        name: listbudgets
        description: List budgets
        call: harness-cloud-cost.listbudgets
        outputParameters:
        - type: object
          mapping: $.
    - path: /ccm/api/budgets
      name: createbudget
      operations:
      - method: POST
        name: createbudget
        description: Create a budget
        call: harness-cloud-cost.createbudget
        outputParameters:
        - type: object
          mapping: $.
    - path: /ccm/api/budgets/{budgetId}
      name: getbudget
      operations:
      - method: GET
        name: getbudget
        description: Get a budget
        call: harness-cloud-cost.getbudget
        with:
          budgetId: rest.budgetId
        outputParameters:
        - type: object
          mapping: $.
    - path: /ccm/api/budgets/{budgetId}
      name: updatebudget
      operations:
      - method: PUT
        name: updatebudget
        description: Update a budget
        call: harness-cloud-cost.updatebudget
        with:
          budgetId: rest.budgetId
        outputParameters:
        - type: object
          mapping: $.
    - path: /ccm/api/budgets/{budgetId}
      name: deletebudget
      operations:
      - method: DELETE
        name: deletebudget
        description: Delete a budget
        call: harness-cloud-cost.deletebudget
        with:
          budgetId: rest.budgetId
        outputParameters:
        - type: object
          mapping: $.
    - path: /ccm/api/recommendation/overview/list
      name: listrecommendations
      operations:
      - method: GET
        name: listrecommendations
        description: List cost recommendations
        call: harness-cloud-cost.listrecommendations
        outputParameters:
        - type: object
          mapping: $.
    - path: /ccm/api/recommendation/{recommendationId}
      name: getrecommendation
      operations:
      - method: GET
        name: getrecommendation
        description: Get a recommendation
        call: harness-cloud-cost.getrecommendation
        with:
          recommendationId: rest.recommendationId
        outputParameters:
        - type: object
          mapping: $.
    - path: /ccm/api/anomaly
      name: listanomalies
      operations:
      - method: GET
        name: listanomalies
        description: List anomalies
        call: harness-cloud-cost.listanomalies
        outputParameters:
        - type: object
          mapping: $.
    - path: /ccm/api/anomaly/{anomalyId}
      name: getanomaly
      operations:
      - method: GET
        name: getanomaly
        description: Get an anomaly
        call: harness-cloud-cost.getanomaly
        with:
          anomalyId: rest.anomalyId
        outputParameters:
        - type: object
          mapping: $.
    - path: /ccm/api/business-mapping
      name: listcostcategories
      operations:
      - method: GET
        name: listcostcategories
        description: List cost categories
        call: harness-cloud-cost.listcostcategories
        outputParameters:
        - type: object
          mapping: $.
    - path: /ccm/api/business-mapping
      name: createcostcategory
      operations:
      - method: POST
        name: createcostcategory
        description: Create a cost category
        call: harness-cloud-cost.createcostcategory
        outputParameters:
        - type: object
          mapping: $.
    - path: /ng/api/connectors
      name: listconnectors
      operations:
      - method: GET
        name: listconnectors
        description: List connectors
        call: harness-cloud-cost.listconnectors
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: harness-cloud-cost-mcp
    transport: http
    description: MCP adapter for Harness Cloud Cost Management API for AI agent use.
    tools:
    - name: listperspectives
      description: List perspectives
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: harness-cloud-cost.listperspectives
      outputParameters:
      - type: object
        mapping: $.
    - name: createperspective
      description: Create a perspective
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: harness-cloud-cost.createperspective
      outputParameters:
      - type: object
        mapping: $.
    - name: getperspective
      description: Get a perspective
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: harness-cloud-cost.getperspective
      with:
        perspectiveId: tools.perspectiveId
      inputParameters:
      - name: perspectiveId
        type: string
        description: perspectiveId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: updateperspective
      description: Update a perspective
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: harness-cloud-cost.updateperspective
      with:
        perspectiveId: tools.perspectiveId
      inputParameters:
      - name: perspectiveId
        type: string
        description: perspectiveId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: deleteperspective
      description: Delete a perspective
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: harness-cloud-cost.deleteperspective
      with:
        perspectiveId: tools.perspectiveId
      inputParameters:
      - name: perspectiveId
        type: string
        description: perspectiveId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: listbudgets
      description: List budgets
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: harness-cloud-cost.listbudgets
      outputParameters:
      - type: object
        mapping: $.
    - name: createbudget
      description: Create a budget
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: harness-cloud-cost.createbudget
      outputParameters:
      - type: object
        mapping: $.
    - name: getbudget
      description: Get a budget
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: harness-cloud-cost.getbudget
      with:
        budgetId: tools.budgetId
      inputParameters:
      - name: budgetId
        type: string
        description: budgetId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: updatebudget
      description: Update a budget
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: harness-cloud-cost.updatebudget
      with:
        budgetId: tools.budgetId
      inputParameters:
      - name: budgetId
        type: string
        description: budgetId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: deletebudget
      description: Delete a budget
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: harness-cloud-cost.deletebudget
      with:
        budgetId: tools.budgetId
      inputParameters:
      - name: budgetId
        type: string
        description: budgetId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: listrecommendations
      description: List cost recommendations
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: harness-cloud-cost.listrecommendations
      outputParameters:
      - type: object
        mapping: $.
    - name: getrecommendation
      description: Get a recommendation
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: harness-cloud-cost.getrecommendation
      with:
        recommendationId: tools.recommendationId
      inputParameters:
      - name: recommendationId
        type: string
        description: recommendationId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: listanomalies
      description: List anomalies
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: harness-cloud-cost.listanomalies
      outputParameters:
      - type: object
        mapping: $.
    - name: getanomaly
      description: Get an anomaly
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: harness-cloud-cost.getanomaly
      with:
        anomalyId: tools.anomalyId
      inputParameters:
      - name: anomalyId
        type: string
        description: anomalyId
        required: true
      outputParameters:
      - type: object
        mapping: $.
    - name: listcostcategories
      description: List cost categories
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: harness-cloud-cost.listcostcategories
      outputParameters:
      - type: object
        mapping: $.
    - name: createcostcategory
      description: Create a cost category
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: harness-cloud-cost.createcostcategory
      outputParameters:
      - type: object
        mapping: $.
    - name: listconnectors
      description: List connectors
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: harness-cloud-cost.listconnectors
      with:
        type: tools.type
      inputParameters:
      - name: type
        type: string
        description: type
      outputParameters:
      - type: object
        mapping: $.
binds:
- namespace: env
  keys:
    HARNESS_CLOUD_COST_TOKEN: HARNESS_CLOUD_COST_TOKEN