Omnisend Email & SMS Campaigns
Draft, test and send Omnisend campaigns without opening the editor: create an email or SMS draft for a segment, fill in subject, sender and content, set UTM tags, send a test to up to 5 inboxes, then send or schedule it. Copy last month's winner as a starting point, and pull a scheduled send back to draft or cancel it.
Connect this API to an AI agent Browse all specs
What you can do with Omnisend Email & SMS Campaigns via MCP
Every endpoint below becomes a governed tool your AI agent (Claude, ChatGPT, or a customer-facing VX agent) can call — with scoped permissions, sandbox testing, and audit logs.
| Method | Path | Operation | Description |
|---|---|---|---|
| GET | /campaigns |
listCampaigns | List campaigns by status, channel, type, name or date |
| POST | /campaigns |
createCampaign | Create an email, SMS or push campaign draft |
| GET | /campaigns/{id} |
getCampaign | Get a campaign with its audience, content and sending settings |
| PATCH | /campaigns/{id} |
updateCampaign | Update a draft's name, audience, content or sending settings |
| POST | /campaigns/{id}/copy |
copyCampaign | Copy a campaign into a new draft |
| GET | /campaigns/{id}/utm |
getCampaignUtm | Get a campaign's UTM tag settings |
| PUT | /campaigns/{id}/utm |
updateCampaignUtm | Replace a draft campaign's UTM tags |
| POST | /campaigns/{id}/test-email |
sendTestEmail | Email a test of a draft campaign to up to 5 recipients |
| POST | /campaigns/{id}/send |
sendCampaign | Send a draft campaign now or at its scheduled time |
| POST | /campaigns/{id}/restoreToDraft |
restoreCampaignToDraft | Pull a scheduled campaign back to draft |
| POST | /campaigns/{id}/cancel |
cancelCampaign | Cancel a scheduled, paused or sending campaign |
Authentication
omnisendApiKey
API key — sent as the Authorization header
Omnisend API key sent in the Authorization header as Omnisend-API-Key <your key>. Save the whole value, including the Omnisend-API-Key prefix, as the credential.
How to get a credential
- In Omnisend, open Store settings > API keys (app.omnisend.com/integrations/api-keys).
- Click Create API key, name it (e.g.
VX Agents campaigns). - Under permissions, give Campaigns read and write access.
- Copy the key and save it as
Omnisend-API-Key <key>.
Permissions used
| Permission | Operations |
|---|---|
Campaigns: read (campaigns.read) |
listCampaigns, getCampaign, getCampaignUtm |
Campaigns: write (campaigns.write) |
createCampaign, updateCampaign, copyCampaign, updateCampaignUtm, sendTestEmail, sendCampaign, cancelCampaign, restoreCampaignToDraft |
Common errors
- 401 Unauthorized: the header is missing the
Omnisend-API-Keyprefix, or the key was deleted. Re-create the key and save it with the prefix. - 403 Forbidden: the key has no Campaigns permission. Edit the key's permissions.
- 400 Bad Request: invalid field or filter, or a missing
Omnisend-Versionheader. - 409 Conflict: the campaign is in the wrong status (only drafts can be edited or sent; only scheduled campaigns can go back to draft).
- 429 Too Many Requests: limit is 400 requests per minute per endpoint; wait and retry.
Store the key as a VX Agents credential so it is never pasted into chat.
Usage guide
Setup
- Credential: an Omnisend API key with Campaigns read/write, saved with its prefix as
Omnisend-API-Key <key>(it goes in theAuthorizationheader). Omnisend-Version: 2026-03-15is pinned on every call.- Worth pinning as presets: the email
templateIDyou build campaigns from, your sender name/email, and the segment ids you usually target (from Omnisend's Segments page or Segments API).
Build and send a campaign
- Start from a past one:
listCampaignswithstatus=sent,channel=email,view=summary, thencopyCampaignto get a new draft (name prefixed "Copy of: "). OrcreateCampaignwithtype: regular,channel: email(orsms),name,audience.includedSegmentIDs(empty = all subscribers), andcontent.email(templateID,subject,preheader,senderName) orcontent.sms(message,compliance). - Adjust the draft with
updateCampaign; set tracking withgetCampaignUtm/updateCampaignUtm. sendTestEmailwithrecipients(up to 5 addresses) and ask the user to check the test.- Choose timing in
sendingSettings:strategyimmediate,scheduledwithscheduledAt(RFC 3339), orpersonalizedwithoptimizeFor(opens,clicks,orders). - Only after the user confirms audience, content and time:
sendCampaign. - Changed plans:
restoreCampaignToDraft(scheduled campaigns only) to edit again, orcancelCampaign(scheduled or paused; started email campaigns best-effort).
Good to know
- Always confirm before
sendCampaign,cancelCampaignandsendTestEmail: they email or text real people and cannot be undone. - Only
draftcampaigns can be updated or sent (409 otherwise); to resend, copy and send the copy. listCampaignspages withlimit(1-250) and theafter/beforecursors; filter bystatus,channel,type,nameContains,createdAtFrom/createdAtTo(ISO 8601).view=summarydrops the heavy content and A/B sections; addinclude=contentto keep content.- A/B test controls and deletes are left out by design. Rate limit: 400 requests per minute per endpoint.
Source: Omnisend API reference (https://api-docs.omnisend.com/reference/get_campaigns), checked 2026-10-24.
How to use this spec
- Create a free VX Agents account (sandbox tools included).
- Open the marketplace and connect “Omnisend Email & SMS Campaigns” to an agent.
- Expose it as an MCP server for Claude/ChatGPT, or chat with it directly.