Boomi DataHub API

The Boomi DataHub REST APIs enable programmatic access to the master data management system through the DataHub Platform API and Repository API. The Platform API enables platform-level operations on master data domains, while the Repository API supports data repository operations with JWT authentication.

OpenAPI Specification

boomi-datahub-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Boomi DataHub API
  description: >-
    The Boomi DataHub REST API provides programmatic access to master data
    management operations. It consists of two layers: the Platform API for
    managing repositories, models, sources, and domains; and the Repository
    API for querying and manipulating golden records and staged entities.
    The Platform API uses Basic Authentication while the Repository API
    supports JWT authentication. Requests are subject to usage limits based
    on licensed connectors (1,000 times the number of connectors per 24 hours).
  version: '1.0'
  contact:
    name: Boomi Support
    url: https://community.boomi.com/s/support
  termsOfService: https://boomi.com/legal/service/
externalDocs:
  description: Boomi DataHub REST API Documentation
  url: https://help.boomi.com/docs/Atomsphere/Master%20Data%20Hub/REST%20APIs/r-mdm-REST_APIs_f43499a6-3d1c-4102-bf13-94b02659dd9f
servers:
  - url: https://mdh.boomi.com/mdh
    description: Boomi DataHub Platform API
tags:
  - name: Golden Records
    description: >-
      Query and manage the authoritative master records that result from
      matching and merging source records.
  - name: Models
    description: >-
      Manage data models that define the schema and rules for master data
      domains.
  - name: Quarantine
    description: >-
      Manage quarantined records that could not be automatically processed
      due to data quality issues.
  - name: Repositories
    description: Manage DataHub repositories that contain master data domains.
  - name: Sources
    description: >-
      Manage data sources that contribute records to the master data
      hub for matching and merging.
security:
  - basicAuth: []
  - bearerAuth: []
