openapi: 3.0.3 info: title: Paragon ActionKit Proxy API description: 'Paragon is an embedded iPaaS for SaaS companies. This specification covers Paragon''s documented REST surfaces: the Connect/SDK API and Workflows API on api.useparagon.com, the ActionKit tool-calling API on actionkit.useparagon.com, and the Proxy (passthrough) API on proxy.useparagon.com. Every request is made on behalf of a Connected User and authenticated with a Paragon User Token - an RS256-signed JWT - passed as a Bearer token. Paths, methods, and hosts are confirmed from Paragon''s public documentation; request and response bodies are modeled as generic JSON objects because Paragon does not publish a formal per-endpoint schema for the SDK API. Base hosts differ per API family; select the appropriate server.' version: '1.0' contact: name: Paragon url: https://www.useparagon.com servers: - url: https://api.useparagon.com description: Connect/SDK API and Workflows API - url: https://actionkit.useparagon.com description: ActionKit tool-calling API - url: https://proxy.useparagon.com description: Proxy (passthrough) API security: - paragonUserToken: [] tags: - name: Proxy description: Forward requests to third-party providers on behalf of a Connected User. paths: /projects/{projectId}/sdk/proxy/{integrationType}/{apiPath}: parameters: - $ref: '#/components/parameters/ProjectId' - name: integrationType in: path required: true description: Integration type identifier (e.g. slack, salesforce). schema: type: string - name: apiPath in: path required: true description: The third-party provider API path to call (may contain slashes). schema: type: string get: operationId: proxyGet tags: - Proxy summary: Proxy a GET request to a provider description: Forwards a GET request to the third-party provider on behalf of the Connected User. Served on the Proxy host (proxy.useparagon.com). Any HTTP verb is accepted; GET and POST are modeled here as representative. Use /projects/{projectId}/sdk/proxy/custom/{integrationId}/{apiPath} for custom integrations. servers: - url: https://proxy.useparagon.com responses: '200': description: The provider's response, passed through. content: application/json: schema: type: object additionalProperties: true '401': $ref: '#/components/responses/Unauthorized' post: operationId: proxyPost tags: - Proxy summary: Proxy a POST request to a provider description: Forwards a POST request (JSON body) to the third-party provider on behalf of the Connected User. Served on the Proxy host (proxy.useparagon.com). servers: - url: https://proxy.useparagon.com requestBody: required: false content: application/json: schema: type: object additionalProperties: true responses: '200': description: The provider's response, passed through. content: application/json: schema: type: object additionalProperties: true '401': $ref: '#/components/responses/Unauthorized' components: parameters: ProjectId: name: projectId in: path required: true description: The Paragon Project ID (UUID). schema: type: string responses: Unauthorized: description: Missing or invalid Paragon User Token. content: application/json: schema: type: object properties: message: type: string securitySchemes: paragonUserToken: type: http scheme: bearer bearerFormat: JWT description: 'Paragon User Token - an RS256-signed JWT identifying a Connected User - passed as Authorization: Bearer . Signed by the builder''s server with the private Signing Key from Settings > SDK Setup and verified by Paragon with the matching public key.'