Omnisend Batch API

The Batch API from Omnisend — 3 operation(s) for batch.

Operations 4

GET /batches Get batches
POST /batches Create batch
GET /batches/{batchID} Get batch information
GET /batches/{batchID}/items Get batch items

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/omnisend-batch-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

omnisend-batch-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact: {}
  title: Batches Batch 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.
servers:
- url: https://api.omnisend.com/api
tags:
- name: Batch
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
components:
  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
    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
    ListBatchesResponse:
      properties:
        batches:
          items:
            $ref: '#/components/schemas/Batch'
          type: array
        paging:
          $ref: '#/components/schemas/Paging'
      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
    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
    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
    BatchItem:
      properties:
        itemID:
          example: 5f92cbf10cf217478ba93561
          type: string
        request: {}
        response: {}
        responseCode:
          example: 200
          type: integer
        status:
          example: finished
          type: string
      type: object
  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: {}