paths:
  /repositories:
    get:
      operationId: listRepositories
      summary: Boomi List repositories
      description: >-
        Returns a list of all DataHub repositories associated with the
        authenticated account.
      tags:
        - Repositories
      responses:
        '200':
          description: A list of DataHub repositories.
          content:
            application/json:
              schema:
                type: object
                properties:
                  repositories:
                    type: array
                    items:
                      $ref: '#/components/schemas/Repository'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createRepository
      summary: Boomi Create a repository
      description: Creates a new DataHub repository for managing master data.
      tags:
        - Repositories
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RepositoryInput'
      responses:
        '200':
          description: The created repository.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Repository'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /repositories/{repositoryId}:
    get:
      operationId: getRepository
      summary: Boomi Get a repository
      description: Retrieves details of a specific DataHub repository by its ID.
      tags:
        - Repositories
      parameters:
        - $ref: '#/components/parameters/RepositoryId'
      responses:
        '200':
          description: The repository details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Repository'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteRepository
      summary: Boomi Delete a repository
      description: Permanently deletes a DataHub repository and all its data.
      tags:
        - Repositories
      parameters:
        - $ref: '#/components/parameters/RepositoryId'
      responses:
        '200':
          description: Deletion successful.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /repositories/{repositoryId}/models:
    get:
      operationId: listModels
      summary: Boomi List models
      description: Returns all data models defined within a specific repository.
      tags:
        - Models
      parameters:
        - $ref: '#/components/parameters/RepositoryId'
      responses:
        '200':
          description: A list of data models.
          content:
            application/json:
              schema:
                type: object
                properties:
                  models:
                    type: array
                    items:
                      $ref: '#/components/schemas/Model'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    post:
      operationId: createModel
      summary: Boomi Create a model
      description: >-
        Creates a new data model within the repository that defines the
        schema for a master data domain.
      tags:
        - Models
      parameters:
        - $ref: '#/components/parameters/RepositoryId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ModelInput'
      responses:
        '200':
          description: The created data model.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Model'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /repositories/{repositoryId}/models/{modelId}:
    get:
      operationId: getModel
      summary: Boomi Get a model
      description: Retrieves the details and schema of a specific data model.
      tags:
        - Models
      parameters:
        - $ref: '#/components/parameters/RepositoryId'
        - $ref: '#/components/parameters/ModelId'
      responses:
        '200':
          description: The data model details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Model'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteModel
      summary: Boomi Delete a model
      description: Permanently deletes a data model from the repository.
      tags:
        - Models
      parameters:
        - $ref: '#/components/parameters/RepositoryId'
        - $ref: '#/components/parameters/ModelId'
      responses:
        '200':
          description: Deletion successful.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /repositories/{repositoryId}/models/{modelId}/publish:
    post:
      operationId: publishModel
      summary: Boomi Publish a model
      description: >-
        Publishes a data model, making it available for domain deployment and
        data ingestion.
      tags:
        - Models
      parameters:
        - $ref: '#/components/parameters/RepositoryId'
        - $ref: '#/components/parameters/ModelId'
      responses:
        '200':
          description: The published model.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Model'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /repositories/{repositoryId}/sources:
    get:
      operationId: listSources
      summary: Boomi List sources
      description: Returns all data sources configured within a specific repository.
      tags:
        - Sources
      parameters:
        - $ref: '#/components/parameters/RepositoryId'
      responses:
        '200':
          description: A list of data sources.
          content:
            application/json:
              schema:
                type: object
                properties:
                  sources:
                    type: array
                    items:
                      $ref: '#/components/schemas/Source'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    post:
      operationId: createSource
      summary: Boomi Create a source
      description: >-
        Creates a new data source within the repository representing a system
        that contributes records to the master data hub.
      tags:
        - Sources
      parameters:
        - $ref: '#/components/parameters/RepositoryId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SourceInput'
      responses:
        '200':
          description: The created data source.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Source'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /repositories/{repositoryId}/universes/{universeId}/records:
    get:
      operationId: listGoldenRecords
      summary: Boomi List golden records
      description: >-
        Returns a paginated list of golden records from the specified master
        data domain (universe).
      tags:
        - Golden Records
      parameters:
        - $ref: '#/components/parameters/RepositoryId'
        - $ref: '#/components/parameters/UniverseId'
        - name: pageSize
          in: query
          description: Number of records per page.
          schema:
            type: integer
            minimum: 1
            maximum: 200
            default: 100
        - name: pageToken
          in: query
          description: Pagination token from a previous response.
          schema:
            type: string
      responses:
        '200':
          description: A paginated list of golden records.
          content:
            application/json:
              schema:
                type: object
                properties:
                  records:
                    type: array
                    items:
                      $ref: '#/components/schemas/GoldenRecord'
                  nextPageToken:
                    type: string
                    description: Token for retrieving the next page of results.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /repositories/{repositoryId}/universes/{universeId}/quarantine:
    get:
      operationId: listQuarantineEntries
      summary: Boomi List quarantine entries
      description: >-
        Returns records held in quarantine that could not be automatically
        processed due to data quality or matching issues.
      tags:
        - Quarantine
      parameters:
        - $ref: '#/components/parameters/RepositoryId'
        - $ref: '#/components/parameters/UniverseId'
      responses:
        '200':
          description: A list of quarantined records.
          content:
            application/json:
              schema:
                type: object
                properties:
                  records:
                    type: array
                    items:
                      $ref: '#/components/schemas/QuarantineEntry'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: >-
        Basic Authentication for the DataHub Platform API. Users with two-factor
        authentication must include an X-Boomi-OTP header.
    bearerAuth:
      type: http
      scheme: bearer
      description: JWT Bearer token for the Repository API.
  parameters:
    RepositoryId:
      name: repositoryId
      in: path
      required: true
      description: Unique identifier of the DataHub repository.
      schema:
        type: string
    ModelId:
      name: modelId
      in: path
      required: true
      description: Unique identifier of the data model.
      schema:
        type: string
    UniverseId:
      name: universeId
      in: path
      required: true
      description: Unique identifier of the master data domain (universe).
      schema:
        type: string
  responses:
    Unauthorized:
      description: Authentication credentials are missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    BadRequest:
      description: The request body is invalid or missing required fields.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  schemas:
    Repository:
      type: object
      description: A DataHub repository that organizes master data domains and models.
      properties:
        id:
          type: string
          description: Unique identifier of the repository.
        name:
          type: string
          description: Display name of the repository.
        description:
          type: string
          description: Human-readable description of the repository's purpose.
        createdDate:
          type: string
          format: date-time
          description: Timestamp when the repository was created.
    RepositoryInput:
      type: object
      description: Input for creating a DataHub repository.
      required: [name]
      properties:
        name:
          type: string
          description: Display name for the repository.
        description:
          type: string
          description: Optional description of the repository.
    Model:
      type: object
      description: A data model defining the schema and matching rules for a master data domain.
      properties:
        id:
          type: string
          description: Unique identifier of the model.
        name:
          type: string
          description: Display name of the model.
        version:
          type: integer
          description: Current version number of the model.
        publishedVersion:
          type: integer
          description: Version number of the last published model.
        status:
          type: string
          description: Publication status of the model.
          enum: [DRAFT, PUBLISHED]
        fields:
          type: array
          description: Field definitions for this model's schema.
          items:
            $ref: '#/components/schemas/ModelField'
    ModelInput:
      type: object
      description: Input for creating or updating a data model.
      required: [name]
      properties:
        name:
          type: string
          description: Display name for the model.
        fields:
          type: array
          description: Field definitions for the model schema.
          items:
            $ref: '#/components/schemas/ModelField'
    ModelField:
      type: object
      description: A field definition within a data model schema.
      required: [name, type]
      properties:
        name:
          type: string
          description: Field name used as the identifier.
        type:
          type: string
          description: Data type of the field.
          enum: [STRING, INTEGER, FLOAT, BOOLEAN, DATE, DATETIME, REFERENCE]
        required:
          type: boolean
          description: Whether this field is required.
        unique:
          type: boolean
          description: Whether this field must be unique across records.
    Source:
      type: object
      description: A data source that contributes records to the master data hub.
      properties:
        id:
          type: string
          description: Unique identifier of the source.
        name:
          type: string
          description: Display name of the source.
        description:
          type: string
          description: Human-readable description of the source system.
        createdDate:
          type: string
          format: date-time
          description: Timestamp when the source was created.
    SourceInput:
      type: object
      description: Input for creating a data source.
      required: [name]
      properties:
        name:
          type: string
          description: Display name for the source.
        description:
          type: string
          description: Optional description of the source system.
    GoldenRecord:
      type: object
      description: >-
        The authoritative master record that results from matching and merging
        source records across contributing systems.
      properties:
        id:
          type: string
          description: Unique identifier of the golden record.
        fields:
          type: object
          description: Field values of the golden record, keyed by field name.
          additionalProperties: true
        sources:
          type: array
          description: Source records that contribute to this golden record.
          items:
            type: object
            properties:
              sourceId:
                type: string
                description: ID of the contributing source system.
              recordId:
                type: string
                description: ID of the record in the source system.
        createdDate:
          type: string
          format: date-time
          description: Timestamp when the golden record was created.
        updatedDate:
          type: string
          format: date-time
          description: Timestamp when the golden record was last updated.
    QuarantineEntry:
      type: object
      description: A record held in quarantine due to data quality or matching issues.
      properties:
        id:
          type: string
          description: Unique identifier of the quarantine entry.
        sourceId:
          type: string
          description: ID of the source that submitted this record.
        reason:
          type: string
          description: Reason the record was quarantined.
        fields:
          type: object
          description: Field values of the quarantined record.
          additionalProperties: true
        createdDate:
          type: string
          format: date-time
          description: Timestamp when the record entered quarantine.
    ErrorResponse:
      type: object
      description: Standard error response.
      properties:
        message:
          type: string
          description: Human-readable error message.
        code:
          type: integer
          description: Numeric error code.