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.
Open Postman collection'
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.
Open Postman collection'
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.
Open Postman collection'
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.
Open Postman collection'
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: {}