openapi: 3.2.0 info: title: Boomi Data Integration Connections API description: '# Boomi Data Integration API documentation Welcome to the Boomi Data Integration API Documentation.' contact: name: Boomi Data Integration Documentation url: https://community.boomi.com/s/support email: support@boomi.com version: 1.0.0 x-logo: url: https://rivery.io/wp-content/uploads/2021/08/logo.png servers: - url: https://api.rivery.io description: US - url: https://api.eu-west-1.rivery.io description: EU tags: - name: Connections description: Management of connection entities paths: /v1/accounts/{account_id}/environments/{environment_id}/connections: get: tags: - Connections summary: Get Connections description: '**Authorization scope:** `connection:list` **Get all connection entities as a paginated list** --- ### 📖 Instructions for usage `list_connections` ``` List all connections in an environment (sweeps every page in one call). Returns {items, total_items, page, has_next}. Each item includes connection_name, connection_type, connection_type_id, and cross_id; use cross_id as connection_id when creating data flows. If the upstream 500s on a specific page, that page is skipped and its number is reported under "incomplete_pages" rather than failing the whole listing. ```' operationId: list_connections security: - HTTPBearer: [] parameters: - name: account_id in: path required: true schema: type: string title: Account Id - name: environment_id in: path required: true schema: type: string title: Environment Id - name: items_per_page in: query required: false schema: type: integer maximum: 500 minimum: 1 description: The number of items per page in the paginated list. default: 20 title: Items Per Page description: The number of items per page in the paginated list. - name: page in: query required: false schema: type: integer minimum: 1 description: The current page number in the paginated list. default: 1 title: Page description: The current page number in the paginated list. responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ConnectionPaginationResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' x-mcp-tool: - list_connections post: tags: - Connections summary: Add Connection description: '**Authorization scope:** `connection:edit` **Creates a new connection entity.** **** **The connection type is resolved from the required ``source_name`` (the name of a data source** **or target). A ``connection_type`` may still be provided explicitly, in which case it is** **validated and takes precedence. An optional ``segment`` disambiguates a ``source_name``** **available as both a source and a target (e.g. "snowflake").** --- ### 📖 Instructions for usage `create_connection` ``` Create a new connection. body must match the CreateConnection API schema. NOT ALL CONNECTION TYPES CAN BE CREATED HERE. Connections that authenticate via OAuth (e.g. Google services, Salesforce, HubSpot, Facebook/Meta, LinkedIn, and similar — anything that needs a browser sign-in / "Connect with..." flow) CANNOT be created through this tool, because OAuth requires an interactive browser consent step. For those, tell the user: "This connection uses OAuth — please create it in the Boomi Data Integration console, then I can use it here." REQUIRED before calling this tool: 1. Confirm with the user whether the connection will be used as a source or a target — ask if the intent is not already clear from context. 2. Call get_connection_source_names to obtain the list of valid source_names and their connection_types per segment. 3. Select the exact source_name (and segment when the name appears for both source and target) from that list, and use the returned connection_type. Do not guess or invent source_name or connection_type values (e.g. "postgres" is not a valid source_name unless it was returned by get_connection_source_names). Build the request body only from values that came back from that call. This tool works for connections that authenticate with credentials you can supply directly (host/port/user/password/keys), e.g. databases like mysql, postgresql, mssql, snowflake, bigquery, redshift, mongodb. ```' operationId: add_connection security: - HTTPBearer: [] parameters: - name: account_id in: path required: true schema: type: string title: Account Id - name: environment_id in: path required: true schema: type: string title: Environment Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AddConnectionInput' responses: '201': description: Successful Response content: application/json: schema: type: object title: Response Add Connection '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' x-mcp-tool: - create_connection /v1/accounts/{account_id}/environments/{environment_id}/connections/source_names: get: tags: - Connections summary: Get Connection Source Names description: '**Authorization scope:** `connection:list` **List the source_names available for creating a connection.** **** **Each entry carries a ``source_name``, its ``segment``, and the resolved ``connection_type``.** **To create a connection end to end:** **1. Pick a ``source_name`` (and ``segment`` if the same ``source_name`` is returned for both** **``source`` and ``target``).** **2. Pass its ``connection_type`` to ``GET /connections_types/{connection_type}`` to retrieve the** **properties (fields) that connection type accepts.** **3. Call the create-connection endpoint with the ``source_name`` (and ``segment``) plus those** **fields as top-level entries in the request body.**' operationId: get_connection_source_names security: - HTTPBearer: [] parameters: - name: account_id in: path required: true schema: type: string title: Account Id - name: environment_id in: path required: true schema: type: string title: Environment Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ConnectionSourceNamesResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/accounts/{account_id}/environments/{environment_id}/connections/links: post: tags: - Connections summary: Create Connection Link description: '**Authorization scope:** `connection:share` **Generate a single-use link that lets a third party work on one connection.** **** **The link can be sent to someone outside the tenant (a customer, a partner) so they can fill in** **connection credentials without being given access to the account. It expires after at most 24** **hours and is spent as soon as it is used.** **** **Two modes:** **** *** To have a **new** connection created, provide either a ``source_name`` or an explicit** **``connection_type``.** *** To have an **existing** connection updated, provide its ``connection_id``. The link opens** **that connection with its current values filled in - passwords shown as a mask - and can be** **used on that connection only.** **** **Both modes work for every connection type: the console opens whichever connection form the** **data source belongs to.**' operationId: create_connection_link security: - HTTPBearer: [] parameters: - name: account_id in: path required: true schema: type: string title: Account Id - name: environment_id in: path required: true schema: type: string title: Environment Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateConnectionLinkInput' responses: '201': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ConnectionLinkResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/accounts/{account_id}/environments/{environment_id}/connections/{connection_id}/test: post: tags: - Connections summary: Test Connection By Id description: '**Authorization scope:** `connection:edit` **This endpoint triggers a connectivity test for an existing, saved connection.** **** **`connection_id` is the connection''s `cross_id`, not the Mongo document''s `_id`.** **** **Be advised: the test is an async operation, which means that** **after triggering it, the client must poll the returned operation** **(via `GET .../operations/{operation_id}`) until it reaches a terminal status (`D` or `E`).** --- ### 📖 Instructions for usage `test_connection_by_id` ``` Trigger a live connectivity test for an existing, saved connection. Submits a test-connection pull request to the v1 API and returns an async operation handle immediately (status "W"). This does NOT confirm success or failure by itself. Poll GET /accounts/{a}/environments/{e}/operations/{operation_id} (the operation_id from this response) until status reaches a terminal value: "D" (done) or "E" (error). Do NOT poll in a tight loop — wait a few seconds between checks. When done, `result` indicates whether the connection is valid and `error_message` carries the failure reason if not. ```' operationId: test_connection_by_id security: - HTTPBearer: [] parameters: - name: account_id in: path required: true schema: type: string title: Account Id - name: connection_id in: path required: true schema: type: string title: Connection Id - name: environment_id in: path required: true schema: type: string title: Environment Id responses: '202': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/OperationResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' x-mcp-tool: - test_connection_by_id /v1/accounts/{account_id}/environments/{environment_id}/connections/{cross_id}: put: tags: - Connections summary: Update Connection description: '**Authorization scope:** `connection:edit` **This endpoint updates a connection** --- ### 📖 Instructions for usage `update_connection` ``` Update an existing connection. ```' operationId: update_connection security: - HTTPBearer: [] parameters: - name: account_id in: path required: true schema: type: string title: Account Id - name: environment_id in: path required: true schema: type: string title: Environment Id - name: cross_id in: path required: true schema: type: string title: Cross Id requestBody: required: true content: application/json: schema: type: object title: Connection To Update responses: '200': description: Successful Response content: application/json: schema: type: object title: Response Update Connection '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' x-mcp-tool: - update_connection /v1/accounts/{account_id}/environments/{environment_id}/connections/{connection_cross_id}: delete: tags: - Connections summary: Delete Connection description: '**Authorization scope:** `connection:delete` **This endpoint deletes a connection** --- ### 📖 Instructions for usage `delete_connection` ``` Delete a connection. The upstream DELETE returns an empty body on success; this returns {"deleted": true, "connection_id": ...}. ```' operationId: delete_connection security: - HTTPBearer: [] parameters: - name: account_id in: path required: true schema: type: string title: Account Id - name: environment_id in: path required: true schema: type: string title: Environment Id - name: connection_cross_id in: path required: true schema: type: string title: Connection Cross Id responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' x-mcp-tool: - delete_connection /v1/accounts/{account_id}/environments/{environment_id}/connections/{connection_type}/files: post: tags: - Connections summary: Add File description: '**Authorization scope:** `connection:edit` **Uploads a connection file. e.g. a pem file.**' operationId: add_file security: - HTTPBearer: [] parameters: - name: account_id in: path required: true schema: type: string title: Account Id - name: environment_id in: path required: true schema: type: string title: Environment Id - name: connection_type in: path required: true schema: type: string title: Connection Type requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/Body_add_file' responses: '201': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/AddConnectionFileResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/connections_types: get: tags: - Connections summary: Get Connections Types description: '**Authorization scope:** `connection:list` **Get all connection types entities as a paginated list**' operationId: list_connections_types security: - HTTPBearer: [] parameters: - name: items_per_page in: query required: false schema: type: integer maximum: 1000 minimum: 1 description: The number of items per page in the paginated list. default: 20 title: Items Per Page description: The number of items per page in the paginated list. - name: page in: query required: false schema: type: integer minimum: 1 description: The current page number in the paginated list. default: 1 title: Page description: The current page number in the paginated list. responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ConnectionTypesPaginationResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/connections_types/{connection_type}: get: tags: - Connections summary: Get Connection Type description: '**Authorization scope:** `connection:list` **Get a specific connection type entity**' operationId: get_connection_type security: - HTTPBearer: [] parameters: - name: connection_type in: path required: true schema: type: string title: Connection Type responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ConnectionTypeModel' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' components: schemas: ConnectionTypeModel: properties: connection_type: type: string title: Connection Type connection_type_name: type: string title: Connection Type Name properties: items: type: object type: array title: Properties message: anyOf: - type: string - type: 'null' title: Message description: Set when the connection type has no API-fillable fields (all its fields are interactive-only), explaining that it can only be created through the UI. type: object required: - connection_type - connection_type_name - properties title: ConnectionTypeModel description: Connection type model Body_add_file: properties: file: type: string format: binary title: File type: object required: - file title: Body_add_file ConnectionResponse: properties: account_id: type: string title: Account Id environment_id: type: string title: Environment Id cross_id: type: string title: Cross Id description: The cross id of the connection examples: - 5f887c764c40e5598f717676 _id: type: string title: ' Id' description: The connection id examples: - 5f887c764c40e5598f717676 connection_name: type: string title: Connection Name description: The name of the connection examples: - test connection connection_type: type: string title: Connection Type description: The type of the connection examples: - Oracle connection_type_id: type: string title: Connection Type Id description: The name of the related database examples: - oracle is_test_connection: type: boolean title: Is Test Connection description: Indicates if the connection is a test connection examples: - false connection_update_by: anyOf: - type: string - type: 'null' title: Connection Update By description: The objectID of the user who updated the connection examples: - 5f887c764c40e5598f717676 connection_update_time: anyOf: - type: string format: date-time - type: 'null' title: Connection Update Time description: The time the connection was last updated type: object required: - account_id - environment_id - cross_id - _id - connection_name - connection_type - connection_type_id - is_test_connection title: ConnectionResponse description: Connection properties to return ConnectionTypeResponse: properties: fields: type: object title: Fields description: The fields of the connection type examples: - current_page_size: 1 items: - fields: _id: 5643062270ec07e624d4320d allowed_file_extensions: [] connection_type: spotx connection_type_name: SpotX has_key_file: false is_test_connection: true oauth2: false properties: - id: username type: string ui_type: text display_name: Username row: 0 - id: password type: password ui_type: password display_name: Password row: 1 - id: connection_name type: string - id: connection_desc type: string next_page: https://api.rivery.io/v1/connections_types?items_per_page=1&page=2 page: 1 total_items: 189 type: object required: - fields title: ConnectionTypeResponse description: Connection properties to return AddConnectionInput: properties: source_name: anyOf: - type: string - type: 'null' title: Source Name description: 'Optional. The source_name of the data source or target the connection is created for; the connection type is resolved from it. Provide this or ''connection_type''. Do not guess this value: call the ''get_connection_source_names'' endpoint first and use one of the returned source_names verbatim.' examples: - snowflake - mysql - salesforce connection_name: type: string title: Connection Name description: The name of the connection examples: - my connection segment: anyOf: - $ref: '#/components/schemas/ConnectionSegmentEnum' - type: 'null' description: Optional. Disambiguates a source_name that is available as both a source and a target (e.g. 'snowflake'). One of 'source' or 'target'. examples: - source connection_type: anyOf: - type: string - type: 'null' title: Connection Type description: 'Optional. The connection type. When omitted it is resolved from ''source_name''. When provided it is validated to exist and takes precedence. Do not guess this value: resolve it from ''source_name'' by calling ''get_connection_source_names'' and using the ''connection_type'' on the matching entry.' examples: - snowflake additionalProperties: true type: object required: - connection_name title: AddConnectionInput description: 'The request body for creating a connection. Provide either a ``source_name`` (the name of a data source or target - call the ``get_connection_source_names`` endpoint to list them) or an explicit ``connection_type``; the connection type is resolved from whichever is given. The connection-type-specific properties (host, password, warehouse, etc.) are passed as extra top-level fields. To discover exactly which properties a connection type needs, call the ``get_connection_type`` endpoint (GET /connections_types/{connection_type}).' ConnectionSegmentEnum: type: string enum: - source - target title: ConnectionSegmentEnum description: 'The segment a connection is created for, used to disambiguate a source_name that is available as both a source and a target (e.g. "snowflake").' ConnectionSourceNamesResponse: properties: source_names: items: $ref: '#/components/schemas/ConnectionSourceName' type: array title: Source Names type: object required: - source_names title: ConnectionSourceNamesResponse description: The list of source_names available for creating a connection. HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError ConnectionSourceName: properties: source_name: type: string title: Source Name description: The source_name to pass to the create-connection endpoint examples: - snowflake segment: allOf: - $ref: '#/components/schemas/ConnectionSegmentEnum' description: The segment this source_name is available for. When a source_name is returned for both 'source' and 'target', pass the matching 'segment' to the create-connection endpoint to disambiguate it. examples: - source connection_type: type: string title: Connection Type description: The connection type resolved for this source_name and segment. Pass it to the 'get_connection_type' endpoint (GET /connections_types/{connection_type}) to retrieve the properties (fields) to provide as top-level fields in the create-connection request body. examples: - snowflake type: object required: - source_name - segment - connection_type title: ConnectionSourceName description: A source_name available for creating a connection, for a specific segment. ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type type: object required: - loc - msg - type title: ValidationError PullRequestStatus: type: string enum: - W - E - R - D title: PullRequestStatus description: The status of the pull request that we use in the back, and expose in the API CreateConnectionLinkInput: properties: connection_id: anyOf: - type: string - type: 'null' title: Connection Id description: Optional. The id of an existing connection to share for editing. When provided the link opens that connection with its current values filled in, and neither 'source_name' nor 'connection_type' is needed. The link can only be used on this connection - it cannot create or edit any other one. examples: - 5f887c764c40e5598f717676 source_name: anyOf: - type: string - type: 'null' title: Source Name description: 'Optional. The source_name of the data source or target the link creates a connection for; the connection type is resolved from it. Provide this or ''connection_type''. Do not guess this value: call the ''get_connection_source_names'' endpoint first and use a returned source_name verbatim.' examples: - snowflake - mysql - salesforce segment: anyOf: - $ref: '#/components/schemas/ConnectionSegmentEnum' - type: 'null' description: Optional. Disambiguates a source_name that is available as both a source and a target (e.g. 'snowflake'). One of 'source' or 'target'. examples: - source connection_type: anyOf: - type: string - type: 'null' title: Connection Type description: Optional. The connection type. When omitted it is resolved from 'source_name'. When provided it is validated to exist and takes precedence. examples: - snowflake type: object title: CreateConnectionLinkInput description: "The request body for generating a connection link.\n\nThe link lets a third party work on a single connection without any access to the tenant, in\none of two modes:\n\n* **Create** a new connection - provide either a ``source_name`` (call the\n ``get_connection_source_names`` endpoint to list them) or an explicit ``connection_type``,\n exactly as when creating a connection.\n* **Edit an existing** connection - provide its ``connection_id``. The link then opens that\n connection with its current values filled in, and the type is taken from the connection\n itself." ConnectionLinkResponse: properties: url: type: string title: Url description: The connection link. Single use, and valid until 'expires_at'. examples: - https://console.rivery.io/#/?create_connection=1&token=eyJhbGciOi... expires_at: type: string format: date-time title: Expires At description: The UTC time the link stops working. At most 24 hours out. type: object required: - url - expires_at title: ConnectionLinkResponse description: The generated connection link. AddConnectionFileResponse: properties: file_path: type: string title: File Path type: object required: - file_path title: AddConnectionFileResponse description: Add connection file response ConnectionTypesPaginationResponse: properties: next_page: anyOf: - type: string - type: 'null' title: Next Page description: The next page URL previous_page: anyOf: - type: string - type: 'null' title: Previous Page description: The previous page URL page: type: integer title: Page description: The page number default: 1 current_page_size: type: integer title: Current Page Size description: The current page size total_items: type: integer title: Total Items description: The total number of entities fetched default: 0 items: items: $ref: '#/components/schemas/ConnectionTypeResponse' type: array title: Items type: object required: - current_page_size - items title: ConnectionTypesPaginationResponse description: "Connection response properties to return as a paginated list\n " examples: - current_page_size: 1 items: - fields: _id: 5643062270ec07e624d4320d allowed_file_extensions: [] connection_type: spotx connection_type_name: SpotX has_key_file: false is_test_connection: true oauth2: false properties: - id: username type: string ui_type: text display_name: Username row: 0 - id: password type: password ui_type: password display_name: Password row: 1 - id: connection_name type: string - id: connection_desc type: string next_page: https://api.rivery.io/v1/connections_types?items_per_page=1&page=2 page: 1 total_items: 189 OperationResponse: properties: operation_id: type: string title: Operation Id description: The ID of the operation examples: - 62e7f4352c13160013dc39be operation_type: type: string title: Operation Type description: The type of the operation examples: - dataframe run_id: type: string title: Run Id description: The run id of the operation examples: - 5cbc6bbbc90a4658b00c70a3bb0f3b31 last_update_date: type: string format: date-time title: Last Update Date description: The date time in UTC timezone of the last update examples: - '2022-08-02T13:38:44.054000' status: allOf: - $ref: '#/components/schemas/PullRequestStatus' description: The current status of the operation id examples: - D result: anyOf: - {} - type: 'null' title: Result description: The result of the operation examples: - 'true' error_message: anyOf: - type: string - type: 'null' title: Error Message description: The error message of the operation examples: - '[RVR-QBK-003]: Response value error: Missing Rows/Columns' type: object required: - operation_id - operation_type - run_id - last_update_date - status title: OperationResponse description: Operation properties to return. ConnectionPaginationResponse: properties: next_page: anyOf: - type: string - type: 'null' title: Next Page description: The next page URL previous_page: anyOf: - type: string - type: 'null' title: Previous Page description: The previous page URL page: type: integer title: Page description: The page number default: 1 current_page_size: type: integer title: Current Page Size description: The current page size total_items: type: integer title: Total Items description: The total number of entities fetched default: 0 account_id: type: string title: Account Id description: The account id environment_id: type: string title: Environment Id description: The environment id items: items: $ref: '#/components/schemas/ConnectionResponse' type: array title: Items type: object required: - current_page_size - account_id - environment_id - items title: ConnectionPaginationResponse description: "Connection response properties to return as a paginated list\n " securitySchemes: HTTPBearer: type: http scheme: bearer externalDocs: description: Find out more about Data Integration url: https://help.boomi.com/docs/Atomsphere/Data_Integration/Data_Integration_Overview