openapi: 3.1.0 info: title: Paragon Proxy API description: >- The Proxy API allows you to directly access any of the third-party provider's API methods on behalf of your Connected Users. Along with Workflows, the Proxy API is one of two primary ways to build integrations with Paragon. The Proxy API accepts requests with body contents specified as application/json and supports any HTTP verb including GET, POST, PUT, PATCH, and DELETE. version: 1.0.0 contact: name: Paragon url: https://www.useparagon.com license: name: Proprietary url: https://www.useparagon.com/terms-of-service servers: - url: https://proxy.useparagon.com description: Paragon Proxy API (Cloud) security: - bearerAuth: [] paths: /projects/{projectId}/sdk/proxy/{integrationType}/{apiPath}: get: operationId: proxyGetRequest summary: Paragon Proxy GET request to integration description: >- Send a GET request to a third-party integration API on behalf of a Connected User. The request is proxied through Paragon to the integration provider. tags: - Proxy parameters: - name: projectId in: path required: true description: Your Paragon Project ID. schema: type: string - name: integrationType in: path required: true description: >- The type of integration to proxy the request to (e.g., salesforce, hubspot, slack). schema: type: string - name: apiPath in: path required: true description: >- The API path of the third-party provider to send the request to. schema: type: string responses: '200': description: Successful proxy response from the integration provider. content: application/json: schema: type: object '401': description: Unauthorized. Invalid or missing Paragon User Token. '404': description: Integration not found or not enabled for the user. '429': description: Rate limit exceeded. post: operationId: proxyPostRequest summary: Paragon Proxy POST request to integration description: >- Send a POST request to a third-party integration API on behalf of a Connected User. tags: - Proxy parameters: - name: projectId in: path required: true description: Your Paragon Project ID. schema: type: string - name: integrationType in: path required: true description: >- The type of integration to proxy the request to. schema: type: string - name: apiPath in: path required: true description: >- The API path of the third-party provider to send the request to. schema: type: string requestBody: description: The request body to send to the third-party provider API. content: application/json: schema: type: object responses: '200': description: Successful proxy response from the integration provider. content: application/json: schema: type: object '401': description: Unauthorized. Invalid or missing Paragon User Token. '404': description: Integration not found or not enabled for the user. '429': description: Rate limit exceeded. put: operationId: proxyPutRequest summary: Paragon Proxy PUT request to integration description: >- Send a PUT request to a third-party integration API on behalf of a Connected User. tags: - Proxy parameters: - name: projectId in: path required: true description: Your Paragon Project ID. schema: type: string - name: integrationType in: path required: true description: >- The type of integration to proxy the request to. schema: type: string - name: apiPath in: path required: true description: >- The API path of the third-party provider to send the request to. schema: type: string requestBody: description: The request body to send to the third-party provider API. content: application/json: schema: type: object responses: '200': description: Successful proxy response from the integration provider. content: application/json: schema: type: object '401': description: Unauthorized. Invalid or missing Paragon User Token. '404': description: Integration not found or not enabled for the user. '429': description: Rate limit exceeded. patch: operationId: proxyPatchRequest summary: Paragon Proxy PATCH request to integration description: >- Send a PATCH request to a third-party integration API on behalf of a Connected User. tags: - Proxy parameters: - name: projectId in: path required: true description: Your Paragon Project ID. schema: type: string - name: integrationType in: path required: true description: >- The type of integration to proxy the request to. schema: type: string - name: apiPath in: path required: true description: >- The API path of the third-party provider to send the request to. schema: type: string requestBody: description: The request body to send to the third-party provider API. content: application/json: schema: type: object responses: '200': description: Successful proxy response from the integration provider. content: application/json: schema: type: object '401': description: Unauthorized. Invalid or missing Paragon User Token. '404': description: Integration not found or not enabled for the user. '429': description: Rate limit exceeded. delete: operationId: proxyDeleteRequest summary: Paragon Proxy DELETE request to integration description: >- Send a DELETE request to a third-party integration API on behalf of a Connected User. tags: - Proxy parameters: - name: projectId in: path required: true description: Your Paragon Project ID. schema: type: string - name: integrationType in: path required: true description: >- The type of integration to proxy the request to. schema: type: string - name: apiPath in: path required: true description: >- The API path of the third-party provider to send the request to. schema: type: string responses: '200': description: Successful proxy response from the integration provider. content: application/json: schema: type: object '401': description: Unauthorized. Invalid or missing Paragon User Token. '404': description: Integration not found or not enabled for the user. '429': description: Rate limit exceeded. /projects/{projectId}/sdk/proxy/custom/{integrationId}/{apiPath}: get: operationId: proxyCustomGetRequest summary: Paragon Proxy GET request to custom integration description: >- Send a GET request to a custom integration API on behalf of a Connected User. tags: - Custom Integrations - Proxy parameters: - name: projectId in: path required: true description: Your Paragon Project ID. schema: type: string - name: integrationId in: path required: true description: The ID of the custom integration. schema: type: string - name: apiPath in: path required: true description: The API path of the custom integration to send the request to. schema: type: string responses: '200': description: Successful proxy response from the custom integration. content: application/json: schema: type: object '401': description: Unauthorized. Invalid or missing Paragon User Token. '404': description: Integration not found or not enabled for the user. '429': description: Rate limit exceeded. post: operationId: proxyCustomPostRequest summary: Paragon Proxy POST request to custom integration description: >- Send a POST request to a custom integration API on behalf of a Connected User. tags: - Custom Integrations - Proxy parameters: - name: projectId in: path required: true description: Your Paragon Project ID. schema: type: string - name: integrationId in: path required: true description: The ID of the custom integration. schema: type: string - name: apiPath in: path required: true description: The API path of the custom integration to send the request to. schema: type: string requestBody: description: The request body to send to the custom integration API. content: application/json: schema: type: object responses: '200': description: Successful proxy response from the custom integration. content: application/json: schema: type: object '401': description: Unauthorized. Invalid or missing Paragon User Token. '404': description: Integration not found or not enabled for the user. '429': description: Rate limit exceeded. components: securitySchemes: bearerAuth: type: http scheme: bearer description: >- Paragon User Token. Authenticate with a signed JWT token for the Connected User. tags: - name: Custom Integrations description: Proxy requests to custom integration APIs. - name: Proxy description: Proxy requests to third-party integration APIs.