CloudQuery syncs API

The syncs API from CloudQuery — 37 operation(s) for syncs.

Operations 56

POST /sync-destination-test-connections #
GET /sync-destination-test-connections/{sync_destination_test_connection_id} #
PATCH /sync-destination-test-connections/{sync_destination_test_connection_id} #
GET /sync-destination-test-connections/{sync_destination_test_connection_id}/logs/query #
GET /sync-destination-test-connections/{sync_destination_test_connection_id}/logs/live #
POST /sync-destination-test-connections/{sync_destination_test_connection_id}/promote #
GET /sync-destinations #
GET /sync-destinations/{sync_destination_name} #
PATCH /sync-destinations/{sync_destination_name} #
DELETE /sync-destinations/{sync_destination_name} #
GET /sync-destinations/{sync_destination_name}/syncs #
GET /sync-destinations/{sync_destination_name}/test-connections/{sync_test_connection_id} #
POST /sync-source-test-connections #
GET /sync-source-test-connections/{sync_source_test_connection_id} #
PATCH /sync-source-test-connections/{sync_source_test_connection_id} #
GET /sync-source-test-connections/{sync_source_test_connection_id}/logs/query #
GET /sync-source-test-connections/{sync_source_test_connection_id}/logs/live #
POST /sync-source-test-connections/{sync_source_test_connection_id}/promote #
POST /v2/sync-integration-test-connections #
GET /v2/sync-integrations #
POST /v2/sync-integrations #
GET /v2/sync-integrations/{sync_name} #
PATCH /v2/sync-integrations/{sync_name} #
DELETE /v2/sync-integrations/{sync_name} #
GET /sync-sources #
GET /sync-sources/{sync_source_name} #
PATCH /sync-sources/{sync_source_name} #
DELETE /sync-sources/{sync_source_name} #
GET /sync-sources/{sync_source_name}/syncs #
GET /sync-sources/{sync_source_name}/test-connections/{sync_test_connection_id} #
GET /sync-transformers #
GET /sync-transformers/{sync_transformer_name} #
PATCH /sync-transformers/{sync_transformer_name} #
DELETE /sync-transformers/{sync_transformer_name} #
GET /sync-transformers/{sync_transformer_name}/syncs #
GET /sync-transformers/{sync_transformer_name}/sync-destinations #
GET /sync-upgrades #
GET /syncs #
POST /syncs #
GET /syncs/{sync_name} #
PATCH /syncs/{sync_name} #
DELETE /syncs/{sync_name} #
GET /syncs/{sync_name}/runs #
POST /syncs/{sync_name}/runs #
GET /syncs/{sync_name}/runs/{sync_run_id} #
PATCH /syncs/{sync_name}/runs/{sync_run_id} #
GET /syncs/{sync_name}/runs/{sync_run_id}/logs/query #
GET /syncs/{sync_name}/runs/{sync_run_id}/logs/live #
GET /syncs/{sync_name}/runs/{sync_run_id}/stats #
GET /syncs/{sync_name}/runs/{sync_run_id}/tables #
POST /v2/sync-destination-test-connections #
POST /v2/sync-destinations #
GET /v2/sync-destinations #
GET /v2/sync-destinations/{sync_destination_name} #
PATCH /v2/sync-destinations/{sync_destination_name} #
DELETE /v2/sync-destinations/{sync_destination_name} #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cloudquery-syncs-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cloudquery-syncs-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    email: support@cloudquery.io
    name: CloudQuery Support Team
    url: https://cloudquery.io
  description: 'Welcome to the CloudQuery Platform API documentation! This API can be used to interact with the CloudQuery platform. As a user, the API allows you to search the CloudQuery asset inventory, run SQL queries against the data warehouse, save and load searches, and much more. As an administrator, it allows you to manage your teams, syncs, and other objects.

    ### Authentication

    The API is secured using bearer tokens. To get started, you can generate an API key for your Platform deployment from your platform dashboard. For a step-by-step guide, see: https://www.cloudquery.io/docs/cli/managing-cloudquery/deployments/generate-api-key.

    The base URL for the API depends on where your CloudQuery Platform is hosted. If running locally, this is usually http://localhost:3000/api. In a production deployment it should be an HTTPS URL. For purposes of illustration, we will assume the platform instance is available at https://cloudquery.mycompany.com. In this case, the base API endpoint will be https://cloudquery.mycompany.com/api.

    ### Example Request

    To test your connection to the API, we can use the `/plugins` endpoint. For example:

    `curl -v -H "Authorization: Bearer $CLOUDQUERY_API_KEY" \ https://cloudquery.mycompany.com/api/plugins`

    '
  license:
    name: MIT
    url: https://spdx.org/licenses/MIT
  termsOfService: https://www.cloudquery.io/terms
  title: CloudQuery Platform OpenAPI Spec admin Syncs API
  version: 1.0.0
