---
title: "ValidateIntegration"
method: POST
path: "/v1.1/test/validate_integration"
tags: ["ControlService"]
---

# ValidateIntegration

`POST /v1.1/test/validate_integration`

Validates an Integration and returns it if valid, or returns an error with missing fields.

## Request body

- ProtobufControlpbV1ValidateIntegrationRequest
  - `integration` union
    - object, nullable
    - ProtobufStreamingpbV1Integration
      - `connection` union
        - object, nullable
        - ProtobufStreamingpbV1SDK
          - `adobeBdia` union
            - object, nullable
            - ProtobufStreamingpbV1AdobeBDIA
              - …
          - `amazonDataFirehose` union
            - object, nullable
            - ProtobufStreamingpbV1AmazonDataFirehose
              - …
          - `amazonKinesis` union
            - object, nullable
            - ProtobufStreamingpbV1AmazonKinesis
              - …
          - `blob` union
            - object, nullable
            - ProtobufStreamingpbV1Blob
              - …
          - `gcs` union
            - object, nullable
            - ProtobufStreamingpbV1GCS
              - …
          - `googleAdsAudience` union
            - object, nullable
            - ProtobufStreamingpbV1GoogleAdsAudience
              - …
          - `googleBigqueryStreaming` union — field names should match valid integration names
            - object, nullable
            - ProtobufStreamingpbV1BigQueryStreaming
              - …
          - `googleCm360` union
            - object, nullable
            - ProtobufStreamingpbV1GoogleCM360
              - …
          - `googlePubsub` union
            - object, nullable
            - ProtobufStreamingpbV1PubSub
              - …
          - `iterable` union
            - object, nullable
            - ProtobufStreamingpbV1Iterable
              - …
          - `kafka` union
            - object, nullable
            - ProtobufStreamingpbV1Kafka
              - …
          - `legacy` string, byte — Legacy is arbitrary JSON configuration used in some environments like Cloud that require using Segment's nodejs libraries to deliver events
          - `params` union[], nullable
            - union
              - …
          - `pipelineRouter` union
            - object, nullable
            - ProtobufStreamingpbV1PipelineRouter
          - `rasp` union
            - object, nullable
            - ProtobufStreamingpbV1Rasp
              - …
          - `s3` union
            - object, nullable
            - ProtobufStreamingpbV1S3
              - …
          - `snowflake` union
            - object, nullable
            - ProtobufStreamingpbV1Snowflake
              - …
          - `stdout` union
            - object, nullable
            - ProtobufStreamingpbV1Stdout
          - `testError` union
            - object, nullable
            - ProtobufStreamingpbV1TestError
              - …
          - `testTimeout` union
            - object, nullable
            - ProtobufStreamingpbV1TestTimeout
              - …
      - `consent` union
        - object, nullable
        - ProtobufStreamingpbV1Consent
          - `category` string
          - `mode` 'CONSENT_MODE_UNSPECIFIED' | 'CONSENT_MODE_ACE' | 'CONSENT_MODE_EXTERNAL' — ConsentMode controls how consent is enforced for this integration. ACE ("Advance Consent Enforcement") - consent is enforced against the configured `category` and events without the granted category are dropped. EXTERNAL - consent is enforced externally (e.g., by the destination or a separate CMP), and `category` must be empty. Events will pass through without consent checks. UNSPECIFIED is the default and is treated as ACE for back-compat.
      - `delayEvent` union
        - object, nullable
        - ProtobufStreamingpbV1DelayEvent
          - `expression` union — The expression must return a number. Returning 0 will not delay the event.
            - object, nullable
            - ProtobufStreamingpbV1Expression
              - …
      - `description` string
      - `disabled` boolean
      - `endpointSchema` union
        - object, nullable
        - ProtobufStreamingpbV1EndpointSchema
          - `default` union
            - object, nullable
            - ProtobufStreamingpbV1HTTPConnection
              - …
          - `eventSpecific` object, nullable
          - `params` union[], nullable
            - union
              - …
      - `id` string
      - `integrationName` string
      - `modes` string[], nullable — Options for altering integration processing behavior. Recommended for advanced use only.
      - `revision` union
        - object, nullable
        - ProtobufStreamingpbV1Revision
          - `id` string
      - `scope` 'INTEGRATION_SCOPE_UNSPECIFIED' | 'INTEGRATION_SCOPE_PUBLIC' | 'INTEGRATION_SCOPE_INTERNAL'
      - `secretRef` string — UUID of secret object for resolving $$secret.KEY$$ patterns anywhere within the integration.
      - `transformStages` union[], nullable
        - union
          - object, nullable
          - ProtobufStreamingpbV1TransformStage
            - `data` union
              - …
            - `desc` string
            - `name` string
            - `outputContentType` string

## Response `200`

OK

