Omnisend
Use Omnisend APIs to manage contacts, campaigns, segments, automations, events, products, orders, templates, webhooks, and marketing analytics.
Authentication
| Method | Kind | Status | Details |
|---|---|---|---|
| API Key | api_key | available | — |
Call a tool
import { createClient } from "@open-connector/sdk";const oc = createClient({ baseUrl: "https://api.openconnector.dev", apiKey: process.env.OPEN_CONNECTOR_API_KEY!,});const result = await oc.executeTool({ slug: "OMNISEND_DELETE_DELETE_AUTOMATIONS_ID_AUTOMATIONS_ID", connectedAccountId: "conn_...", arguments: { /* match this tool's input schema */ },});import Composio from "@composio/client";const composio = new Composio({ baseURL: "https://api.openconnector.dev/composio", apiKey: process.env.OPEN_CONNECTOR_API_KEY!,});const result = await composio.tools.execute("OMNISEND_DELETE_DELETE_AUTOMATIONS_ID_AUTOMATIONS_ID", { connected_account_id: "conn_...", arguments: { /* match this tool's input schema */ },});oc tools execute OMNISEND_DELETE_DELETE_AUTOMATIONS_ID_AUTOMATIONS_ID --data '{ }'Tool catalog
Available tools
64 callable operations
Delete automation workflowOMNISEND_DELETE_DELETE_AUTOMATIONS_ID_AUTOMATIONS_IDDelete a single automation workflow by ID. This operation is idempotent — deleting a non-existent automation returns a success response. **Scopes:** `automations.write`Connection1 scope
Delete a single automation workflow by ID. This operation is idempotent — deleting a non-existent automation returns a success response. **Scopes:** `automations.write`
Authentication
Connected account requiredScopes
automations.writeTags
Delete campaignOMNISEND_DELETE_DELETE_CAMPAIGNS_ID_CAMPAIGNS_IDDelete a campaign. **Scopes:** `campaigns.write`Connection1 scope
Delete a campaign. **Scopes:** `campaigns.write`
Authentication
Connected account requiredScopes
campaigns.writeTags
Batch remove tagsOMNISEND_DELETE_DELETE_CONTACTS_TAGS_CONTACTS_TAGSRemoves the specified tags from multiple contacts. **Scopes:** `contacts.write`Connection1 scope
Removes the specified tags from multiple contacts. **Scopes:** `contacts.write`
Authentication
Connected account requiredScopes
contacts.writeTags
Delete email templateOMNISEND_DELETE_DELETE_EMAIL_TEMPLATES_ID_EMAIL_TEMPLATES_IDWith this endpoint you can delete email template by ID. **Scopes:** `email-templates.write`Connection1 scope
With this endpoint you can delete email template by ID. **Scopes:** `email-templates.write`
Authentication
Connected account requiredScopes
email-templates.writeTags
Delete universal layoutOMNISEND_DELETE_DELETE_EMAIL_UNIVERSAL_LAYOUTS_ID_EMAIL_UNIVERSAL_LAYOUTS_IDWith this endpoint you can delete a universal layout by ID. **Scopes:** `email-templates.write`Connection1 scope
With this endpoint you can delete a universal layout by ID. **Scopes:** `email-templates.write`
Authentication
Connected account requiredScopes
email-templates.writeTags
Delete imageOMNISEND_DELETE_DELETE_IMAGES_ID_IMAGES_IDWith this endpoint you can delete an image by ID. **Scopes:** `images.write`Connection1 scope
With this endpoint you can delete an image by ID. **Scopes:** `images.write`
Authentication
Connected account requiredScopes
images.writeTags
Delete product categoryOMNISEND_DELETE_DELETE_PRODUCT_CATEGORIES_CATEGORYID_PRODUCT_CATEGORIES_CATEGORYIDWith this endpoint you can delete product category. **Scopes:** `products.write` <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Check POSTMAN documentation</a>Connection1 scope
With this endpoint you can delete product category. **Scopes:** `products.write` <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Check POSTMAN documentation</a>
Authentication
Connected account requiredScopes
products.writeTags
Delete productOMNISEND_DELETE_DELETE_PRODUCTS_PRODUCTID_PRODUCTS_PRODUCTIDDelete product by ID <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Open Postman collection</a>Connection
Delete product by ID <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Open Postman collection</a>
Authentication
Connected account requiredTags
Delete segmentOMNISEND_DELETE_DELETE_SEGMENTS_SEGMENTID_SEGMENTS_SEGMENTIDPermanently deletes a segment by its unique identifier. The segment must not be in a building state to be deleted. If the segment is currently being built, a `409 Conflict` error is returned. **Scopes:** `segments.write` **Rate Limiting:** This endpoint is rate limited to 100 requests per minute.Connection1 scope
Permanently deletes a segment by its unique identifier. The segment must not be in a building state to be deleted. If the segment is currently being built, a `409 Conflict` error is returned. **Scopes:** `segments.write` **Rate Limiting:** This endpoint is rate limited to 100 requests per minute.
Authentication
Connected account requiredScopes
segments.writeTags
List automation workflowsOMNISEND_GET_GET_AUTOMATIONS_AUTOMATIONSList automation workflows with filtering, sorting, and cursor-based pagination. **Scopes:** `automations.read` **Pagination:** This endpoint uses cursor-based pagination. - Use the `paging.cursors.after` value from the response to get the next page - Use the `paging.cursors.before` value to get the previous page - The `paging.hasMore` field indicates if more results are available - Maximum page size is 250 items. Default: 100Connection1 scope
List automation workflows with filtering, sorting, and cursor-based pagination. **Scopes:** `automations.read` **Pagination:** This endpoint uses cursor-based pagination. - Use the `paging.cursors.after` value from the response to get the next page - Use the `paging.cursors.before` value to get the previous page - The `paging.hasMore` field indicates if more results are available - Maximum page size is 250 items. Default: 100
Authentication
Connected account requiredScopes
automations.readTags
Get automation workflowOMNISEND_GET_GET_AUTOMATIONS_ID_AUTOMATIONS_IDGet a single automation workflow by ID. **Scopes:** `automations.read`Connection1 scope
Get a single automation workflow by ID. **Scopes:** `automations.read`
Authentication
Connected account requiredScopes
automations.readTags
Get UTM tags for an automation blockOMNISEND_GET_GET_AUTOMATIONS_ID_BLOCKS_BLOCKID_UTM_AUTOMATIONS_ID_BLOCKS_BLOCKID_UTMRetrieve UTM tracking tags for a specific send-action block. Missing or cleared tags are returned with their default values. **Scopes:** `automations.read`Connection1 scope
Retrieve UTM tracking tags for a specific send-action block. Missing or cleared tags are returned with their default values. **Scopes:** `automations.read`
Authentication
Connected account requiredScopes
automations.readTags
Get aggregated UTM tags for all blocksOMNISEND_GET_GET_AUTOMATIONS_ID_UTM_AUTOMATIONS_ID_UTMRetrieve UTM tracking tags for all send-action blocks in an automation. Each block's tags include default-value synthesis for missing fields. **Scopes:** `automations.read`Connection1 scope
Retrieve UTM tracking tags for all send-action blocks in an automation. Each block's tags include default-value synthesis for missing fields. **Scopes:** `automations.read`
Authentication
Connected account requiredScopes
automations.readTags
Get batchesOMNISEND_GET_GET_BATCHES_BATCHESGet batches **Scopes:** `products.read`, `contacts.read`, `events.read` <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Open Postman collection</a>Connection3 scopes
Get batches **Scopes:** `products.read`, `contacts.read`, `events.read` <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Open Postman collection</a>
Authentication
Connected account requiredScopes
products.readcontacts.readevents.readTags
Get batch informationOMNISEND_GET_GET_BATCHES_BATCHID_BATCHES_BATCHIDGet batch information **Scopes:** `products.read`, `contacts.read`, `events.read` <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Open Postman collection</a>Connection3 scopes
Get batch information **Scopes:** `products.read`, `contacts.read`, `events.read` <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Open Postman collection</a>
Authentication
Connected account requiredScopes
products.readcontacts.readevents.readTags
Get batch itemsOMNISEND_GET_GET_BATCHES_BATCHID_ITEMS_BATCHES_BATCHID_ITEMSGet batch items **Scopes:** `products.read`, `contacts.read`, `events.read` <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Open Postman collection</a>Connection3 scopes
Get batch items **Scopes:** `products.read`, `contacts.read`, `events.read` <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Open Postman collection</a>
Authentication
Connected account requiredScopes
products.readcontacts.readevents.readTags
Get information about brandOMNISEND_GET_GET_BRANDS_CURRENT_BRANDS_CURRENTWith this endpoint you can get brand's information. **Scopes:** `brands.read` <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Open Postman collection</a>Connection1 scope
With this endpoint you can get brand's information. **Scopes:** `brands.read` <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Open Postman collection</a>
Authentication
Connected account requiredScopes
brands.readTags
List campaignsOMNISEND_GET_GET_CAMPAIGNS_CAMPAIGNSList campaigns with filtering, sorting, and cursor-based pagination. **Scopes:** `campaigns.read` **Pagination:** This endpoint uses cursor-based pagination. - Use the `paging.cursors.after` value from the response to get the next page - Use the `paging.cursors.before` value to get the previous page - The `paging.hasMore` field indicates if more results are available - Maximum page size is 250 items. Default: 100Connection1 scope
List campaigns with filtering, sorting, and cursor-based pagination. **Scopes:** `campaigns.read` **Pagination:** This endpoint uses cursor-based pagination. - Use the `paging.cursors.after` value from the response to get the next page - Use the `paging.cursors.before` value to get the previous page - The `paging.hasMore` field indicates if more results are available - Maximum page size is 250 items. Default: 100
Authentication
Connected account requiredScopes
campaigns.readTags
Get campaignOMNISEND_GET_GET_CAMPAIGNS_ID_CAMPAIGNS_IDGet a single campaign by ID. **Scopes:** `campaigns.read`Connection1 scope
Get a single campaign by ID. **Scopes:** `campaigns.read`
Authentication
Connected account requiredScopes
campaigns.readTags
Get campaign UTM settingsOMNISEND_GET_GET_CAMPAIGNS_ID_UTM_CAMPAIGNS_ID_UTMGet UTM tag settings for a campaign. The response shape is the same for all campaign types: `tags` is populated for regular campaigns, `variants` for A/B campaigns. The absent field is omitted. **Scopes:** `campaigns.read`Connection1 scope
Get UTM tag settings for a campaign. The response shape is the same for all campaign types: `tags` is populated for regular campaigns, `variants` for A/B campaigns. The absent field is omitted. **Scopes:** `campaigns.read`
Authentication
Connected account requiredScopes
campaigns.readTags
List contactsOMNISEND_GET_GET_CONTACTS_CONTACTSReturns a paginated list of contacts filtered by the provided query parameters. **Scopes:** `contacts.read` **Filter restrictions:** - `tag` and `status` cannot be used together in the same request. - `updatedAtFrom` cannot be combined with `email`, `phone`, `status`, `segmentID`, or `tag`.Connection1 scope
Returns a paginated list of contacts filtered by the provided query parameters. **Scopes:** `contacts.read` **Filter restrictions:** - `tag` and `status` cannot be used together in the same request. - `updatedAtFrom` cannot be combined with `email`, `phone`, `status`, `segmentID`, or `tag`.
Authentication
Connected account requiredScopes
contacts.readTags
Get contactOMNISEND_GET_GET_CONTACTS_ID_CONTACTS_IDReturns the contact with the specified ID. **Scopes:** `contacts.read`Connection1 scope
Returns the contact with the specified ID. **Scopes:** `contacts.read`
Authentication
Connected account requiredScopes
contacts.readTags
Get email templatesOMNISEND_GET_GET_EMAIL_TEMPLATES_EMAIL_TEMPLATESWith this endpoint you can get a paginated list of email templates. **Sorting:** Use `sort` and `direction` to control the order of results. Supported sort fields: `createdAt` (default), `name`. Supported directions: `asc`, `desc` (default). **Filtering:** Use `nameContains` to filter templates by name (case-insensitive partial match, max 200 characters) **Pagination:** This endpoint uses cursor-based pagination for efficient traversal of large datasets. - Use the `paging.cursors.after` value from the response to get the next page - Use the `paging.cursors.before` value from the response to get the previous page - The `paging.hasMore` field indicates if more results are available - Do not use both `after` and `before` parameters simultaneously - Maximum page size is 100 items (default 50) - If `limit` is less than 1 or greater than 100, returns 400 Bad Request **Scopes:** `email-templates.read`Connection1 scope
With this endpoint you can get a paginated list of email templates. **Sorting:** Use `sort` and `direction` to control the order of results. Supported sort fields: `createdAt` (default), `name`. Supported directions: `asc`, `desc` (default). **Filtering:** Use `nameContains` to filter templates by name (case-insensitive partial match, max 200 characters) **Pagination:** This endpoint uses cursor-based pagination for efficient traversal of large datasets. - Use the `paging.cursors.after` value from the response to get the next page - Use the `paging.cursors.before` value from the response to get the previous page - The `paging.hasMore` field indicates if more results are available - Do not use both `after` and `before` parameters simultaneously - Maximum page size is 100 items (default 50) - If `limit` is less than 1 or greater than 100, returns 400 Bad Request **Scopes:** `email-templates.read`
Authentication
Connected account requiredScopes
email-templates.readTags
Get imageOMNISEND_GET_GET_IMAGES_ID_IMAGES_IDWith this endpoint you can get a single image by ID. **Scopes:** `images.read`Connection1 scope
With this endpoint you can get a single image by ID. **Scopes:** `images.read`
Authentication
Connected account requiredScopes
images.readTags
List imagesOMNISEND_GET_GET_IMAGES_IMAGESWith this endpoint you can get a paginated list of images for a brand. **Sorting:** Supported sort fields: `createdAt` (default), `name` Supported directions: `asc`, `desc` (default) **Filtering:** Use `nameContains` to filter images by name (case-insensitive, partial match) **Pagination:** This endpoint uses cursor-based pagination for efficient traversal of large datasets. - Use the `cursors.after` value from the response to get the next page - Use the `cursors.before` value from the response to get the previous page - The `hasMore` field indicates if more results are available - Do not use both `after` and `before` parameters simultaneously - Maximum page size is 250 items (default 100) **Scopes:** `images.read`Connection1 scope
With this endpoint you can get a paginated list of images for a brand. **Sorting:** Supported sort fields: `createdAt` (default), `name` Supported directions: `asc`, `desc` (default) **Filtering:** Use `nameContains` to filter images by name (case-insensitive, partial match) **Pagination:** This endpoint uses cursor-based pagination for efficient traversal of large datasets. - Use the `cursors.after` value from the response to get the next page - Use the `cursors.before` value from the response to get the previous page - The `hasMore` field indicates if more results are available - Do not use both `after` and `before` parameters simultaneously - Maximum page size is 250 items (default 100) **Scopes:** `images.read`
Authentication
Connected account requiredScopes
images.readTags
Get product categoryOMNISEND_GET_GET_PRODUCT_CATEGORIES_CATEGORYID_PRODUCT_CATEGORIES_CATEGORYIDGet product category by ID. **Scopes:** `products.read` <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Check POSTMAN documentation</a>Connection1 scope
Get product category by ID. **Scopes:** `products.read` <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Check POSTMAN documentation</a>
Authentication
Connected account requiredScopes
products.readTags
List product categoriesOMNISEND_GET_GET_PRODUCT_CATEGORIES_PRODUCT_CATEGORIESList products categories **Scopes:** `products.read` <br>Guide: <a href="https://api-docs.omnisend.com/docs/how-to-sync-products-catalog-categories" target="_blank">Sync products catalog, categories</a> <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Check POSTMAN documentation</a>Connection1 scope
List products categories **Scopes:** `products.read` <br>Guide: <a href="https://api-docs.omnisend.com/docs/how-to-sync-products-catalog-categories" target="_blank">Sync products catalog, categories</a> <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Check POSTMAN documentation</a>
Authentication
Connected account requiredScopes
products.readTags
Get productOMNISEND_GET_GET_PRODUCTS_PRODUCTID_PRODUCTS_PRODUCTIDGet product by ID **Scopes:** `products.read` <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Open Postman collection</a>Connection1 scope
Get product by ID **Scopes:** `products.read` <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Open Postman collection</a>
Authentication
Connected account requiredScopes
products.readTags
List productsOMNISEND_GET_GET_PRODUCTS_PRODUCTSList products **Scopes:** `products.read` <br>Guide: <a href="https://api-docs.omnisend.com/docs/how-to-sync-products-catalog-categories" target="_blank">Sync products catalog, categories</a> <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Open Postman collection</a>Connection1 scope
List products **Scopes:** `products.read` <br>Guide: <a href="https://api-docs.omnisend.com/docs/how-to-sync-products-catalog-categories" target="_blank">Sync products catalog, categories</a> <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Open Postman collection</a>
Authentication
Connected account requiredScopes
products.readTags
Get segmentOMNISEND_GET_GET_SEGMENTS_SEGMENTID_SEGMENTS_SEGMENTIDReturns a segment by its unique identifier. **Scopes:** `segments.read` **Rate Limiting:** This endpoint is rate limited to 100 requests per minute.Connection1 scope
Returns a segment by its unique identifier. **Scopes:** `segments.read` **Rate Limiting:** This endpoint is rate limited to 100 requests per minute.
Authentication
Connected account requiredScopes
segments.readTags
Get segment statisticsOMNISEND_GET_GET_SEGMENTS_SEGMENTID_STATISTICS_SEGMENTS_SEGMENTID_STATISTICSReturns statistics for a segment, including the total number of matching contacts. **Scopes:** `segments.read`Connection1 scope
Returns statistics for a segment, including the total number of matching contacts. **Scopes:** `segments.read`
Authentication
Connected account requiredScopes
segments.readTags
List segmentsOMNISEND_GET_GET_SEGMENTS_SEGMENTSList segments with sorting and cursor-based pagination support. **Scopes:** `segments.read` **Pagination:** This endpoint uses cursor-based pagination. Use the `after` cursor from the response to get the next page, or the `before` cursor to get the previous page. Do not use both `after` and `before` parameters simultaneously. **Sorting:** - Only single-field sorting is supported. You cannot sort by multiple fields. - Available sort fields: `createdAt` (default), `name`. - When sorting by `name`, segments are sorted lexicographically (case-sensitive). - Sort parameters are only required on the first request. Subsequent requests using a cursor will automatically use the sort settings embedded in the cursor. **Cursor Behavior:** - Cursors are self-contained and include all parameters needed for pagination. - Once you have a cursor, you only need to pass the cursor for subsequent pages. - If sort parameters are provided with a cursor, they must match the cursor's sort settings. - Cursors may become invalid if the underlying data changes significantly (e.g., the referenced segment is deleted). **Rate Limiting:** This endpoint is rate limited to 100 requests per minute.Connection1 scope
List segments with sorting and cursor-based pagination support. **Scopes:** `segments.read` **Pagination:** This endpoint uses cursor-based pagination. Use the `after` cursor from the response to get the next page, or the `before` cursor to get the previous page. Do not use both `after` and `before` parameters simultaneously. **Sorting:** - Only single-field sorting is supported. You cannot sort by multiple fields. - Available sort fields: `createdAt` (default), `name`. - When sorting by `name`, segments are sorted lexicographically (case-sensitive). - Sort parameters are only required on the first request. Subsequent requests using a cursor will automatically use the sort settings embedded in the cursor. **Cursor Behavior:** - Cursors are self-contained and include all parameters needed for pagination. - Once you have a cursor, you only need to pass the cursor for subsequent pages. - If sort parameters are provided with a cursor, they must match the cursor's sort settings. - Cursors may become invalid if the underlying data changes significantly (e.g., the referenced segment is deleted). **Rate Limiting:** This endpoint is rate limited to 100 requests per minute.
Authentication
Connected account requiredScopes
segments.readTags
Update campaignOMNISEND_PATCH_PATCH_CAMPAIGNS_ID_CAMPAIGNS_IDUpdate a campaign draft. **Scopes:** `campaigns.write`Connection1 scope
Update a campaign draft. **Scopes:** `campaigns.write`
Authentication
Connected account requiredScopes
campaigns.writeTags
Update contact by emailOMNISEND_PATCH_PATCH_CONTACTS_CONTACTSUpdates the contact matching the provided email address. **Scopes:** `contacts.write`Connection1 scope
Updates the contact matching the provided email address. **Scopes:** `contacts.write`
Authentication
Connected account requiredScopes
contacts.writeTags
Update contact by IDOMNISEND_PATCH_PATCH_CONTACTS_ID_CONTACTS_IDUpdates the contact with the specified ID. **Scopes:** `contacts.write`Connection1 scope
Updates the contact with the specified ID. **Scopes:** `contacts.write`
Authentication
Connected account requiredScopes
contacts.writeTags
Update product categoryOMNISEND_PATCH_PATCH_PRODUCT_CATEGORIES_CATEGORYID_PRODUCT_CATEGORIES_CATEGORYIDUpdate product category by ID. **Scopes:** `products.write` <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Check POSTMAN documentation</a>Connection1 scope
Update product category by ID. **Scopes:** `products.write` <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Check POSTMAN documentation</a>
Authentication
Connected account requiredScopes
products.writeTags
Generate reportOMNISEND_POST_POST_ANALYTICS_REPORTS_ANALYTICS_REPORTSReturns aggregated marketing analytics grouped by message send date. Covers delivery, engagement, and revenue attribution metrics for campaigns and automations. Supports optional dimensions (timestamp, channel, activity), filters, and up to 4 queries per request. **Scopes:** `analytics.read`Connection1 scope
Returns aggregated marketing analytics grouped by message send date. Covers delivery, engagement, and revenue attribution metrics for campaigns and automations. Supports optional dimensions (timestamp, channel, activity), filters, and up to 4 queries per request. **Scopes:** `analytics.read`
Authentication
Connected account requiredScopes
analytics.readTags
Generate reportOMNISEND_POST_POST_ANALYTICS_STATISTICS_ANALYTICS_STATISTICSReturns aggregated marketing analytics grouped by event date (when opens, clicks, orders actually occurred). Covers delivery, engagement, revenue attribution, and audience growth metrics. Requires a timestamp dimension. Supports a rich set of dimensions (client, click, subscription, deliverability) and up to 4 queries per request. **Scopes:** `analytics.read`Connection1 scope
Returns aggregated marketing analytics grouped by event date (when opens, clicks, orders actually occurred). Covers delivery, engagement, revenue attribution, and audience growth metrics. Requires a timestamp dimension. Supports a rich set of dimensions (client, click, subscription, deliverability) and up to 4 queries per request. **Scopes:** `analytics.read`
Authentication
Connected account requiredScopes
analytics.readTags
Copy automation workflowOMNISEND_POST_POST_AUTOMATIONS_ID_COPY_AUTOMATIONS_ID_COPYCreate a copy of an existing automation workflow. The copy is always created in a disabled state, regardless of the source automation's status. The request body is optional. When provided, you can specify a custom name for the copy. When omitted (or when name is empty), the copy is named "Copy of: <original name>". **Scopes:** `automations.write`Connection1 scope
Create a copy of an existing automation workflow. The copy is always created in a disabled state, regardless of the source automation's status. The request body is optional. When provided, you can specify a custom name for the copy. When omitted (or when name is empty), the copy is named "Copy of: <original name>". **Scopes:** `automations.write`
Authentication
Connected account requiredScopes
automations.writeTags
Disable automation workflowOMNISEND_POST_POST_AUTOMATIONS_ID_DISABLE_AUTOMATIONS_ID_DISABLEDisable an automation workflow. Once disabled, the workflow stops accepting new trigger events. Use `contactsInWorkflow` to control what happens to contacts currently progressing through the workflow: - `keep`: contacts remain and continue through the remaining blocks until completion. No new contacts enter. - `exit`: all contacts are immediately removed from the workflow. Contacts who have not yet received their messages will not receive them. Disabling an already-disabled automation is idempotent — returns the current state without side effects. **Scopes:** `automations.write`Connection1 scope
Disable an automation workflow. Once disabled, the workflow stops accepting new trigger events. Use `contactsInWorkflow` to control what happens to contacts currently progressing through the workflow: - `keep`: contacts remain and continue through the remaining blocks until completion. No new contacts enter. - `exit`: all contacts are immediately removed from the workflow. Contacts who have not yet received their messages will not receive them. Disabling an already-disabled automation is idempotent — returns the current state without side effects. **Scopes:** `automations.write`
Authentication
Connected account requiredScopes
automations.writeTags
Enable automation workflowOMNISEND_POST_POST_AUTOMATIONS_ID_ENABLE_AUTOMATIONS_ID_ENABLEEnable an automation workflow. Once enabled, the workflow starts processing trigger events in real time. The request body is optional. Use `enrollExisting` to also enroll contacts who already qualify at the time of enabling. When the body is omitted (or `enrollExisting` is omitted or false), only future trigger events are processed. Enabling an already-enabled automation is idempotent — returns the current state without side effects. **Scopes:** `automations.write`Connection1 scope
Enable an automation workflow. Once enabled, the workflow starts processing trigger events in real time. The request body is optional. Use `enrollExisting` to also enroll contacts who already qualify at the time of enabling. When the body is omitted (or `enrollExisting` is omitted or false), only future trigger events are processed. Enabling an already-enabled automation is idempotent — returns the current state without side effects. **Scopes:** `automations.write`
Authentication
Connected account requiredScopes
automations.writeTags
Create batchOMNISEND_POST_POST_BATCHES_BATCHESBatch 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` <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Open Postman collection</a>Connection3 scopes
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` <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Open Postman collection</a>
Authentication
Connected account requiredScopes
products.writecontacts.writeevents.writeTags
Connect brandOMNISEND_POST_POST_BRANDS_CURRENT_BRANDS_CURRENTWith this endpoint you can connect your site to Omnisend. Note it's only possible to connect store with [oAuth flow](https://api-docs.omnisend.com/reference/oauth). **Scopes:** `brands.write` <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Open Postman collection</a>Connection1 scope
With this endpoint you can connect your site to Omnisend. Note it's only possible to connect store with [oAuth flow](https://api-docs.omnisend.com/reference/oauth). **Scopes:** `brands.write` <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Open Postman collection</a>
Authentication
Connected account requiredScopes
brands.writeTags
Create campaignOMNISEND_POST_POST_CAMPAIGNS_CAMPAIGNSCreate a new campaign draft. **Scopes:** `campaigns.write`Connection1 scope
Create a new campaign draft. **Scopes:** `campaigns.write`
Authentication
Connected account requiredScopes
campaigns.writeTags
Resume A/B testOMNISEND_POST_POST_CAMPAIGNS_ID_AB_TEST_RESUME_CAMPAIGNS_ID_AB_TEST_RESUMEResume a stopped A/B test. Automatic winner selection becomes eligible to pick this campaign again. Available only while the campaign is in `stopped` status. **Scopes:** `campaigns.write`Connection1 scope
Resume a stopped A/B test. Automatic winner selection becomes eligible to pick this campaign again. Available only while the campaign is in `stopped` status. **Scopes:** `campaigns.write`
Authentication
Connected account requiredScopes
campaigns.writeTags
Stop A/B testOMNISEND_POST_POST_CAMPAIGNS_ID_AB_TEST_STOP_CAMPAIGNS_ID_AB_TEST_STOPHalt the A/B test winner-selection phase. While stopped, automatic winner selection no longer considers this campaign until it is resumed. Available only while the campaign is in `started` status. **Scopes:** `campaigns.write`Connection1 scope
Halt the A/B test winner-selection phase. While stopped, automatic winner selection no longer considers this campaign until it is resumed. Available only while the campaign is in `started` status. **Scopes:** `campaigns.write`
Authentication
Connected account requiredScopes
campaigns.writeTags
Select A/B test winnerOMNISEND_POST_POST_CAMPAIGNS_ID_AB_TEST_WINNER_CAMPAIGNS_ID_AB_TEST_WINNERManually pick a variant as the winner. The chosen variant is routed into the send pipeline immediately. **Scopes:** `campaigns.write`Connection1 scope
Manually pick a variant as the winner. The chosen variant is routed into the send pipeline immediately. **Scopes:** `campaigns.write`
Authentication
Connected account requiredScopes
campaigns.writeTags
Cancel campaignOMNISEND_POST_POST_CAMPAIGNS_ID_CANCEL_CAMPAIGNS_ID_CANCELCancel a campaign and mark it as canceled. **Cancelable source states:** `scheduled` or `paused` (all channel types), or `started` (email only). Any other status (e.g. `draft`, `sent`, `canceled`) returns 409. Supported cases: - Any scheduled or paused campaign (all channel types) - Started email campaigns **Note:** For started campaigns, cancellation is best-effort — messages already in flight may still be delivered. **Scopes:** `campaigns.write`Connection1 scope
Cancel a campaign and mark it as canceled. **Cancelable source states:** `scheduled` or `paused` (all channel types), or `started` (email only). Any other status (e.g. `draft`, `sent`, `canceled`) returns 409. Supported cases: - Any scheduled or paused campaign (all channel types) - Started email campaigns **Note:** For started campaigns, cancellation is best-effort — messages already in flight may still be delivered. **Scopes:** `campaigns.write`
Authentication
Connected account requiredScopes
campaigns.writeTags
Copy campaignOMNISEND_POST_POST_CAMPAIGNS_ID_COPY_CAMPAIGNS_ID_COPYCreate a draft copy of an existing campaign, copying content, audience, and settings from the original. The copied campaign name will be prefixed with "Copy of: ". **Scopes:** `campaigns.write`Connection1 scope
Create a draft copy of an existing campaign, copying content, audience, and settings from the original. The copied campaign name will be prefixed with "Copy of: ". **Scopes:** `campaigns.write`
Authentication
Connected account requiredScopes
campaigns.writeTags
Send campaignOMNISEND_POST_POST_CAMPAIGNS_ID_SEND_CAMPAIGNS_ID_SENDSubmit a campaign draft for sending. Supports both email and SMS campaigns. Behavior depends on the campaign's sending strategy: - **Immediate**: Campaign will be sent immediately - **Scheduled**: Campaign will be queued for the scheduled time with optional timezone optimization **Scopes:** `campaigns.write`Connection1 scope
Submit a campaign draft for sending. Supports both email and SMS campaigns. Behavior depends on the campaign's sending strategy: - **Immediate**: Campaign will be sent immediately - **Scheduled**: Campaign will be queued for the scheduled time with optional timezone optimization **Scopes:** `campaigns.write`
Authentication
Connected account requiredScopes
campaigns.writeTags
Create or update existing contactOMNISEND_POST_POST_CONTACTS_CONTACTSCreates a new contact. If a contact with the provided email identifier already exists, it will be updated instead. Returns `201 Created` for new contacts and `200 OK` when an existing contact was updated. **Scopes:** `contacts.write`Connection1 scope
Creates a new contact. If a contact with the provided email identifier already exists, it will be updated instead. Returns `201 Created` for new contacts and `200 OK` when an existing contact was updated. **Scopes:** `contacts.write`
Authentication
Connected account requiredScopes
contacts.writeTags
Batch add tagsOMNISEND_POST_POST_CONTACTS_TAGS_CONTACTS_TAGSAdds the specified tags to multiple contacts. **Scopes:** `contacts.write`Connection1 scope
Adds the specified tags to multiple contacts. **Scopes:** `contacts.write`
Authentication
Connected account requiredScopes
contacts.writeTags
Render email contentOMNISEND_POST_POST_EMAIL_CONTENT_ID_RENDER_EMAIL_CONTENT_ID_RENDERWith this endpoint you can render email content to HTML by ID. The content is rendered with an empty data context (no contact, no marketing activity). **Scopes:** `email-templates.write`Connection1 scope
With this endpoint you can render email content to HTML by ID. The content is rendered with an empty data context (no contact, no marketing activity). **Scopes:** `email-templates.write`
Authentication
Connected account requiredScopes
email-templates.writeTags
Render email templateOMNISEND_POST_POST_EMAIL_TEMPLATES_ID_RENDER_EMAIL_TEMPLATES_ID_RENDERWith this endpoint you can render an email template by ID and get the full HTML body for preview purposes. **Scopes:** `email-templates.write`Connection1 scope
With this endpoint you can render an email template by ID and get the full HTML body for preview purposes. **Scopes:** `email-templates.write`
Authentication
Connected account requiredScopes
email-templates.writeTags
Send Customer eventOMNISEND_POST_POST_EVENTS_EVENTSWith this endpoint you can send customer events to Omnisend. Customer events are used to track customer behavior and trigger automations based on that behavior. You can either format and send custom customer events or use predefined events. **Scopes:** `events.write` <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Open Postman collection</a>Connection1 scope
With this endpoint you can send customer events to Omnisend. Customer events are used to track customer behavior and trigger automations based on that behavior. You can either format and send custom customer events or use predefined events. **Scopes:** `events.write` <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Open Postman collection</a>
Authentication
Connected account requiredScopes
events.writeTags
Upload image by URLOMNISEND_POST_POST_IMAGES_IMAGESWith this endpoint you can upload an image from a publicly accessible URL. If the name is not provided, the filename will be extracted from the URL. **Scopes:** `images.write`Connection1 scope
With this endpoint you can upload an image from a publicly accessible URL. If the name is not provided, the filename will be extracted from the URL. **Scopes:** `images.write`
Authentication
Connected account requiredScopes
images.writeTags
Upload image fileOMNISEND_POST_POST_IMAGES_UPLOAD_IMAGES_UPLOADWith this endpoint you can upload an image file directly from your computer. **File Requirements:** - Supported formats: JPEG, PNG, GIF, WebP - Maximum file size: 5MB **Scopes:** `images.write`Connection1 scope
With this endpoint you can upload an image file directly from your computer. **File Requirements:** - Supported formats: JPEG, PNG, GIF, WebP - Maximum file size: 5MB **Scopes:** `images.write`
Authentication
Connected account requiredScopes
images.writeTags
Create product categoryOMNISEND_POST_POST_PRODUCT_CATEGORIES_PRODUCT_CATEGORIESCreates a new product category **Scopes:** `products.write` <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Check POSTMAN documentation</a>Connection1 scope
Creates a new product category **Scopes:** `products.write` <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Check POSTMAN documentation</a>
Authentication
Connected account requiredScopes
products.writeTags
Create productOMNISEND_POST_POST_PRODUCTS_PRODUCTSCreates a new product **Scopes:** `products.write` <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Open Postman collection</a>Connection1 scope
Creates a new product **Scopes:** `products.write` <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Open Postman collection</a>
Authentication
Connected account requiredScopes
products.writeTags
Replace automation workflow blocksOMNISEND_PUT_PUT_AUTOMATIONS_ID_BLOCKS_AUTOMATIONS_ID_BLOCKSReplace the full block tree for an automation workflow. Blocks identified by `id` are updated in place. Blocks identified by `temporaryID` are created as new blocks. Existing blocks not included in this array are removed. Enabled automations cannot be restructured. Disable the automation via `POST /automations/{id}/disable`, send the new block tree, then re-enable via `POST /automations/{id}/enable` when ready. When disabling, `contactsInWorkflow` controls whether contacts already in the workflow continue through the remaining blocks (`keep`) or exit immediately (`exit`). **Scopes:** `automations.write`Connection1 scope
Replace the full block tree for an automation workflow. Blocks identified by `id` are updated in place. Blocks identified by `temporaryID` are created as new blocks. Existing blocks not included in this array are removed. Enabled automations cannot be restructured. Disable the automation via `POST /automations/{id}/disable`, send the new block tree, then re-enable via `POST /automations/{id}/enable` when ready. When disabling, `contactsInWorkflow` controls whether contacts already in the workflow continue through the remaining blocks (`keep`) or exit immediately (`exit`). **Scopes:** `automations.write`
Authentication
Connected account requiredScopes
automations.writeTags
Update UTM tags for an automation blockOMNISEND_PUT_PUT_AUTOMATIONS_ID_BLOCKS_BLOCKID_UTM_AUTOMATIONS_ID_BLOCKS_BLOCKID_UTMSet UTM tracking tags for a specific send-action block. All three tag fields are replaced atomically. Send an empty string to clear a field — the next read will return its default value. **Scopes:** `automations.write`Connection1 scope
Set UTM tracking tags for a specific send-action block. All three tag fields are replaced atomically. Send an empty string to clear a field — the next read will return its default value. **Scopes:** `automations.write`
Authentication
Connected account requiredScopes
automations.writeTags
Update campaign UTM settingsOMNISEND_PUT_PUT_CAMPAIGNS_ID_UTM_CAMPAIGNS_ID_UTMReplace UTM tag settings for a campaign. For regular campaigns send a `tags` object. For A/B test campaigns send a `variants` object. The campaign must be in draft status. **Scopes:** `campaigns.write`Connection1 scope
Replace UTM tag settings for a campaign. For regular campaigns send a `tags` object. For A/B test campaigns send a `variants` object. The campaign must be in draft status. **Scopes:** `campaigns.write`
Authentication
Connected account requiredScopes
campaigns.writeTags
Replace productOMNISEND_PUT_PUT_PRODUCTS_PRODUCTID_PRODUCTS_PRODUCTIDReplace product by ID **Scopes:** `products.write` <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Open Postman collection</a>Connection1 scope
Replace product by ID **Scopes:** `products.write` <br><a href="https://www.postman.com/omnisend-api/workspace/omnisend/overview" target="_blank">Open Postman collection</a>
Authentication
Connected account requiredScopes
products.writeTags
Update segmentOMNISEND_PUT_PUT_SEGMENTS_SEGMENTID_SEGMENTS_SEGMENTIDUpdates an existing segment by ID. The segment must not be in a building state to be updated. If the segment is currently being built, a `409 Conflict` error is returned. **Scopes:** `segments.write` **Rate Limiting:** This endpoint is rate limited to 15 requests per minute. The request body structure (`name` and `conditionGroups`) is identical to [Create segment](post_segments). See the Create segment endpoint for detailed examples of condition groups, filters, and advanced segmentation patterns.Connection1 scope
Updates an existing segment by ID. The segment must not be in a building state to be updated. If the segment is currently being built, a `409 Conflict` error is returned. **Scopes:** `segments.write` **Rate Limiting:** This endpoint is rate limited to 15 requests per minute. The request body structure (`name` and `conditionGroups`) is identical to [Create segment](post_segments). See the Create segment endpoint for detailed examples of condition groups, filters, and advanced segmentation patterns.
Authentication
Connected account requiredScopes
segments.writeTags