Omnisend Batch API
The Batch API from Omnisend — 3 operation(s) for batch.
Operations 4
Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay
The Batch API from Omnisend — 3 operation(s) for batch.
Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/omnisend:omnisend-batch-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a 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: 3.2.0
info:
contact: {}
title: Batches Batch API
version: '2026'
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
operationId: getBatches
x-operation-id-source: derived
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
operationId: postBatches
x-operation-id-source: derived
/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
operationId: getBatchesByBatchID
x-operation-id-source: derived
/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
operationId: getBatchesByBatchIDItems
x-operation-id-source: derived
components:
schemas:
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
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
BatchItem:
properties:
itemID:
example: 5f92cbf10cf217478ba93561
type: string
request: {}
response: {}
responseCode:
example: 200
type: integer
status:
example: finished
type: string
type: object
ListBatchesResponse:
properties:
batches:
items:
$ref: '#/components/schemas/Batch'
type: array
paging:
$ref: '#/components/schemas/Paging'
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
CreateBatchResponse:
properties:
batchID:
type: string
totalCount:
type: integer
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
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
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
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: {}