- ProtobufControlpbV1ValidateIntegrationResponse
  - `integration` union
    - object, nullable
    - ProtobufStreamingpbV1Integration
      - `connection` union
        - object, nullable
        - ProtobufStreamingpbV1SDK
          - `adobeBdia` union
            - object, nullable
            - ProtobufStreamingpbV1AdobeBDIA
              - …
          - `amazonDataFirehose` union
            - object, nullable
            - ProtobufStreamingpbV1AmazonDataFirehose
              - …
          - `amazonKinesis` union
            - object, nullable
            - ProtobufStreamingpbV1AmazonKinesis
              - …
          - `blob` union
            - object, nullable
            - ProtobufStreamingpbV1Blob
              - …
          - `gcs` union
            - object, nullable
            - ProtobufStreamingpbV1GCS
              - …
          - `googleAdsAudience` union
            - object, nullable
            - ProtobufStreamingpbV1GoogleAdsAudience
              - …
          - `googleBigqueryStreaming` union — field names should match valid integration names
            - object, nullable
            - ProtobufStreamingpbV1BigQueryStreaming
              - …
          - `googleCm360` union
            - object, nullable
            - ProtobufStreamingpbV1GoogleCM360
              - …
          - `googlePubsub` union
            - object, nullable
            - ProtobufStreamingpbV1PubSub
              - …
          - `iterable` union
            - object, nullable
            - ProtobufStreamingpbV1Iterable
              - …
          - `kafka` union
            - object, nullable
            - ProtobufStreamingpbV1Kafka
              - …
          - `legacy` string, byte — Legacy is arbitrary JSON configuration used in some environments like Cloud that require using Segment's nodejs libraries to deliver events
          - `params` union[], nullable
            - union
              - …
          - `pipelineRouter` union
            - object, nullable
            - ProtobufStreamingpbV1PipelineRouter
          - `rasp` union
            - object, nullable
            - ProtobufStreamingpbV1Rasp
              - …
          - `s3` union
            - object, nullable
            - ProtobufStreamingpbV1S3
              - …
          - `snowflake` union
            - object, nullable
            - ProtobufStreamingpbV1Snowflake
              - …
          - `stdout` union
            - object, nullable
            - ProtobufStreamingpbV1Stdout
          - `testError` union
            - object, nullable
            - ProtobufStreamingpbV1TestError
              - …
          - `testTimeout` union
            - object, nullable
            - ProtobufStreamingpbV1TestTimeout
              - …
      - `consent` union
        - object, nullable
        - ProtobufStreamingpbV1Consent
          - `category` string
          - `mode` 'CONSENT_MODE_UNSPECIFIED' | 'CONSENT_MODE_ACE' | 'CONSENT_MODE_EXTERNAL' — ConsentMode controls how consent is enforced for this integration. ACE ("Advance Consent Enforcement") - consent is enforced against the configured `category` and events without the granted category are dropped. EXTERNAL - consent is enforced externally (e.g., by the destination or a separate CMP), and `category` must be empty. Events will pass through without consent checks. UNSPECIFIED is the default and is treated as ACE for back-compat.
      - `delayEvent` union
        - object, nullable
        - ProtobufStreamingpbV1DelayEvent
          - `expression` union — The expression must return a number. Returning 0 will not delay the event.
            - object, nullable
            - ProtobufStreamingpbV1Expression
              - …
      - `description` string
      - `disabled` boolean
      - `endpointSchema` union
        - object, nullable
        - ProtobufStreamingpbV1EndpointSchema
          - `default` union
            - object, nullable
            - ProtobufStreamingpbV1HTTPConnection
              - …
          - `eventSpecific` object, nullable
          - `params` union[], nullable
            - union
              - …
      - `id` string
      - `integrationName` string
      - `modes` string[], nullable — Options for altering integration processing behavior. Recommended for advanced use only.
      - `revision` union
        - object, nullable
        - ProtobufStreamingpbV1Revision
          - `id` string
      - `scope` 'INTEGRATION_SCOPE_UNSPECIFIED' | 'INTEGRATION_SCOPE_PUBLIC' | 'INTEGRATION_SCOPE_INTERNAL'
      - `secretRef` string — UUID of secret object for resolving $$secret.KEY$$ patterns anywhere within the integration.
      - `transformStages` union[], nullable
        - union
          - object, nullable
          - ProtobufStreamingpbV1TransformStage
            - `data` union
              - …
            - `desc` string
            - `name` string
            - `outputContentType` string

## Other responses

- `4XX` — Something is wrong with your request such as missing or invalid data. Correct your request and try again.
- `5XX` — Internal server error. Try again later or reach out to MetaRouter support.

---

[API](https://skmtc.net/metarouter/apis/control-api.md) · [All operations](https://skmtc.net/metarouter/apis/control-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/metarouter/control-api/versions/5afc05bfaaa2/schema)
