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

# Find reads on connected services

> Lists the read-only requests CostGraph can make to the tenant's connected services (cloud and SaaS integrations) whose name or summary matches the query, at most 25. A service without a published API description appears once with operation_id GET, meaning any GET path. unconnected lists the services CostGraph can read or change that match the query by name or by what they offer but that the tenant has not connected; connect one from the Integrations page to use it. capacity_role keeps only the reads and changes that answer that capacity question: availability (what can be created where), quota (limits and usage), quota_increase (the change that asks for more) and quota_request_history (increases already requested). To list one provider's, pass its name as query. Requires the integrations:read scope.



## OpenAPI

````yaml /api-reference/costgraph/openapi.json post /api/v1/tenant/integration-reads/search
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/tenant/integration-reads/search:
    post:
      tags:
        - integrations
      summary: Find reads on connected services
      description: >-
        Lists the read-only requests CostGraph can make to the tenant's
        connected services (cloud and SaaS integrations) whose name or summary
        matches the query, at most 25. A service without a published API
        description appears once with operation_id GET, meaning any GET path.
        unconnected lists the services CostGraph can read or change that match
        the query by name or by what they offer but that the tenant has not
        connected; connect one from the Integrations page to use it.
        capacity_role keeps only the reads and changes that answer that capacity
        question: availability (what can be created where), quota (limits and
        usage), quota_increase (the change that asks for more) and
        quota_request_history (increases already requested). To list one
        provider's, pass its name as query. Requires the integrations:read
        scope.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/reads.SearchRequest'
        description: What to look for
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/controllers.IntegrationReadSearchResponse'
        '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'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/responses.ErrorResponse'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    reads.SearchRequest:
      type: object
      required:
        - query
      properties:
        capacity_role:
          enum:
            - availability
            - quota
            - quota_increase
            - quota_request_history
          allOf:
            - $ref: '#/components/schemas/catalog.CapacityRole'
        connection_id:
          type: string
        query:
          type: string
    controllers.IntegrationReadSearchResponse:
      type: object
      required:
        - matches
        - unconnected
      properties:
        matches:
          type: array
          items:
            $ref: '#/components/schemas/reads.SearchMatch'
        unconnected:
          type: array
          items:
            $ref: '#/components/schemas/reads.UnconnectedService'
    responses.ErrorResponse:
      type: object
      required:
        - message
        - status
      properties:
        message:
          type: string
          example: some message
        status:
          type: string
          example: error
    catalog.CapacityRole:
      type: string
      enum:
        - availability
        - quota
        - quota_increase
        - quota_request_history
      x-enum-varnames:
        - CapacityAvailability
        - CapacityQuota
        - CapacityQuotaIncrease
        - CapacityQuotaRequestHistory
    reads.SearchMatch:
      type: object
      required:
        - connection
        - connection_id
        - kind
        - operation_id
        - passthrough
        - provider
        - requires_approval
      properties:
        capacity_role:
          enum:
            - availability
            - quota
            - quota_increase
            - quota_request_history
          allOf:
            - $ref: '#/components/schemas/catalog.CapacityRole'
        connection:
          type: string
        connection_id:
          type: string
        kind:
          enum:
            - read
            - query
            - write
          allOf:
            - $ref: '#/components/schemas/catalog.Kind'
        operation_id:
          type: string
        params_schema:
          type: object
        passthrough:
          type: boolean
        provider:
          type: string
        requires_approval:
          type: boolean
        summary:
          type: string
    reads.UnconnectedService:
      type: object
      required:
        - can_change
        - can_read
        - display_name
        - provider
      properties:
        can_change:
          type: boolean
        can_read:
          type: boolean
        display_name:
          type: string
        provider:
          type: string
    catalog.Kind:
      type: string
      enum:
        - read
        - query
        - write
      x-enum-varnames:
        - KindRead
        - KindQuery
        - KindWrite
  securitySchemes:
    ApiKeyAuth:
      description: API key for machine-to-machine authentication
      type: apiKey
      name: X-API-Key
      in: header

````

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