Omnisend Batches API

The Batches API from Omnisend — 4 operation(s) for batches. Version 2026-03-15, harvested from Omnisend's published contract.

OpenAPI Specification

omnisend-batches-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  contact: {}
  title: Batches API
  version: '2026'
  x-api-evangelist:
    harvested: '2026-08-13'
    method: searched
    source: https://dash.readme.com/api/v1/api-registry/azzp6hramsfxryvv
    source-note: Published by Omnisend on its own docs host api-docs.omnisend.com (ReadMe project @omnisend,
      branch v2026-03-15); registry document referenced by the reference page as oasPublicUrl.
paths:
  /batches:
    get:
      description: 'Get batches


        **Scopes:**

        `products.read`, `contacts.read`, `events.read`


        **Rate Limiting:**

        This endpoint is rate limited to 400 requests per minute.


        <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Open
        Postman collection</a>'
      parameters:
      - description: Offset (minimum 0)
        in: query
        name: offset
        schema:
          type: integer
          default: 0
      - description: Limit (1-250)
        in: query
        name: limit
        schema:
          type: integer
          default: 100
      - description: Status
        in: query
        name: status
        schema:
          type: string
          enum:
          - pending
          - inProgress
          - finished
          - stopped
      - description: 'Date from (format: yyyy-mm-dd)'
        in: query
        name: dateFrom
        schema:
          type: string
      - description: 'Date to (format: yyyy-mm-dd)'
        in: query
        name: dateTo
        schema:
          type: string
      - description: Endpoint
        in: query
        name: endpoint
        required: true
        schema:
          type: string
          enum:
          - products
          - contacts
          - events
      - $ref: '#/components/parameters/APIVersionHeader'
      responses:
        '200':
          description: List of batches
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListBatchesResponse'
        '400':
          description: Validation failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationProblem'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
      security:
      - Bearer:
        - products.read
        - contacts.read
        - events.read
      - ApiKeyAuth: []
      summary: Get batches
      tags:
      - Batch
    post:
      description: 'Batch operations allow for multiple actions of a similar type to be executed in a
        single request. Utilizing the batch endpoint is recommended to avoid hitting rate limits and to
        enhance overall performance.


        Creating batches is an asynchronous process that initiates the creation or updating of the specified
        items.


        * POST batch operations to create multiple items simultaneously.

        * PUT batch operations to apply multiple updates to multiple items.

        Each batch operation can include up to 100 actions.


        The required scopes depend on the type of batch operation being performed.



        **WARNING**: Before sending a batch of **events**, ensure there are no automations configured
        in Omnisend that could send messages to customers based on the imported data. This could result
        in duplicate messages being sent to customers.


        **Scopes:**


        `products.write`, `contacts.write`, `events.write`


        **Rate Limiting:**

        This endpoint is rate limited to 400 requests per minute.


        <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Open
        Postman collection</a>'
      parameters:
      - $ref: '#/components/parameters/APIVersionHeader'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateBatchRequest'
        description: Batch to create
        required: true
      responses:
        '201':
          description: Batch created successfully with the given ID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateBatchResponse'
        '400':
          description: Validation failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationProblem'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
      security:
      - Bearer:
        - products.write
        - contacts.write
        - events.write
      - ApiKeyAuth: []
      summary: Create batch
      tags:
      - Batch
  /batches/{batchID}:
    get:
      description: 'Get batch information


        **Scopes:**

        `products.read`, `contacts.read`, `events.read`


        **Rate Limiting:**

        This endpoint is rate limited to 400 requests per minute.


        <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Open
        Postman collection</a>'
      parameters:
      - description: Batch ID
        in: path
        name: batchID
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/APIVersionHeader'
      responses:
        '200':
          description: Batch information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Batch'
        '400':
          description: Validation failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationProblem'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
      security:
      - Bearer:
        - products.read
        - contacts.read
        - events.read
      - ApiKeyAuth: []
      summary: Get batch information
      tags:
      - Batch
  /batches/{batchID}/items:
    get:
      description: 'Get batch items


        **Scopes:**

        `products.read`, `contacts.read`, `events.read`


        **Rate Limiting:**

        This endpoint is rate limited to 400 requests per minute.


        <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Open
        Postman collection</a>'
      parameters:
      - description: Batch ID
        in: path
        name: batchID
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/APIVersionHeader'
      responses:
        '200':
          description: Batch items for a given batch ID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Batch'
        '400':
          description: Validation failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationProblem'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Problem'
      security:
      - Bearer:
        - products.read
        - contacts.read
        - events.read
      - ApiKeyAuth: []
      summary: Get batch items
      tags:
      - Batch
