---
title: "Integration Instance Proxy Request"
url: "https://us-prod.jeffyongtaotang.com/apis/konnect-service-catalog-1/versions/cdbef9b7-686c-4189-bbc8-55c727a972e8/operations/integration-instance-proxy-request"
---

> Full API specification: https://us-prod.jeffyongtaotang.com/apis/konnect-service-catalog-1/versions/cdbef9b7-686c-4189-bbc8-55c727a972e8.md

# Integration Instance Proxy Request

`POST` `/integration-instances/{integrationInstance}/proxy`

Operation ID: `integration-instance-proxy-request`

Proxies a request to an external API for the integration instance.

## Path parameters

- `integrationInstance` (string, required) - The `id` of the integration instance.

## Request body (required)

Content types: `application/json`

## Responses

- `400` - Error response indicating the proxy request could not be sent due to invalid state of the request body or integration instance
- `401` - Unauthorized
- `403` - Forbidden
- `404` - Not Found
- `2XX` - 2XX response code returned from the proxied API
- `3XX` - 3XX response code returned from the proxied API
- `4XX` - 4XX response code returned from the proxied API

## OpenAPI definition

```yaml
openapi: 3.0.3
info:
  title: Konnect Service Catalog
  version: 1.3.0
servers:
  - url: https://us.api.konghq.com/v1
    description: United-States Production region
  - url: https://eu.api.konghq.com/v1
    description: Europe Production region
  - url: https://au.api.konghq.com/v1
    description: Australia Production region
  - url: https://me.api.konghq.com/v1
    description: Middle-East Production region
  - url: https://in.api.konghq.com/v1
    description: India Production region
  - url: https://sg.api.konghq.com/v1
    description: Singapore Production region
paths:
  /integration-instances/{integrationInstance}/proxy:
    parameters:
      - schema:
          type: string
          example: 3321067c-407f-417b-8aac-cd2c5ec92d85
        name: integrationInstance
        in: path
        required: true
        description: The `id` of the integration instance.
    post:
      x-unstable: true
      x-internal: true
      summary: Integration Instance Proxy Request
      operationId: integration-instance-proxy-request
      description: Proxies a request to an external API for the integration instance.
      requestBody:
        $ref: "#/components/requestBodies/IntegrationInstanceProxyBody"
      responses:
        "400":
          description: >
            Error response indicating the proxy request could not be sent due to
            invalid state of the request body or integration instance
          content:
            application/problem+json:
              schema:
                anyOf:
                  - $ref: "#/components/schemas/BadRequestError"
                  - $ref: "#/components/schemas/IntegrationUnauthorizedError"
              examples:
                Bad Request:
                  $ref: "#/components/examples/BadRequestError"
                Integration Not Authorized:
                  $ref: "#/components/examples/IntegrationNotAuthorizedError"
        "401":
          $ref: "#/components/responses/Unauthorized"
        "403":
          $ref: "#/components/responses/Forbidden"
        "404":
          description: Not Found
          content:
            application/problem+json:
              schema:
                anyOf:
                  - $ref: "#/components/schemas/NotFoundError"
                  - $ref: "#/components/schemas/IntegrationNotInstalledError"
              examples:
                Not Found:
                  $ref: "#/components/examples/NotFoundExample"
                Integration Not Installed:
                  $ref: "#/components/examples/IntegrationNotInstalledError"
        2XX:
          description: 2XX response code returned from the proxied API
          headers:
            x-service-hub-integration-proxy:
              schema:
                type: boolean
                description: When `true`, indicates that the response comes from upstream APIs.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
        3XX:
          description: 3XX response code returned from the proxied API
          headers:
            x-service-hub-integration-proxy:
              schema:
                type: boolean
                description: When `true`, indicates that the response comes from upstream APIs.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
        4XX:
          description: 4XX response code returned from the proxied API
          headers:
            x-service-hub-integration-proxy:
              schema:
                type: boolean
                description: When `true`, indicates that the response comes from upstream APIs.
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
      tags:
        - Integration Instance Proxy
security:
  - konnectAccessToken: []
  - personalAccessToken: []
  - systemAccountAccessToken: []
components:
  requestBodies:
    IntegrationInstanceProxyBody:
      description: Request body schema for an integration instance proxy request.
      required: true
      content:
        application/json:
          schema:
            type: object
            additionalProperties: false
            properties:
              method:
                type: string
                enum:
                  - DELETE
                  - GET
                  - PATCH
                  - POST
                  - PUT
                description: The HTTP request method.
                example: GET
              base_url:
                type: string
                format: uri
                description: The base URL of the proxied API as defined in the integration
                  manifest.
                example: https://api.pagerduty.com
              path:
                type: string
                description: The URL path of the proxied API request as defined in the
                  integration manifest.
                example: /incidents
                writeOnly: true
              body:
                type: object
                additionalProperties: true
                description: JSON object representing the request body that will be sent to the
                  proxied API.
                example:
                  name: Foo
              query:
                type: object
                additionalProperties: true
                description: JSON object representing the query parameters that will be sent to
                  the proxied API.
                example:
                  limit: 5
                  offset: 10
              headers:
                type: object
                additionalProperties: true
                description: JSON object representing the request headers that will be sent to
                  the proxied API.
                example:
                  content-type: application/json
            required:
              - method
              - base_url
              - path
  schemas:
    BadRequestError:
      allOf:
        - $ref: "#/components/schemas/BaseError"
        - type: object
          required:
            - invalid_parameters
          properties:
            invalid_parameters:
              $ref: "#/components/schemas/InvalidParameters"
    IntegrationUnauthorizedError:
      type: object
      title: IntegrationUnauthorizedError
      properties:
        type:
          type: string
          enum:
            - service_catalog_integration_unauthorized
        status:
          type: integer
          enum:
            - 400
        title:
          type: string
          example: Invalid Request
        instance:
          type: string
          description: The Konnect trace ID.
          example: konnect:trace:3674017986744198214
        detail:
          type: string
          example: The integration instance "cc461d8c-dade-4ce0-ad86-290f3ff8de1a" is
            unauthorized
        invalid_parameters:
          $ref: "#/components/schemas/InvalidParameters"
      required:
        - type
        - status
        - title
        - detail
        - instance
        - invalid_parameters
    NotFoundError:
      allOf:
        - $ref: "#/components/schemas/BaseError"
        - type: object
          properties:
            status:
              example: 404
            title:
              example: Not Found
            type:
              example: https://httpstatuses.com/404
            instance:
              example: kong:trace:1234567890
            detail:
              example: Not found
    IntegrationNotInstalledError:
      allOf:
        - $ref: "#/components/schemas/BaseError"
        - type: object
          properties:
            status:
              example: 404
            title:
              example: Not Found
            type:
              example: https://httpstatuses.com/404
            instance:
              example: kong:trace:1234567890
            detail:
              example: Not found
      type: object
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - service_catalog_integration_not_installed
        status:
          type: integer
          description: >
            The HTTP status code of the error. Useful when passing the response

            body to child properties in a frontend UI. Must be returned as an
            integer.
          readOnly: true
        title:
          type: string
          description: |
            A short, human-readable summary of the problem. It should not
            change between occurences of a problem, except for localization.
            Should be provided as "Sentence case" for direct use in the UI.
          readOnly: true
        instance:
          type: string
          description: |
            Used to return the correlation ID back to the user, in the format
            kong:trace:<correlation_id>. This helps us find the relevant logs
            when a customer reports an issue.
          readOnly: true
    BaseError:
      type: object
      title: Error
      description: standard error
      required:
        - status
        - title
        - instance
        - detail
      properties:
        status:
          type: integer
          description: >
            The HTTP status code of the error. Useful when passing the response

            body to child properties in a frontend UI. Must be returned as an
            integer.
          readOnly: true
        title:
          type: string
          description: |
            A short, human-readable summary of the problem. It should not
            change between occurences of a problem, except for localization.
            Should be provided as "Sentence case" for direct use in the UI.
          readOnly: true
        type:
          type: string
          description: The error type.
          readOnly: true
        instance:
          type: string
          description: |
            Used to return the correlation ID back to the user, in the format
            kong:trace:<correlation_id>. This helps us find the relevant logs
            when a customer reports an issue.
          readOnly: true
        detail:
          type: string
          description: >
            A human readable explanation specific to this occurence of the
            problem.

            This field may contain request/entity data to help the user
            understand

            what went wrong. Enclose variable values in square brackets. Should
            be

            provided as "Sentence case" for direct use in the UI.
          readOnly: true
    InvalidParameters:
      type: array
      nullable: false
      uniqueItems: true
      minItems: 1
      description: invalid parameters
      items:
        oneOf:
          - $ref: "#/components/schemas/InvalidParameterStandard"
          - $ref: "#/components/schemas/InvalidParameterMinimumLength"
          - $ref: "#/components/schemas/InvalidParameterMaximumLength"
          - $ref: "#/components/schemas/InvalidParameterChoiceItem"
          - $ref: "#/components/schemas/InvalidParameterDependentItem"
    UnauthorizedError:
      allOf:
        - $ref: "#/components/schemas/BaseError"
        - type: object
          properties:
            status:
              example: 401
            title:
              example: Unauthorized
            type:
              example: https://httpstatuses.com/401
            instance:
              example: kong:trace:1234567890
            detail:
              example: Invalid credentials
    ForbiddenError:
      allOf:
        - $ref: "#/components/schemas/BaseError"
        - type: object
          properties:
            status:
              example: 403
            title:
              example: Forbidden
            type:
              example: https://httpstatuses.com/403
            instance:
              example: kong:trace:1234567890
            detail:
              example: Forbidden
    InvalidParameterStandard:
      type: object
      additionalProperties: false
      properties:
        field:
          type: string
          example: name
          readOnly: true
        rule:
          $ref: "#/components/schemas/InvalidRules"
        source:
          type: string
          example: body
        reason:
          type: string
          example: is a required field
          readOnly: true
      required:
        - field
        - reason
    InvalidParameterMinimumLength:
      type: object
      additionalProperties: false
      properties:
        field:
          type: string
          example: name
          readOnly: true
        rule:
          description: invalid parameters rules
          type: string
          readOnly: true
          nullable: false
          enum:
            - min_length
            - min_digits
            - min_lowercase
            - min_uppercase
            - min_symbols
            - min_items
            - min
        minimum:
          type: integer
          example: 8
        source:
          type: string
          example: body
        reason:
          type: string
          example: must have at least 8 characters
          readOnly: true
      required:
        - field
        - reason
        - rule
        - minimum
    InvalidParameterMaximumLength:
      type: object
      additionalProperties: false
      properties:
        field:
          type: string
          example: name
          readOnly: true
        rule:
          description: invalid parameters rules
          type: string
          readOnly: true
          nullable: false
          enum:
            - max_length
            - max_items
            - max
        maximum:
          type: integer
          example: 8
        source:
          type: string
          example: body
        reason:
          type: string
          example: must not have more than 8 characters
          readOnly: true
      required:
        - field
        - reason
        - rule
        - maximum
    InvalidParameterChoiceItem:
      type: object
      additionalProperties: false
      properties:
        field:
          type: string
          example: name
          readOnly: true
        rule:
          description: invalid parameters rules
          type: string
          readOnly: true
          nullable: false
          enum:
            - enum
        reason:
          type: string
          example: is a required field
          readOnly: true
        choices:
          type: array
          uniqueItems: true
          readOnly: true
          nullable: false
          minItems: 1
          items: {}
        source:
          type: string
          example: body
      required:
        - field
        - reason
        - rule
        - choices
    InvalidParameterDependentItem:
      type: object
      additionalProperties: false
      properties:
        field:
          type: string
          example: name
          readOnly: true
        rule:
          description: invalid parameters rules
          type: string
          readOnly: true
          nullable: true
          enum:
            - dependent_fields
        reason:
          type: string
          example: is a required field
          readOnly: true
        dependents:
          type: array
          uniqueItems: true
          nullable: true
          items: {}
          readOnly: true
        source:
          type: string
          example: body
      required:
        - field
        - rule
        - reason
        - dependents
    InvalidRules:
      description: invalid parameters rules
      type: string
      readOnly: true
      nullable: true
      enum:
        - required
        - is_array
        - is_base64
        - is_boolean
        - is_date_time
        - is_integer
        - is_null
        - is_number
        - is_object
        - is_string
        - is_uuid
        - is_fqdn
        - is_arn
        - unknown_property
        - missing_reference
        - is_label
        - matches_regex
        - invalid
        - is_supported_network_availability_zone_list
        - is_supported_network_cidr_block
        - is_supported_provider_region
        - type
  examples:
    BadRequestError:
      value:
        status: 400
        title: Invalid Request
        instance: kong:trace:6816496025408232265
        detail: Invalid Parameters
        invalid_parameters:
          - field: method
            rule: required
            source: body
            reason: must have required property 'method'
    IntegrationNotAuthorizedError:
      value:
        status: 400
        type: service_catalog_integration_unauthorized
        title: Invalid Request
        instance: kong:trace:6816496025408232265
        detail: The integration instance "cc461d8c-dade-4ce0-ad86-290f3ff8de1a" is
          unauthorized
        invalid_parameters:
          - field: integration_instance
            rule: invalid
            source: path
            reason: The integration instance "cc461d8c-dade-4ce0-ad86-290f3ff8de1a" is
              unauthorized
    NotFoundExample:
      value:
        status: 404
        title: Not Found
        instance: kong:trace:6816496025408232265
        detail: Not Found
    IntegrationNotInstalledError:
      value:
        status: 404
        type: service_catalog_integration_not_installed
        title: Not Found
        instance: kong:trace:6816496025408232265
        detail: Not Found
    UnauthorizedExample:
      value:
        status: 401
        title: Unauthorized
        instance: kong:trace:8347343766220159418
        detail: Unauthorized
    ForbiddenExample:
      value:
        status: 403
        title: Forbidden
        instance: kong:trace:2723154947768991354
        detail: You do not have permission to perform this action
  responses:
    Unauthorized:
      description: Unauthorized
      content:
        application/problem+json:
          schema:
            $ref: "#/components/schemas/UnauthorizedError"
          examples:
            UnauthorizedExample:
              $ref: "#/components/examples/UnauthorizedExample"
    Forbidden:
      description: Forbidden
      content:
        application/problem+json:
          schema:
            $ref: "#/components/schemas/ForbiddenError"
          examples:
            UnauthorizedExample:
              $ref: "#/components/examples/ForbiddenExample"
  securitySchemes:
    konnectAccessToken:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >
        The Konnect access token is meant to be used by the Konnect dashboard
        and the decK CLI authenticate with.
    personalAccessToken:
      type: http
      scheme: bearer
      bearerFormat: Token
      description: >
        The personal access token is meant to be used as an alternative to
        basic-auth when accessing Konnect via APIs.

        You can generate a Personal Access Token (PAT) from the [personal access
        token page](https://cloud.konghq.com/global/account/tokens/) in the
        Konnect dashboard.

        The PAT token must be passed in the header of a request, for example:

        `curl -X GET 'https://global.api.konghq.com/v2/users/' --header
        'Authorization: Bearer kpat_xgfT...'`
    systemAccountAccessToken:
      type: http
      scheme: bearer
      bearerFormat: Token
      description: >
        The system account access token is meant for automations and
        integrations that are not directly associated with a human identity.

        You can generate a system account Access Token by creating a system
        account and then obtaining a system account access token for that
        account.

        The access token must be passed in the header of a request, for example:

        `curl -X GET 'https://global.api.konghq.com/v2/users/' --header
        'Authorization: Bearer spat_i2Ej...'`
```
