Bem

Bem Connectors API

Connectors are integrations that trigger a Bem workflow from an external system. A connector binds an inbound source — currently Box or a Paragon-managed integration such as Google Drive — to a specific workflow (by `workflowName` or `workflowID`). When the source observes a new file, Bem invokes the bound workflow against that file. Use these endpoints to create, list, and remove connectors. The fields used at create time depend on the connector `type`: Box connectors require Box credentials and a folder to watch, while Paragon connectors carry a `paragonIntegration` identifier and an integration-specific `paragonConfiguration` object (for example, `{ "folderId": "..." }` for Google Drive).

OpenAPI Specification

bem-connectors-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Bem Buckets Connectors API
  version: 1.0.0
  description: "Buckets are named partitions of the knowledge graph within an\naccount+environment. Entities, mentions, and relations are scoped to a\nbucket so a single account+environment can host multiple isolated graphs\n— for example one per data source or workspace.\n\nEvery account+environment has exactly one **default** bucket, used by\nunscoped flows. The default bucket can be renamed but never deleted.\n\nUse these endpoints to create, list, fetch, rename, and delete buckets:\n\n- **`POST /v3/buckets`** creates a non-default bucket.\n- **`GET /v3/buckets`** lists buckets with cursor pagination\n  (`startingAfter` / `endingBefore` over `bucketID`).\n- **`PATCH /v3/buckets/{bucketID}`** updates `name` and/or `description`.\n- **`DELETE /v3/buckets/{bucketID}`** soft-deletes a bucket. A non-empty\n  bucket is rejected with `409 Conflict` unless `?cascade=true` is\n  passed; the default bucket can never be deleted."
servers:
- url: https://api.bem.ai
  description: US Region API
  variables: {}
- url: https://api.eu1.bem.ai
  description: EU Region API
  variables: {}
security:
- API Key: []
tags:
- name: Connectors
  description: 'Connectors are integrations that trigger a Bem workflow from an external system.


    A connector binds an inbound source — currently Box or a Paragon-managed integration such as

    Google Drive — to a specific workflow (by `workflowName` or `workflowID`). When the source

    observes a new file, Bem invokes the bound workflow against that file.


    Use these endpoints to create, list, and remove connectors. The fields used at create time

    depend on the connector `type`: Box connectors require Box credentials and a folder to watch,

    while Paragon connectors carry a `paragonIntegration` identifier and an integration-specific

    `paragonConfiguration` object (for example, `{ "folderId": "..." }` for Google Drive).'
paths:
  /v3/connectors:
    post:
      operationId: v3-create-connector
      summary: Create a Connector
      parameters: []
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectorV3'
      tags:
      - Connectors
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConnectorCreateRequestV3'
            examples:
              Create connector:
                summary: Create connector
                value:
                  name: Box → Invoice workflow
                  workflowID: wf_2N6gH8ZKCmvb6BnFcGqhKJ98VzP
                  type: paragon
                  paragonIntegration: googledrive
                  paragonConfiguration:
                    folderId: YOUR_GOOGLE_DRIVE_FOLDER_ID
    get:
      operationId: v3-list-connectors
      summary: List Connectors
      parameters:
      - name: workflowID
        in: query
        required: false
        description: 'Filter connectors by workflow API ID (e.g. `wf_...`).


          If both `workflowID` and `workflowName` are provided, results must match both.'
        schema:
          type: string
        explode: false
      - name: workflowName
        in: query
        required: false
        description: 'Filter connectors by workflow name (exact match).


          If both `workflowID` and `workflowName` are provided, results must match both.'
        schema:
          type: string
        explode: false
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConnectorListResponseV3'
      tags:
      - Connectors
  /v3/connectors/{connectorID}:
    delete:
      operationId: v3-delete-connector
      summary: Delete a Connector
      parameters:
      - name: connectorID
        in: path
        required: true
        description: Connector API ID.
        schema:
          type: string
      responses:
        '200':
          description: The request has succeeded.
          content:
            text/plain:
              schema:
                type: string
      tags:
      - Connectors
components:
  schemas:
    ConnectorCreateRequestV3:
      type: object
      required:
      - type
      - name
      properties:
        type:
          allOf:
          - $ref: '#/components/schemas/ConnectorTypeV3'
          description: The connector type.
        name:
          type: string
          description: Human-friendly name for this connector.
        workflowID:
          type: string
          description: 'One of `workflowID` or `workflowName` must be provided.


            If both are provided, they must refer to the same workflow.'
        workflowName:
          type: string
          description: 'One of `workflowID` or `workflowName` must be provided.


            If both are provided, they must refer to the same workflow.'
        boxClientID:
          type: string
          description: Box client ID (from your Box application).
        boxClientSecret:
          type: string
          description: Box client secret (from your Box application).
        boxEnterpriseID:
          type: string
          description: Box enterprise ID.
        boxFolderID:
          type: string
          description: Box folder ID to watch for new uploads.
        paragonIntegration:
          type: string
          description: Paragon integration, eg. "googledrive".
        paragonConfiguration:
          type: object
          unevaluatedProperties: {}
          description: Configuration specific to the type of integration.
      description: Request body to create a connector.
    ConnectorListResponseV3:
      type: object
      required:
      - connectors
      properties:
        connectors:
          type: array
          items:
            $ref: '#/components/schemas/ConnectorV3'
      description: Response body for listing connectors.
    ConnectorV3:
      type: object
      required:
      - type
      - connectorID
      - name
      - workflowID
      - workflowName
      - boxClientID
      - boxClientSecret
      - boxEnterpriseID
      - boxFolderID
      - paragonSyncID
      - paragonIntegration
      - paragonConfiguration
      properties:
        type:
          allOf:
          - $ref: '#/components/schemas/ConnectorTypeV3'
          description: The connector type.
        connectorID:
          type: string
          description: Unique identifier for the connector.
        name:
          type: string
          description: Human-friendly name for this connector.
        workflowID:
          type: string
          description: Workflow API ID that will be triggered by this connector.
        workflowName:
          type: string
          description: Workflow name that will be triggered by this connector.
        boxClientID:
          type: string
          description: Box client ID (from your Box application).
        boxClientSecret:
          type: string
          description: 'Box client secret (from your Box application).


            Note: This value is sensitive and should be stored securely.'
        boxEnterpriseID:
          type: string
          description: Box enterprise ID.
        boxFolderID:
          type: string
          description: Box folder ID to watch for new uploads.
        paragonSyncID:
          type: string
          description: Paragon sync ID.
        paragonIntegration:
          type: string
          description: Paragon integration, eg. "googledrive".
        paragonConfiguration:
          type: object
          unevaluatedProperties: {}
          description: Configuration specific to the type of integration.
      description: A Connector represents an integration that triggers a Bem workflow from an external system.
    ConnectorTypeV3:
      type: string
      enum:
      - box
      - paragon
      description: Connector type.
  securitySchemes:
    API Key:
      type: apiKey
      in: header
      name: x-api-key
      description: Authenticate using API Key in request header