Newsletter Campaigns API

Create and send engaging email campaigns

Base URL: https://api.wemasy.nl/api
ⓘ The token stays in this browser tab only (sessionStorage) and is sent to the WEMASY API only. Don't use production tokens on shared computers.

AudienceLanguages

The confirmed contacts per language, for a campaign, for lists or for the whole project, with per email its language, its versions and the audience languages it has no version for (missing)

POST /services/newsletters/v1/audience/languages Auth

Blocks

List Blocks

POST /services/newsletters/v1/blocks/all Auth

Create Block

POST /services/newsletters/v1/blocks/create Auth

Get Block

POST /services/newsletters/v1/blocks/get Auth

Edit Block

POST /services/newsletters/v1/blocks/edit Auth

Delete Block

POST /services/newsletters/v1/blocks/delete Auth

Set Block Content

POST /services/newsletters/v1/blocks/set-content Auth

CampaignBroadcast

POST /services/newsletters/v1/campaigns/broadcast Auth

"N people will get this" for the chosen lists

POST /services/newsletters/v1/campaigns/broadcast-audience Auth

CampaignCancel

Start a campaign

POST /services/newsletters/v1/campaigns/cancel Auth

CampaignComplete

Start a campaign

POST /services/newsletters/v1/campaigns/complete Auth

CampaignCreate

Handle complete campaign creation in a single endpoint

POST /services/newsletters/v1/campaigns/create Auth

CampaignDuplicate

POST /services/newsletters/v1/campaigns/duplicate Auth

CampaignEdit

Handle complete campaign creation in a single endpoint

POST /services/newsletters/v1/campaigns/edit Auth

CampaignHold

Campaign mode

POST /services/newsletters/v1/campaigns/hold Auth

The campaign's mode (auto or manual), whether it is an automation, and how many are held.

Set campaign mode

POST /services/newsletters/v1/campaigns/hold/mode Auth

auto: new joiners get it on their own, who was already on the list at the first start waits for approval. manual: everyone waits for approval.

Held contacts

POST /services/newsletters/v1/campaigns/hold/held Auth

Everyone the campaign holds for approval right now, with why (existing or manual).

Approve or decline held contacts

POST /services/newsletters/v1/campaigns/hold/decide Auth

Approved: the campaign's mails go out to them, counted from now. Declined: they never get it.

Campaign history

POST /services/newsletters/v1/campaigns/send-history Auth

What went out, when and to whom, with opens, clicks and bounces; counts per day (last 30 days) and the approval decisions.

CampaignPause

Start a campaign

POST /services/newsletters/v1/campaigns/pause Auth

CampaignReopen

POST /services/newsletters/v1/campaigns/reopen Auth

CampaignStart

Start a campaign

POST /services/newsletters/v1/campaigns/start Auth

Start a campaign

POST /services/newsletters/v1/campaigns/resume Auth

CampaignTemplateStats

Get template performance summary

POST /services/newsletters/v1/campaigns/templates/{templateId}/stats/performance Auth

Get template execution history

POST /services/newsletters/v1/campaigns/templates/{templateId}/stats/executions Auth

Get template audience breakdown

POST /services/newsletters/v1/campaigns/templates/{templateId}/stats/audience Auth

Get template sends (emails sent)

POST /services/newsletters/v1/campaigns/templates/{templateId}/stats/sends Auth

Compare template executions

POST /services/newsletters/v1/campaigns/templates/{templateId}/stats/compare Auth

Get specific execution details

POST /services/newsletters/v1/campaigns/executions/{executionId}/stats Auth

Get execution audience list

POST /services/newsletters/v1/campaigns/executions/{executionId}/audience Auth

Get execution sends (emails sent for this execution)

POST /services/newsletters/v1/campaigns/executions/{executionId}/sends Auth

CampaignTemplates

Reorder campaign template

POST /services/newsletters/v1/campaigns/reorder-template Auth

Moves one step of the campaign up or down.

Duplicate campaign template

POST /services/newsletters/v1/campaigns/duplicate-template Auth

Copies one step of the campaign as a draft at the end.

CampaignTemplatesGet

POST /services/newsletters/v1/campaigns/get-templates Auth

CampaignsAddIndividualSubscribers

Add individual subscribers to campaign

POST /services/newsletters/v1/campaigns/add-individual-subscribers Auth