servers:
- url: https://api.omnisend.com/api
components:
  parameters:
    APIVersionHeader:
      description: API version that specifies the response format and behaviour
      in: header
      name: Omnisend-Version
      required: true
      schema:
        type: string
        default: '2026-03-15'
  securitySchemes:
    ApiKeyAuth:
      in: header
      name: Authorization
      type: apiKey
    Bearer:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://app.omnisend.com/oauth2/token
          scopes: {}
  schemas:
    Batch:
      properties:
        batchID:
          example: 5f92cbf10cf217478ba93561
          type: string
        createdAt:
          example: '2021-01-01T00:00:00Z'
          type: string
        endedAt:
          example: '2021-01-01T00:00:00Z'
          type: string
        endpoint:
          example: contacts
          type: string
        errors:
          items:
            $ref: '#/components/schemas/BatchItem'
          type: array
        errorsCount:
          example: 0
          type: integer
        eventID:
          example: 5f92cbf10cf217478ba93561
          type: string
        finishedCount:
          example: 100
          type: integer
        method:
          example: POST
          type: string
        origin:
          example: api
          type: string
        responses:
          items:
            $ref: '#/components/schemas/BatchItem'
          type: array
        startedAt:
          example: '2021-01-01T00:00:00Z'
          type: string
        status:
          example: finished
          type: string
        totalCount:
          example: 100
          type: integer
      type: object
    BatchItem:
      properties:
        itemID:
          example: 5f92cbf10cf217478ba93561
          type: string
        request: {}
        response: {}
        responseCode:
          example: 200
          type: integer
        status:
          example: finished
          type: string
      type: object
    CreateBatchRequest:
      properties:
        endpoint:
          enum:
          - products
          - contacts
          - events
          - categories
          example: contacts
          type: string
        items:
          items: {}
          maxItems: 100
          minItems: 1
          type: array
        method:
          enum:
          - POST
          - PUT
          example: POST
          type: string
        origin:
          example: omnisend
          type: string
      required:
      - endpoint
      - items
      - method
      type: object
    CreateBatchResponse:
      properties:
        batchID:
          type: string
        totalCount:
          type: integer
      type: object
    FieldError:
      description: A single field validation failure within a validation error response.
      properties:
        code:
          description: Error code indicating the type of failure
          example: invalid_format
          type: string
        field:
          description: Dot-separated path to the field that failed validation
          example: content.email.subject
          type: string
        message:
          description: Human-readable explanation of what is wrong with the field value
          example: Must be a valid email address
          type: string
      type: object
    ListBatchesResponse:
      properties:
        batches:
          items:
            $ref: '#/components/schemas/Batch'
          type: array
        paging:
          $ref: '#/components/schemas/Paging'
      type: object
    Paging:
      properties:
        limit:
          example: 100
          type: integer
        next:
          example: https://api.omnisend.com/api/batches?limit=100&offset=105
          type: string
        offset:
          example: 5
          type: integer
        previous:
          example: https://api.omnisend.com/api/batches?limit=100&offset=5
          type: string
      type: object
    Problem:
      description: Standard error response returned by all API endpoints on failure.
      properties:
        detail:
          description: Human-readable explanation of this specific error occurrence
          example: A human-readable explanation of the error.
          type: string
        instance:
          description: Request trace identifier for support and debugging
          example: urn:omnisend:request:00000000-0000-0000-0000-000000000001
          type: string
        status:
          description: HTTP status code
          example: 0
          type: integer
        title:
          description: Short description of the error type
          example: Problem
          type: string
        type:
          description: URI that identifies the error type
          example: https://problems.omnisend.com/problem
          type: string
      type: object
    ValidationProblem:
      description: Error response returned when the request contains invalid input. The errors array lists
        every field that failed validation.
      properties:
        detail:
          description: Human-readable explanation of this specific error occurrence
          example: A human-readable explanation of the error.
          type: string
        errors:
          description: List of fields that failed validation
          items:
            $ref: '#/components/schemas/FieldError'
          type: array
        instance:
          description: Request trace identifier for support and debugging
          example: urn:omnisend:request:00000000-0000-0000-0000-000000000001
          type: string
        status:
          description: HTTP status code
          example: 0
          type: integer
        title:
          description: Short description of the error type
          example: Problem
          type: string
        type:
          description: URI that identifies the error type
          example: https://problems.omnisend.com/problem
          type: string
      type: object