Proxy API

Once your users have connected their third-party app accounts in the Connect Portal, you can access their app account via the Proxy API. The Proxy API allows you to directly access any of the third-party providers API methods. With the SDK, you can use paragon.request to send an API request to a third-party app on behalf of one of your Connected Users. Along with Workflows, the Proxy API is one of two primary ways to build integrations with Paragon.

OpenAPI Specification

paragon-proxy-api-openapi.yml Raw ↑
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.