Boomi Event Streams REST API

The Boomi Event Streams REST API enables HTTP-based applications to produce messages to topics. It supports multiple message modes including multiple messages in predefined JSON format and single messages in their original format without transformation. The API accommodates messages up to 5MB and uses Bearer token authentication.

OpenAPI Specification

boomi-event-streams-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Boomi Event Streams REST API
  description: >-
    The Boomi Event Streams REST API enables HTTP-based applications to produce
    messages to event topics. It supports two operational modes: multiple
    messages in a predefined JSON format, and single messages in their original
    format without transformation. The API accommodates messages up to 5 MB and
    enforces a rate limit of 60,000 requests per IP per 5-minute window. Each
    topic has a unique REST API URL available in the Event Streams UI.
    Authentication uses an Environment Token as a Bearer token.
  version: '1.0'
  contact:
    name: Boomi Support
    url: https://community.boomi.com/s/support
  termsOfService: https://boomi.com/legal/service/
externalDocs:
  description: Boomi Event Streams REST API Documentation
  url: https://help.boomi.com/docs/Atomsphere/Event%20Streams/es-REST_API
servers:
  - url: https://{topicEndpoint}
    description: >-
      Topic-specific endpoint URL. Each event topic has a unique REST API URL
      obtained from the Event Streams UI in the Boomi platform.
    variables:
      topicEndpoint:
        description: The unique hostname for this event topic's REST endpoint.
        default: your-topic-endpoint.boomi.com
tags:
  - name: Messages
    description: >-
      Endpoints for producing messages to Boomi Event Streams topics via
      HTTP REST calls.
security:
  - bearerAuth: []
paths:
  /:
    post:
      operationId: publishMessages
      summary: Boomi Publish messages to a topic
      description: >-
        Publishes one or more messages to the event topic. Supports two
        operational modes: multiple messages mode (predefined JSON format with
        payload and properties fields) and single message mode (original format
        in plain text, JSON, or XML). Messages may be up to 5 MB each and the
        total HTTP request must not exceed 10 MB. Rate limited to 60,000
        requests per IP per 5-minute window.
      tags:
        - Messages
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/MultiMessageRequest'
                - $ref: '#/components/schemas/SingleMessageRequest'
          text/plain:
            schema:
              type: string
              description: Single message payload in plain text format.
          application/xml:
            schema:
              type: string
              description: Single message payload in XML format.
      responses:
        '200':
          description: Messages accepted and published successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublishResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '413':
          description: Payload too large. Maximum message size is 5 MB.
        '429':
          description: >-
            Rate limit exceeded. Maximum 60,000 requests per IP per
            5-minute window.
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Environment Token obtained from the Boomi Event Streams UI. Include as
        Authorization: Bearer {environment_token}.
  responses:
    Unauthorized:
      description: Authentication token is missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    BadRequest:
      description: The request payload is invalid or malformed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  schemas:
    MultiMessageRequest:
      type: object
      description: >-
        Request body for publishing multiple messages in the predefined JSON
        format. Each message contains a payload and optional properties.
      required: [messages]
      properties:
        messages:
          type: array
          description: Array of messages to publish to the topic.
          items:
            $ref: '#/components/schemas/MessageItem'
    MessageItem:
      type: object
      description: A single message in multi-message mode.
      required: [payload]
      properties:
        payload:
          type: string
          description: >-
            The message content. May be plain text, JSON, or XML encoded
            as a string.
        properties:
          type: object
          description: >-
            Optional custom metadata key-value pairs associated with
            this message.
          additionalProperties:
            type: string
    SingleMessageRequest:
      type: object
      description: >-
        Request body for publishing a single message in its original format.
        Properties are sent via request headers prefixed with x-msg-props-.
      additionalProperties: true
    PublishResponse:
      type: object
      description: Response returned after successfully publishing messages.
      properties:
        status:
          type: string
          description: Status of the publish operation.
          example: success
        messageIds:
          type: string
          description: >-
            Comma-separated list of message IDs assigned to the
            published messages.
    ErrorResponse:
      type: object
      description: Standard error response.
      properties:
        message:
          type: string
          description: Human-readable error message.