Omnisend
Sync e-commerce contacts and trigger email/SMS automations via the Omnisend API.
Omnisend is an email and SMS marketing platform for e-commerce. This tool reads and writes your Omnisend contact list and fires customer events that kick off Omnisend automation flows (welcome series, abandoned cart, post-purchase, etc.).
- Base URL:
https://api.omnisend.com/api - Auth:
Authorization: Omnisend-API-Key <apiKey>plus the requiredOmnisend-Version: 2026-03-15header (both sent automatically) - Dependencies: none — Python standard library only (
urllib,json)
Operations
| operation | method / endpoint | what it does |
|---|---|---|
list-contacts |
GET /api/contacts |
List contacts, optionally filtered by email, phone, status, with limit (1-250). |
get-contact |
GET /api/contacts/{id} |
Fetch a single contact by its Omnisend contactId. |
create-contact |
POST /api/contacts |
Create or update a contact from an email and/or phone identifier. |
send-event |
POST /api/events |
Send a customer event (eventName) that triggers an Omnisend automation. |
API key setup
- Log in to Omnisend.
- Go to Store settings -> Integrations & API -> API keys.
- Create an API key and copy it.
- Pass it as the
apiKeyinput. It is sent asAuthorization: Omnisend-API-Key <apiKey>.
A single API key carries all the scopes the operations need
(contacts.read, contacts.write, events.write) — no OAuth flow is required.
Inputs
| input | used by | notes |
|---|---|---|
apiKey |
all | required |
operation |
all | required: one of the four above |
contactId |
get-contact |
Omnisend contact id |
email |
create-contact, send-event, list-contacts |
email identifier / filter |
phone |
create-contact, send-event, list-contacts |
phone in international format, e.g. +15551234567 |
status |
create-contact, list-contacts |
subscribed (default), unsubscribed, or nonSubscribed |
firstName |
create-contact |
optional |
lastName |
create-contact |
optional |
tags |
create-contact |
comma-separated, e.g. source: api,vip |
limit |
list-contacts |
1-250, default 100 |
eventName |
send-event |
the automation trigger name, e.g. placed order |
properties |
send-event |
optional JSON object of event data |
Examples
List the 50 most recent contacts
{
"apiKey": "YOUR-OMNISEND-API-KEY",
"operation": "list-contacts",
"limit": "50"
}
Create / subscribe a contact
{
"apiKey": "YOUR-OMNISEND-API-KEY",
"operation": "create-contact",
"email": "[email protected]",
"firstName": "Jane",
"status": "subscribed",
"tags": "source: api"
}
Look up one contact
{
"apiKey": "YOUR-OMNISEND-API-KEY",
"operation": "get-contact",
"contactId": "5f3c0e2b9a1c2d0011223344"
}
Trigger an automation by sending an event
{
"apiKey": "YOUR-OMNISEND-API-KEY",
"operation": "send-event",
"eventName": "placed order",
"email": "[email protected]",
"properties": "{\"orderId\":\"1042\",\"total\":49.90}"
}
Output
The tool publishes:
result— the Omnisend response body as a JSON stringstatus— the HTTP status code (200/201for contacts,202for events)
On error it prints {"error": "..."} and the step fails.