servers:
- url: https://api.cloudquery.io
  description: Base URL declared by the provider in apis.yml (roadmap#122).
security:
- bearerAuth: []
- cookieAuth: []
tags:
- name: syncs
paths:
  /sync-destination-test-connections:
    post:
      description: Create a test destination connection.
      operationId: PlatformCreateSyncDestinationTestConnection
      tags:
      - syncs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformSyncDestinationTestConnectionCreate'
      responses:
        '201':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncDestinationTestConnection'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '422':
          $ref: '#/components/responses/PlatformUnprocessableEntity'
        '429':
          $ref: '#/components/responses/PlatformTooManyRequests'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /sync-destination-test-connections/{sync_destination_test_connection_id}:
    get:
      description: Get a sync destination test connection.
      operationId: PlatformGetSyncDestinationTestConnection
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_sync_destination_test_connection_id'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncDestinationTestConnection'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '403':
          $ref: '#/components/responses/PlatformForbidden'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
    patch:
      description: Update a sync destination test connection.
      operationId: PlatformUpdateSyncTestConnectionForSyncDestination
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_sync_destination_test_connection_id'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - status
              properties:
                status:
                  $ref: '#/components/schemas/PlatformSyncTestConnectionStatus'
                failure_reason:
                  type: string
                  description: Reason for failure
                  example: password authentication failed for user "exampleuser"
                failure_code:
                  example: INVALID_CREDENTIALS
                  type: string
                  description: Code for failure
      responses:
        '200':
          description: Updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncDestinationTestConnection'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '403':
          $ref: '#/components/responses/PlatformForbidden'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '422':
          $ref: '#/components/responses/PlatformUnprocessableEntity'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /sync-destination-test-connections/{sync_destination_test_connection_id}/logs/query:
    get:
      description: Get logs for a sync destination test connection.
      operationId: PlatformGetSyncDestinationTestConnectionLogsQuery
      tags:
      - syncs
      parameters:
      - in: header
        name: Accept
        required: false
        schema:
          type: string
      - $ref: '#/components/parameters/platform_sync_destination_test_connection_id'
      - $ref: '#/components/parameters/platform_table_filters'
      - $ref: '#/components/parameters/platform_per_page'
      - $ref: '#/components/parameters/platform_page'
      - $ref: '#/components/parameters/platform_download_file'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                required:
                - data
                - metadata
                properties:
                  data:
                    $ref: '#/components/schemas/PlatformTableData'
                  metadata:
                    $ref: '#/components/schemas/PlatformListMetadata'
            text/plain:
              schema:
                type: string
                description: Download file.
        '204':
          description: No logs available for a test connection that has not started.
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '422':
          $ref: '#/components/responses/PlatformUnprocessableEntity'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /sync-destination-test-connections/{sync_destination_test_connection_id}/logs/live:
    get:
      description: Get live logs for a sync destination test connection.
      operationId: PlatformGetSyncDestinationTestConnectionLogsLive
      tags:
      - syncs
      parameters:
      - in: header
        name: Accept
        required: false
        schema:
          type: string
      - $ref: '#/components/parameters/platform_sync_destination_test_connection_id'
      responses:
        '200':
          description: Response
          content:
            text/plain:
              schema:
                type: string
                description: Chunked response logs for a test connection that is in progress.
        '204':
          description: No logs available for a test connection that has not started.
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '422':
          $ref: '#/components/responses/PlatformUnprocessableEntity'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /sync-destination-test-connections/{sync_destination_test_connection_id}/promote:
    post:
      description: Promote a sync destination test connection to a sync destination.
      operationId: PlatformPromoteSyncDestinationTestConnection
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_sync_destination_test_connection_id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformPromoteSyncDestinationTestConnection'
      responses:
        '200':
          description: Successful response indicating that an existing sync destination was replaced.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncDestination'
        '201':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncDestination'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '422':
          $ref: '#/components/responses/PlatformUnprocessableEntity'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /sync-destinations:
    get:
      description: List all sync destination definitions.
      operationId: PlatformListSyncDestinations
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_per_page'
      - $ref: '#/components/parameters/platform_page'
      - $ref: '#/components/parameters/platform_sync_name_filter'
      - $ref: '#/components/parameters/platform_sync_generic_sort_bys'
      - $ref: '#/components/parameters/platform_sync_sort_dirs'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                required:
                - items
                - metadata
                properties:
                  items:
                    items:
                      $ref: '#/components/schemas/PlatformSyncDestination'
                    type: array
                  metadata:
                    $ref: '#/components/schemas/PlatformListMetadata'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /sync-destinations/{sync_destination_name}:
    get:
      description: Get a single sync destination definition.
      operationId: PlatformGetSyncDestination
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_sync_destination_name'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncDestination'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
    patch:
      description: Update a Sync Destination definition.
      operationId: PlatformUpdateSyncDestination
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_sync_destination_name'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformSyncDestinationUpdate'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncDestination'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '422':
          $ref: '#/components/responses/PlatformUnprocessableEntity'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
    delete:
      description: Delete a Sync Destination definition. Any syncs relying on this destination must be deleted first.
      operationId: PlatformDeleteSyncDestination
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_sync_destination_name'
      responses:
        '204':
          description: Deleted
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '422':
          $ref: '#/components/responses/PlatformUnprocessableEntity'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /sync-destinations/{sync_destination_name}/syncs:
    get:
      description: List all Syncs for a given sync destination.
      operationId: PlatformListSyncDestinationSyncs
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_sync_destination_name'
      - $ref: '#/components/parameters/platform_per_page'
      - $ref: '#/components/parameters/platform_page'
      - $ref: '#/components/parameters/platform_sync_sort_bys'
      - $ref: '#/components/parameters/platform_sync_sort_dirs'
      - $ref: '#/components/parameters/platform_sync_name_filter'
      - $ref: '#/components/parameters/platform_migration_filter'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                required:
                - items
                - metadata
                properties:
                  items:
                    items:
                      $ref: '#/components/schemas/PlatformListSync'
                    type: array
                  metadata:
                    $ref: '#/components/schemas/PlatformListMetadata'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /sync-destinations/{sync_destination_name}/test-connections/{sync_test_connection_id}:
    get:
      description: Get test connection details for sync destination.
      operationId: PlatformGetTestConnectionForSyncDestination
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_sync_destination_name'
      - $ref: '#/components/parameters/platform_sync_test_connection_id'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncTestConnection'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /sync-source-test-connections:
    post:
      description: Create a test source connection.
      operationId: PlatformCreateSyncSourceTestConnection
      tags:
      - syncs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformSyncSourceTestConnectionCreate'
      responses:
        '201':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncSourceTestConnection'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '422':
          $ref: '#/components/responses/PlatformUnprocessableEntity'
        '429':
          $ref: '#/components/responses/PlatformTooManyRequests'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /sync-source-test-connections/{sync_source_test_connection_id}:
    get:
      description: Get a sync source test connection.
      operationId: PlatformGetSyncSourceTestConnection
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_sync_source_test_connection_id'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncSourceTestConnection'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '403':
          $ref: '#/components/responses/PlatformForbidden'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
    patch:
      description: Update a sync source test connection.
      operationId: PlatformUpdateSyncTestConnectionForSyncSource
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_sync_source_test_connection_id'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - status
              properties:
                status:
                  $ref: '#/components/schemas/PlatformSyncTestConnectionStatus'
                failure_reason:
                  type: string
                  description: Reason for failure
                  example: password authentication failed for user "exampleuser"
                failure_code:
                  example: INVALID_CREDENTIALS
                  type: string
                  description: Code for failure
      responses:
        '200':
          description: Updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncSourceTestConnection'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '403':
          $ref: '#/components/responses/PlatformForbidden'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '422':
          $ref: '#/components/responses/PlatformUnprocessableEntity'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /sync-source-test-connections/{sync_source_test_connection_id}/logs/query:
    get:
      description: Get logs for a sync source test connection.
      operationId: PlatformGetSyncSourceTestConnectionLogsQuery
      tags:
      - syncs
      parameters:
      - in: header
        name: Accept
        required: false
        schema:
          type: string
      - $ref: '#/components/parameters/platform_sync_source_test_connection_id'
      - $ref: '#/components/parameters/platform_table_filters'
      - $ref: '#/components/parameters/platform_per_page'
      - $ref: '#/components/parameters/platform_page'
      - $ref: '#/components/parameters/platform_download_file'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                required:
                - data
                - metadata
                properties:
                  data:
                    $ref: '#/components/schemas/PlatformTableData'
                  metadata:
                    $ref: '#/components/schemas/PlatformListMetadata'
            text/plain:
              schema:
                type: string
                description: Download file.
        '204':
          description: No logs available for a test connection that has not started.
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '422':
          $ref: '#/components/responses/PlatformUnprocessableEntity'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /sync-source-test-connections/{sync_source_test_connection_id}/logs/live:
    get:
      description: Get live logs for a sync source test connection.
      operationId: PlatformGetSyncSourceTestConnectionLogsLive
      tags:
      - syncs
      parameters:
      - in: header
        name: Accept
        required: false
        schema:
          type: string
      - $ref: '#/components/parameters/platform_sync_source_test_connection_id'
      responses:
        '200':
          description: Response
          content:
            text/plain:
              schema:
                type: string
                description: Chunked response logs for a test connection that is in progress.
        '204':
          description: No logs available for a test connection that has not started.
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '422':
          $ref: '#/components/responses/PlatformUnprocessableEntity'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /sync-source-test-connections/{sync_source_test_connection_id}/promote:
    post:
      description: Promote a sync source test connection to a sync source.
      operationId: PlatformPromoteSyncSourceTestConnection
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_sync_source_test_connection_id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformPromoteSyncSourceTestConnection'
      responses:
        '200':
          description: Successful response indicating that an existing sync source was replaced.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncSource'
        '201':
          description: Successful response indicating that a new sync source was created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncSource'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '422':
          $ref: '#/components/responses/PlatformUnprocessableEntity'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /v2/sync-integration-test-connections:
    post:
      description: Create an integration test connection.
      operationId: PlatformCreateV2SyncIntegrationTestConnection
      tags:
      - syncs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformSyncIntegrationTestConnectionCreateV2'
      responses:
        '201':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncIntegrationTestConnectionV2'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '422':
          $ref: '#/components/responses/PlatformUnprocessableEntity'
        '429':
          $ref: '#/components/responses/PlatformTooManyRequests'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /v2/sync-integrations:
    get:
      description: List sync integrations
      operationId: PlatformListV2SyncIntegrations
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_per_page'
      - $ref: '#/components/parameters/platform_page'
      - $ref: '#/components/parameters/platform_sync_sort_bys'
      - $ref: '#/components/parameters/platform_sync_sort_dirs'
      - $ref: '#/components/parameters/platform_sync_name_filter'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                required:
                - items
                - metadata
                properties:
                  items:
                    items:
                      $ref: '#/components/schemas/PlatformSyncIntegrationExpandedV2'
                    type: array
                  metadata:
                    $ref: '#/components/schemas/PlatformListMetadata'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
    post:
      description: Create a new integration associated with a completed test connection
      operationId: PlatformCreateV2SyncIntegration
      tags:
      - syncs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformSyncIntegrationCreateV2'
      responses:
        '201':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncIntegrationV2'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '422':
          $ref: '#/components/responses/PlatformUnprocessableEntity'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /v2/sync-integrations/{sync_name}:
    get:
      description: Get a sync integration by name
      operationId: PlatformGetV2SyncIntegration
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_sync_name'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncIntegrationExpandedV2'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
    patch:
      description: Update attributes of an integration
      operationId: PlatformUpdateV2SyncIntegration
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_sync_name'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformSyncIntegrationUpdateV2'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncIntegrationV2'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '422':
          $ref: '#/components/responses/PlatformUnprocessableEntity'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
    delete:
      description: Delete an integration
      operationId: PlatformDeleteV2SyncIntegration
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_sync_name'
      - name: delete_data
        description: If true, also delete data associated with this integration from the relevant destinations.
        in: query
        required: false
        schema:
          type: boolean
          default: false
      responses:
        '204':
          description: Success
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '403':
          $ref: '#/components/responses/PlatformForbidden'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '405':
          $ref: '#/components/responses/PlatformMethodNotAllowed'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /sync-sources:
    get:
      description: List all sync source definitions.
      operationId: PlatformListSyncSources
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_per_page'
      - $ref: '#/components/parameters/platform_page'
      - $ref: '#/components/parameters/platform_sync_name_filter'
      - $ref: '#/components/parameters/platform_sync_generic_sort_bys'
      - $ref: '#/components/parameters/platform_sync_sort_dirs'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                required:
                - items
                - metadata
                properties:
                  items:
                    items:
                      $ref: '#/components/schemas/PlatformSyncSource'
                    type: array
                  metadata:
                    $ref: '#/components/schemas/PlatformListMetadata'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
  /sync-sources/{sync_source_name}:
    get:
      description: Get a single sync source definition.
      operationId: PlatformGetSyncSource
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_sync_source_name'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncSource'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
    patch:
      description: Update a Sync Source definition.
      operationId: PlatformUpdateSyncSource
      tags:
      - syncs
      parameters:
      - $ref: '#/components/parameters/platform_sync_source_name'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformSyncSourceUpdate'
      responses:
        '200':
          description: Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformSyncSource'
        '400':
          $ref: '#/components/responses/PlatformBadRequest'
        '401':
          $ref: '#/components/responses/PlatformRequiresAuthentication'
        '404':
          $ref: '#/components/responses/PlatformNotFound'
        '422':
          $ref: '#/components/responses/PlatformUnprocessableEntity'
        '500':
          $ref: '#/components/responses/PlatformInternalError'
    delete:
      description: Delete a Sync Source definition. Any syncs relying on this source must be deleted first.
      operationId: PlatformDeleteSyncSource
      tags:
      - syncs
      parameters

# --- truncated at 32 KB (130 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cloudquery/refs/heads/main/openapi/cloudquery-syncs-api-openapi.yml