> ## 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.

# Use a Grafana Cloud cost connection for metrics

> Lets an existing Grafana Cloud cost connection also serve Mac metrics, reusing the token stored with it, so no second token is entered. The settings are the same as for connecting Grafana, without a token, and are checked the same way: the connection is refused when the token cannot read metrics or host metrics cannot be read. Nothing changes when the check fails. On success metrics is added to the connection's connection_modes and cost stays on.



## OpenAPI

````yaml /api-reference/costgraph/openapi.json post /api/v1/integrations/grafana/from-connection/{id}
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: context-graph
    x-group: Context graph
  - name: cost
    x-group: Cost
  - name: gpus
    x-group: GPUs
  - name: graphai
    x-group: Graph AI
  - 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: ticketing
    x-group: Ticketing
  - 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/integrations/grafana/from-connection/{id}:
    post:
      tags:
        - integrations
      summary: Use a Grafana Cloud cost connection for metrics
      description: >-
        Lets an existing Grafana Cloud cost connection also serve Mac metrics,
        reusing the token stored with it, so no second token is entered. The
        settings are the same as for connecting Grafana, without a token, and
        are checked the same way: the connection is refused when the token
        cannot read metrics or host metrics cannot be read. Nothing changes when
        the check fails. On success metrics is added to the connection's
        connection_modes and cost stays on.
      parameters:
        - description: >-
            Connection id from the id field of the connection list, not the fpc_
            connection_id
          name: id
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/integrations.grafanaMetricsSettings'
        description: Metrics settings
        required: true
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/responses.SuccessResponse'
                  - type: object
                    properties:
                      data:
                        $ref: >-
                          #/components/schemas/integrations.grafanaConnectResponse
        '400':
          description: Bad Request
          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'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses.ErrorResponse'
      security:
        - BearerAuth: []
components:
  schemas:
    integrations.grafanaMetricsSettings:
      type: object
      required:
        - auth_mode
        - url
      properties:
        auth_mode:
          type: string
          enum:
            - basic
            - grafana_service_account
        datasource_uid:
          type: string
        extra_matchers:
          type: string
        label_filters:
          type: object
          additionalProperties:
            type: string
        url:
          type: string
        username:
          type: string
    responses.SuccessResponse:
      type: object
      required:
        - message
        - status
      properties:
        data: {}
        message:
          type: string
          example: some message
        status:
          type: string
          example: success
    integrations.grafanaConnectResponse:
      type: object
      properties:
        source:
          $ref: '#/components/schemas/integrations.grafanaSourceResponse'
        warnings:
          type: array
          items:
            type: string
    responses.ErrorResponse:
      type: object
      required:
        - message
        - status
      properties:
        message:
          type: string
          example: some message
        status:
          type: string
          example: error
    integrations.grafanaSourceResponse:
      type: object
      properties:
        auth_mode:
          type: string
          enum:
            - basic
            - grafana_service_account
          nullable: true
        connection_id:
          type: string
          nullable: true
        connection_modes:
          type: array
          items:
            type: string
            enum:
              - cost
              - metrics
          nullable: true
        datasource_uid:
          type: string
          nullable: true
        extra_matchers:
          type: string
          nullable: true
        label_filters:
          type: object
          additionalProperties:
            type: string
          nullable: true
        public_id:
          type: string
          nullable: true
        scrape_config:
          $ref: '#/components/schemas/grafana.ScrapeSnippets'
        updated_at:
          type: string
          nullable: true
        url:
          type: string
          nullable: true
        username:
          type: string
          nullable: true
    grafana.ScrapeSnippets:
      type: object
      properties:
        alloy:
          type: string
        prometheus:
          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.