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

# Provider detail

> One provider's page for a period: its catalogue entry, the tenant's connections with their last sync, the sections that apply to it, usage per canonical unit with cost per unit, and value signals. sections is derived from the data itself: seats for seat or user-month usage, tokens for token usage, ci_minutes for CI job minutes, commitments when commitment discounts appear, recommendations when the provider has active recommendations. seats.active is null when the provider reports no seat activity. Amounts are in their billing currency, one entry per currency. Returns 404 when the provider is neither in the catalogue nor connected nor billed in the period.



## OpenAPI

````yaml /api-reference/costgraph/openapi.json get /api/v1/tenant/cost/providers/{provider}
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/cost/providers/{provider}:
    get:
      tags:
        - cost
      summary: Provider detail
      description: >-
        One provider's page for a period: its catalogue entry, the tenant's
        connections with their last sync, the sections that apply to it, usage
        per canonical unit with cost per unit, and value signals. sections is
        derived from the data itself: seats for seat or user-month usage, tokens
        for token usage, ci_minutes for CI job minutes, commitments when
        commitment discounts appear, recommendations when the provider has
        active recommendations. seats.active is null when the provider reports
        no seat activity. Amounts are in their billing currency, one entry per
        currency. Returns 404 when the provider is neither in the catalogue nor
        connected nor billed in the period.
      parameters:
        - description: Tenant ID
          name: X-CostGraph-Tenant-ID
          in: header
          required: true
          schema:
            type: string
        - description: Provider slug, as cost rows carry it (e.g. aws, github, openrouter)
          name: provider
          in: path
          required: true
          schema:
            type: string
        - description: Cost period; defaults to month_to_date
          name: period
          in: query
          schema:
            type: string
            enum:
              - month_to_date
              - last_7d
              - last_30d
              - calendar_month
              - custom
        - description: >-
            Closed calendar month in YYYY-MM format; required when
            period=calendar_month
          name: month
          in: query
          schema:
            type: string
        - description: Window start in RFC3339 format; required when period=custom
          name: start
          in: query
          schema:
            type: string
        - description: Window end in RFC3339 format; required when period=custom
          name: end
          in: query
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/responses.SuccessResponse'
                  - type: object
                    properties:
                      data:
                        $ref: '#/components/schemas/controllers.costProviderResponse'
        '400':
          description: Bad Request
          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
    controllers.costProviderResponse:
      type: object
      properties:
        ciMinutes:
          type: number
        connections:
          type: array
          items:
            $ref: '#/components/schemas/cost.ProviderConnection'
        days:
          type: array
          items:
            type: string
        metadata:
          $ref: '#/components/schemas/controllers.costProviderMetadata'
        provider:
          type: string
        seats:
          $ref: '#/components/schemas/cost.ProviderSeats'
        sections:
          type: array
          items:
            type: string
        tokensByModel:
          type: array
          items:
            $ref: '#/components/schemas/cost.ProviderModelUsage'
        usage:
          type: array
          items:
            $ref: '#/components/schemas/cost.ProviderUsage'
    responses.ErrorResponse:
      type: object
      required:
        - message
        - status
      properties:
        message:
          type: string
          example: some message
        status:
          type: string
          example: error
    cost.ProviderConnection:
      type: object
      properties:
        connectionId:
          type: string
        displayName:
          type: string
        id:
          type: string
        lastSyncError:
          type: string
        lastSyncedAt:
          type: string
        providerAccountId:
          type: string
        status:
          type: string
    controllers.costProviderMetadata:
      type: object
      properties:
        category:
          type: string
        docsUrl:
          type: string
        grain:
          type: string
        name:
          type: string
        slug:
          type: string
    cost.ProviderSeats:
      type: object
      properties:
        active:
          type: integer
        assigned:
          type: integer
    cost.ProviderModelUsage:
      type: object
      properties:
        cost:
          type: number
          x-semantic: costAmount
        currency:
          type: string
        model:
          type: string
        tokens:
          type: number
    cost.ProviderUsage:
      type: object
      properties:
        cost:
          type: number
          x-semantic: costAmount
        costPerUnit:
          type: number
          x-semantic: costAmount
        currency:
          type: string
        quantity:
          type: number
        unit:
          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.