CampaignsAddLists

Create a new contact

POST /services/newsletters/v1/campaigns/add-lists Auth

CampaignsAddTemplates

POST /services/newsletters/v1/campaigns/add-templates Auth

CampaignsAll

POST /services/newsletters/v1/campaigns/all Auth

CampaignsDelete

POST /services/newsletters/v1/campaigns/delete Auth

CampaignsGet

Handle complete campaign creation in a single endpoint

POST /services/newsletters/v1/campaigns/get Auth

CampaignsGetIndividualSubscribers

Get individual subscribers for a campaign

POST /services/newsletters/v1/campaigns/get-individual-subscribers Auth

CampaignsGetLists

Gps Locations List

POST /services/newsletters/v1/campaigns/get-lists Auth

CampaignsRemoveIndividualSubscriber

Remove individual subscriber from campaign

POST /services/newsletters/v1/campaigns/remove-individual-subscriber Auth

CampaignsRemoveList

Remove contact from list

POST /services/newsletters/v1/campaigns/remove-list Auth

CampaignsRemoveTemplate

POST /services/newsletters/v1/campaigns/remove-template Auth

CampaignsTemplateGetSettings

POST /services/newsletters/v1/campaigns/template/get-settings Auth

CampaignsTemplateUpdateSettings

Update template settings (basic info + schedule)

POST /services/newsletters/v1/campaigns/template/update-settings Auth

ComponentsAddTo

Gps Locations List

POST /services/newsletters/v1/components/add-to Auth

ComponentsChangeTo

Gps Locations List

POST /services/newsletters/v1/components/change-to Auth

ComponentsConvertToTemplate

POST /services/newsletters/v1/components/convert-to-template Auth

ComponentsCreate

Create a new (reusable) component that can be attached to a newsletter, template header/footer or partial

POST /services/newsletters/v1/components/create Auth

ComponentsDelete

Gps Locations List

POST /services/newsletters/v1/components/delete Auth

ComponentsDuplicate

Gps Locations List

POST /services/newsletters/v1/components/duplicate Auth

ComponentsExport

Gps Locations List

POST /services/newsletters/v1/components/export Auth

ComponentsImport

Gps Locations List

POST /services/newsletters/v1/components/import Auth

ComponentsPaste

Gps Locations List

POST /services/newsletters/v1/components/paste Auth

ComponentsSetContent

Gps Locations List

POST /services/newsletters/v1/components/set-content Auth

ComponentsUnlink

POST /services/newsletters/v1/components/unlink Auth

ComponentsUpdateOrder

Gps Locations List

POST /services/newsletters/v1/components/update-order Auth

ContactAddToList

Create a new contact

POST /services/newsletters/v1/contacts/add-to-lists Auth

ContactCreate

Create a new contact

POST /services/newsletters/v1/contacts/create Auth
POST /services/newsletters/v1/external/contacts/create Auth

ContactDelete

Gps Locations List

POST /services/newsletters/v1/contacts/delete Auth

ContactEdit

Create a new contact

POST /services/newsletters/v1/contacts/edit Auth

Set the language a contact reads, alone (the contact page's language select). Empty: the project's language

POST /services/newsletters/v1/contacts/language Auth

ContactEmails

POST /services/newsletters/v1/contacts/emails Auth

ContactGet

Gps Locations List

POST /services/newsletters/v1/contacts/get Auth

ContactGetLists

Gps Locations List

POST /services/newsletters/v1/contacts/get-lists Auth

ContactLiftSuppression

Mail a bounced contact again

POST /services/newsletters/v1/contacts/lift-suppression Auth

For an address that bounced but works again (a full mailbox that was emptied, a typo the owner fixed elsewhere). The contact goes back to subscribed when it had confirmed, else to waiting to confirm. A spam complaint or an unsubscribe is never undone here: that needs the person's own new consent.

ContactList

POST /services/newsletters/v1/lists/contact-lists Auth

ContactMetaDataState

Update user state for a contact (for external tool integrations)

POST /services/newsletters/v1/external/contacts/metadata-state Auth

POST /webhooks/newsletter/contacts/update-metadata-state

ContactRemoveFromList

Remove contact from list

POST /services/newsletters/v1/contacts/remove-from-list Auth

ContactStartVerification

Start verification process for a deferred contact

POST /services/newsletters/v1/contacts/start-verification Auth

ContactUnarchive

Create a new contact

POST /services/newsletters/v1/contacts/unarchive Auth

ContactsAll

Gps Locations List

POST /services/newsletters/v1/contacts/all Auth

ContactsCsv

POST /services/newsletters/v1/contacts/import Auth
POST /services/newsletters/v1/contacts/export Auth

Imports with the consent tick and their sample (#719): waiting, held (with why) or cleared

POST /services/newsletters/v1/contacts/imports Auth

A held import: send confirmation mails to its people instead (#719)

POST /services/newsletters/v1/contacts/imports/confirm-instead Auth

CreateVerifiedContact

POST /services/newsletters/v1/external/contacts/create-verified Auth

Deployment

Deploy Website

POST /services/newsletters/v1/newsletters/deploy Auth

Get Deployment Status

POST /services/newsletters/v1/newsletters/deployment/status Auth

Reset Deployment

POST /services/newsletters/v1/newsletters/reset-deployment Auth

File Uploads

Get Large File Upload Signed URL

POST /services/newsletters/v1/files/get/signed-url Auth

Get Large Uploaded Files

POST /services/newsletters/v1/files/get Auth

Delete Large Uploaded File

POST /services/newsletters/v1/files/delete Auth

GetPausedRecipients

Get all paused recipients for a campaign

POST /services/newsletters/v1/campaigns/get-paused-recipients Auth

Layouts

Update Layout Templates

POST /services/newsletters/v1/layouts/update-templates Auth

LayoutsAll

Gps Locations List

POST /services/newsletters/v1/layouts/all Auth

LayoutsArchive

Gps Locations List

POST /services/newsletters/v1/layouts/archive Auth

LayoutsCreate

Gps Locations List

POST /services/newsletters/v1/layouts/create Auth

LayoutsDelete

Gps Locations List

POST /services/newsletters/v1/layouts/delete Auth

LayoutsEdit

Gps Locations List

POST /services/newsletters/v1/layouts/edit Auth

LayoutsGet

Gps Locations List

POST /services/newsletters/v1/layouts/get Auth

ListsAddSubscribers

List Add Subscriber

POST /services/newsletters/v1/lists/add-subscribers Auth

ListsAll

Gps Locations List

POST /services/newsletters/v1/lists/all Auth

ListsApproveSubscribers

POST /services/newsletters/v1/lists/approve-subscribers Auth

ListsConnections

POST /services/newsletters/v1/lists/connections Auth

ListsCreate

Create a new contact

POST /services/newsletters/v1/lists/create Auth

ListsDelete

Gps Locations List

POST /services/newsletters/v1/lists/delete Auth

ListsEdit

Create a new contact

POST /services/newsletters/v1/lists/edit Auth

ListsGet

Gps Locations List

POST /services/newsletters/v1/lists/get Auth

ListsGetSubscribers

Gps Locations List

POST /services/newsletters/v1/lists/get-subscribers Auth

ListsPreviewSubscriber

POST /services/newsletters/v1/lists/preview-subscriber Auth

ListsRemoveSubscriber

Gps List

POST /services/newsletters/v1/lists/remove-subscriber Auth

Menus

List Menus

POST /services/newsletters/v1/menus/all Auth

Menus Get

POST /services/newsletters/v1/menus/get Auth

Edit Menu

POST /services/newsletters/v1/menus/edit Auth

Create Menu

POST /services/newsletters/v1/menus/create Auth

Delete Menu

POST /services/newsletters/v1/menus/delete Auth

Newsletter WhatsApp

WhatsApp: the project's number

POST /services/newsletters/v1/whatsapp/connection/get Auth

The connected WhatsApp Business number (never the token), its quality at Meta and whether sending is paused.

WhatsApp: connect a number

POST /services/newsletters/v1/whatsapp/connection/save Auth

The WhatsApp Business Account id, the phone number id and an access token with whatsapp_business_messaging. Checked with Meta before it is saved.

WhatsApp: resume or pause sending

POST /services/newsletters/v1/whatsapp/connection/status Auth

WhatsApp: templates

POST /services/newsletters/v1/whatsapp/templates/all Auth

The project's WhatsApp templates with Meta's status and a preview.

WhatsApp: save a template

POST /services/newsletters/v1/whatsapp/templates/save Auth

A new or changed template is a draft until it is sent to Meta. Changing an approved template sends it back to draft (Meta reviews it again).

WhatsApp: send a template to Meta for approval

POST /services/newsletters/v1/whatsapp/templates/submit Auth

WhatsApp: refresh a template's status from Meta

POST /services/newsletters/v1/whatsapp/templates/sync Auth

WhatsApp: archive a template

POST /services/newsletters/v1/whatsapp/templates/archive Auth

WhatsApp: record or withdraw a contact's consent

POST /services/newsletters/v1/whatsapp/contacts/consent Auth

Only with the consent text the person agreed to (opt_in: true). A withdrawal stops every WhatsApp message to them at once.

WhatsApp: what a campaign step would cost

POST /services/newsletters/v1/whatsapp/estimate Auth

The contacts of the campaign who agreed to WhatsApp, and Meta's estimated price for one message to each (per country and category). An estimate: Meta bills the project's own WhatsApp account.

WhatsApp: approve or stop WhatsApp for a campaign

POST /services/newsletters/v1/whatsapp/campaign/approve Auth

A campaign's WhatsApp steps send nothing until this is approved.

WhatsApp: send a campaign step on WhatsApp, or back on email

POST /services/newsletters/v1/whatsapp/campaign/step Auth

`channel: whatsapp` with a template key: the step sends that template to contacts who agreed to WhatsApp; with `email_fallback: true` the step's email goes to everyone else, otherwise they get nothing. `channel: email` makes it an email step again (it needs its email). The schedule stays.

WhatsApp: a campaign's steps and its WhatsApp approval

POST /services/newsletters/v1/whatsapp/campaign/get Auth

Every step with its channel, its WhatsApp template and whether its email goes to people without WhatsApp consent; and whether WhatsApp is approved for this campaign (and whether you may approve it).

WhatsApp: messages people sent to the number

POST /services/newsletters/v1/whatsapp/inbound Auth

Newsletter campaigns

Campaign insights

POST /services/newsletters/v1/campaigns/insights Auth

What one campaign did, in people: sent, opened, clicked, bounced, spam and unsubscribed; clicks per link; each recipient; latest activity.

Campaign history

POST /services/newsletters/v1/campaigns/history Auth

What the team did to a campaign, newest first: created, started, paused, emails and lists added or removed, settings changed.

Newsletter contacts

Contact history

POST /services/newsletters/v1/contacts/history Auth

Everything that happened to one contact, newest first.

Newsletter setup

Setup status

POST /services/newsletters/v1/setup/status Auth

Which of the first steps are done: the signup list, the signup popup and the welcome email.

Set it up for me

POST /services/newsletters/v1/setup/run Auth

Makes what is missing: the signup list, a signup popup (switched off) and a welcome email campaign (draft, to start next).

NewsletterArchive

Gps Locations List

POST /services/newsletters/v1/pages/archive Auth

NewsletterCode

POST /services/newsletters/v1/code/export Auth
POST /services/newsletters/v1/code/import Auth
POST /services/newsletters/v1/email-templates Auth

NewsletterComposer

POST /services/newsletters/v1/newsletters/composer Auth

NewsletterDomain

Current settings + the DNS records the customer must set

POST /services/newsletters/v1/domain/status Auth

Point the newsletter "view online" pages at a custom domain. Resets dns_verified

POST /services/newsletters/v1/domain/update Auth

Live DNS propagation check; persists dns_verified

POST /services/newsletters/v1/domain/dns-check Auth

Fall back to the wemasy-hosted domain

POST /services/newsletters/v1/domain/switch-to-wemasy Auth

NewsletterDuplicate

Gps Locations List

POST /services/newsletters/v1/newsletters/duplicate Auth

NewsletterLanguages

The email's language and its versions in other languages

POST /services/newsletters/v1/newsletters/languages Auth

Works from the email or from any of its versions: the answer is about the email they belong to.

Add a version of the email in another language: a copy of the email to translate, opened in the email builder at its own id. Asking again for the same language returns the version that is there (created: false)

POST /services/newsletters/v1/newsletters/languages/add Auth

NewsletterRender

Returns raw text/html for the designer iframe

POST /services/newsletters/v1/render/preview Auth

Render the email exactly as it would be sent to a chosen contact

POST /services/newsletters/v1/render/preview-as-contact Auth

Unlike preview() (tokens stripped), this fills the per-recipient unsubscribe url + tracking pixel for the given contact, so what the user sees is byte-for-byte what lands in that recipient's inbox — including the click-tracking link wrapping.

POST /services/newsletters/v1/render/publish Auth

NewsletterSendTest

POST /services/newsletters/v1/newsletters/send-test Auth

NewsletterVersion

POST /services/newsletters/v1/versions/list Auth
POST /services/newsletters/v1/versions/get Auth
POST /services/newsletters/v1/versions/revert Auth
POST /services/newsletters/v1/versions/delete Auth
POST /services/newsletters/v1/versions/latest Auth

NewslettersAll

Gps Locations List

POST /services/newsletters/v1/newsletter-project/get Auth

Gps Locations List

POST /services/newsletters/v1/newsletters/all Auth

NewslettersCreate

Gps Locations List

POST /services/newsletters/v1/newsletters/create Auth

NewslettersDelete

Gps Locations List

POST /services/newsletters/v1/newsletters/delete Auth

NewslettersEdit

Gps Locations List

POST /services/newsletters/v1/newsletters/edit Auth

NewslettersGet

Gps Locations List

POST /services/newsletters/v1/newsletters/get Auth

NewslettersGetTemplates

Gps Locations List

POST /services/newsletters/v1/newsletters/get-templates Auth

Overview

POST /services/newsletters/v1/overview Auth

PagesExport

Export a newsletter (with its components) as a portable payload

POST /services/newsletters/v1/pages/export Auth

PagesImport

Import (create or update) a newsletter, together with its components, from a payload previously produced by PagesExportController

POST /services/newsletters/v1/pages/import Auth

PagesUpdateTemplate

Update the template (layout) attached to a newsletter

POST /services/newsletters/v1/pages/update-template Auth

Public

Search Content

POST /services/newsletters/v1/search Public

Settings

List Forms

POST /services/newsletters/v1/forms/all Auth

Get all available Google Fonts

POST /services/newsletters/v1/fonts/all Auth

SettingsGet

Mark an order as completed

POST /services/newsletters/v1/settings/get Auth

SettingsSave

Mark an order as completed

POST /services/newsletters/v1/settings/save Auth

Structures

Create Structure

POST /services/newsletters/v1/structures/create Auth

List Structures

POST /services/newsletters/v1/structures/all Auth

Get Structure

POST /services/newsletters/v1/structures/get Auth

Edit Structure

POST /services/newsletters/v1/structures/edit Auth

Delete Structure

POST /services/newsletters/v1/structures/delete Auth

Structures - Categories

Create Structure Category

POST /services/newsletters/v1/structures/{type}/categories/create Auth

List Structure Categories

POST /services/newsletters/v1/structures/{type}/categories/all Auth

Get Structure Category

POST /services/newsletters/v1/structures/{type}/categories/get Auth

Edit Structure Category

POST /services/newsletters/v1/structures/{type}/categories/edit Auth

Delete Structure Category

POST /services/newsletters/v1/structures/{type}/categories/delete Auth

Structures - Dynamic

Create Dynamic Structure

POST /services/newsletters/v1/structures/{type}/create Auth

List Dynamic Structures

POST /services/newsletters/v1/structures/{type}/all Auth

Get Dynamic Structure

POST /services/newsletters/v1/structures/{type}/get Auth

Edit Dynamic Structure

POST /services/newsletters/v1/structures/{type}/edit Auth

Delete Dynamic Structure

POST /services/newsletters/v1/structures/{type}/delete Auth

TemplateDesignerGet

POST /services/newsletters/v1/page-designer/get Auth

Templates

Archive Template

POST /services/newsletters/v1/templates/archive Auth

TemplatesAll

Gps Locations List

POST /services/newsletters/v1/templates/all Auth

TemplatesCreate

Gps Locations List

POST /services/newsletters/v1/templates/create Auth

TemplatesDelete

Gps Locations List

POST /services/newsletters/v1/templates/delete Auth

TemplatesEdit

Gps Locations List

POST /services/newsletters/v1/templates/edit Auth

TemplatesGet

Gps Locations List

POST /services/newsletters/v1/templates/get Auth

Websites

Update Website Customization

POST /services/newsletters/v1/websites/update/customization Auth

Get Reuseable Customization

POST /services/newsletters/v1/websites/get/reuseable-customization Auth