About Sender Emails

Developer Preview
APIs in Developer Preview are subject to change and are not intended for use in production.
Send us your suggestions for improving this API. Your feedback is valuable to us.

 

When sending an email campaign, you are required to confirm your email address to ensure that your letter reaches its destination. With the Sender Email API, you can create and verify "from" and "reply-to" email addresses for your email campaign. Once verified, these emails are used to create and manage different senders using the Sender Details API.

With the Sender Email API you can:

Sender email verification flow

The following steps describe the process for verifying an email address using the Sender Email API:

  1. Call Create Sender Email and specify the email address you'd like to use.
  2. Call Send Verification Code and check your inbox for the verification code.
  3. Use the received verification code to call Verify Sender Email and verify the email address.

Before you begin

It's important to note the following:

  • You'll get the verification code to the email address you specify, so ensure you have access to that inbox.
  • If you haven't received your code, check the spam folder. If it's not there, try sending the verification email again.
  • Usually, your verified email address will be used as both the "from" and "reply-to" address. However, there are cases where campaigns are sent from an authenticated address owned by Wix:
    • When your verified email uses a publicly available mailbox provider domain, such as @gmail, @yahoo, or @outlook. For example, if your email is pianosinfo@gmail.com it will appear as the "reply-to" address, while the "from" address will be something like pianos@pb01.wixemails.com or pianos@wixsiteautomations.com. This ensures that your email reaches your recipients' inbox rather than their junk folder or being rejected entirely.
    • When the domain of your verified email is not properly authenticated and has a strict DMARC policy configured.

Use Cases and Flows

Terminology

  • Campaign: A single, organized effort to send marketing emails to a list of recipients.
  • Sender Email: The "sent from" email address used in email campaigns.
  • Reply-to Email: The email address where recipients can send their replies to a marketing campaign.
Did this help?

Sender Email: Use Cases and Flows

This article presents possible use cases and corresponding sample flows that your app can support. It provides a useful starting point as you plan your app's implementation.

Add a new sender to your email campaign

This use case demonstrates how to add a new sender to your email campaign. In this example, your business now accepts bookings and you want to start a new email campaign, where the new sender's email address is bookings@website.com.

Note: This flow assumes you already have the Core or Advanced Email Marketing plans.

  1. Call Create Sender Email and specify the email address you'd like to set as a sender’s email address.
  2. Call Send Verification Code and check your inbox for the verification code.
  3. Use the received verification code to call Verify Sender Email and verify the email address.
  4. Call Create Sender Details passing the verified email address into the fromEmailAddress field. Also, enter the sender's name into the fromName field.
Did this help?

Sender Email Object


Properties
idstringRead-onlyformat GUID

Sender email ID.


createdDatestringRead-onlyformat date-time

Date and time when the sender email was created.


updatedDatestringRead-onlyformat date-time

Date and time when the sender email was updated.


emailAddressstringformat EMAILminLength 6maxLength 254

Sender email address.


verifiedbooleanRead-only

Whether the sender email is verified.


extendedFieldsExtendedFields

Extensions allowing users to save custom data related to the sender emails.

SenderEmail
JSON
{ "senderEmail": { "id": "30057014-8ecc-4a1b-9c53-bcc7dd033bb5", "createdDate": "2024-01-01T00:00:00.000Z", "updatedDate": "2024-01-01T00:00:00.000Z", "emailAddress": "john.doe@example.com", "verified": true } }
Did this help?

GET

Get Sender Email


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Retrieves a sender email by ID.

Endpoint
GET
https://www.wixapis.com/sender-emails/v1/sender-emails/{senderEmailId}

Path Params
senderEmailIdstringRequired

ID of the sender email to retrieve.

Response Object
senderEmailSenderEmail

The requested sender email info.

Get Sender Email Example 1
Request
cURL
curl 'https://www.wixapis.com/sender-emails/v1/sender-emails/30057014-8ecc-4a1b-9c53-bcc7dd033bb5' \ -H 'Authorization: <AUTH>'
Response
JSON
{ "senderEmail": { "id": "30057014-8ecc-4a1b-9c53-bcc7dd033bb5", "createdDate": "2024-01-01T00:00:00.000Z", "updatedDate": "2024-01-01T00:00:00.000Z", "emailAddress": "john.doe@example.com", "verified": true } }
Did this help?

DELETE

Delete Sender Email


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Deletes a sender email.

Endpoint
DELETE
https://www.wixapis.com/sender-emails/v1/sender-emails/{senderEmailId}

Path Params
senderEmailIdstringRequired

ID of the sender email to delete.

Response Object
Returns an empty object.
Delete Sender Email Example 1
Request
cURL
curl -X DELETE 'https://www.wixapis.com/sender-emails/v1/sender-emails/30057014-8ecc-4a1b-9c53-bcc7dd033bb5' \ -H 'Authorization: <AUTH>'
Response
JSON
{}
Event TriggersThis method triggers the following events:
Did this help?

GET

List Sender Emails


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Retrieves a list of sender emails.

Endpoint
GET
https://www.wixapis.com/sender-emails/v1/sender-emails

Query Params
paging.limitintegerminimum 0maximum 100format int32

Number of items to load.


paging.cursorstringmaxLength 1000

Pointer to the next or previous page in the list of results. You can get the relevant cursor token from the pagingMetadata object in the previous call's response. Not relevant for the first request.


emailAddressstring

Provide a specific email address if you don't want to receive all email addresses you have.

Response Object
pagingMetadataPagingMetadata

Paging metadata.


senderEmailsArray <SenderEmail>maxItems 100

List of sender emails.

List Sender Emails Example 1
Request
cURL
curl 'https://www.wixapis.com/sender-emails/v1/sender-emails' \ -H 'Authorization: <AUTH>'
Response
JSON
{ "pagingMetadata": { "count": 2, "cursors": {}, "hasNext": false }, "senderEmails": [ { "id": "30057014-8ecc-4a1b-9c53-bcc7dd033bb5", "createdDate": "2024-01-01T00:00:00.000Z", "updatedDate": "2024-01-01T00:00:00.000Z", "emailAddress": "john.doe@example.com", "verified": true }, { "id": "0e516e19-a95b-49e0-a3ac-6ccca4e7512a", "createdDate": "2024-01-01T00:00:00.000Z", "updatedDate": "2024-01-01T00:00:00.000Z", "emailAddress": "jane.doe@example.com", "verified": false } ] }
Did this help?

POST

Create Sender Email


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Creates a sender email.

Endpoint
POST
https://www.wixapis.com/sender-emails/v1/sender-emails

Body Params
senderEmailSenderEmailRequired

Sender email info.

Response Object
senderEmailSenderEmail

The created sender email.

Create Sender Email Example 1
Request
cURL
curl -X POST 'https://www.wixapis.com/sender-emails/v1/sender-emails' \ -H 'Authorization: <AUTH>' \ -H 'Content-Type: application/json' \ -d '{ "senderEmail": { "emailAddress": "john.doe@example.com" } }'
Response
JSON
{ "senderEmail": { "id": "30057014-8ecc-4a1b-9c53-bcc7dd033bb5", "createdDate": "2024-01-01T00:00:00.000Z", "updatedDate": "2024-01-01T00:00:00.000Z", "emailAddress": "john.doe@example.com", "verified": false } }
Errors
400Invalid Argument

There is 1 error with this status code:

409Already Exists

There is 1 error with this status code:

See the entire list and learn more about Wix errors.

Event TriggersThis method triggers the following events:
Did this help?

POST

Get Or Create Sender Email


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Gets the sender email info by the email address, or creates a new one.

If you try to create an email with a name that aready exists, this endpoint won't return you an error. Instead, you'll get the info of the existing email.

Endpoint
POST
https://www.wixapis.com/sender-emails/v1/sender-emails/get-or-create

Body Params
emailAddressstringRequiredformat EMAILminLength 6maxLength 254

Requested sender email.

Response Object
senderEmailSenderEmail

The requested sender email.

Get Or Create Sender Email Example 1
Request
cURL
curl -X POST 'https://www.wixapis.com/sender-emails/v1/sender-emails/get-or-create' \ -H 'Authorization: <AUTH>' \ -H 'Content-Type: application/json' \ -d '{ "emailAddress": "john.doe@example.com" }'
Response
JSON
{ "senderEmail": { "id": "30057014-8ecc-4a1b-9c53-bcc7dd033bb5", "createdDate": "2024-01-01T00:00:00.000Z", "updatedDate": "2024-01-01T00:00:00.000Z", "emailAddress": "john.doe@example.com", "verified": true } }
Errors
400Invalid Argument

There is 1 error with this status code:

See the entire list and learn more about Wix errors.

Event TriggersThis method triggers the following events:
Did this help?

POST

Send Verification Code


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Sends the verification code to your created email inbox.

Note: If you haven't received your code, check the spam folder. If it's not there, try sending the verification email again.

Endpoint
POST
https://www.wixapis.com/sender-emails/v1/sender-emails/{senderEmailId}/send-verification-code

Path Params
senderEmailIdstringRequired

ID of the sender email to send the code for.

Response Object
Returns an empty object.
Send Verification Code Example 1
Request
cURL
curl -X POST 'https://www.wixapis.com/sender-emails/v1/sender-emails/30057014-8ecc-4a1b-9c53-bcc7dd033bb5/send-verification-code' \ -H 'Authorization: <AUTH>' \ -H 'Content-Type: application/json' \
Response
JSON
{}
Errors
409Already Exists

There is 1 error with this status code:

428Failed Precondition

There is 1 error with this status code:

See the entire list and learn more about Wix errors.

Did this help?

POST

Verify Sender Email


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Verifies a sender email by passing the verification code that you got into your inbox.

Endpoint
POST
https://www.wixapis.com/sender-emails/v1/sender-emails/{senderEmailId}/verify

Path Params
senderEmailIdstringRequired

ID of the sender email to verify.

Body Params
verificationCodestringRequiredminLength 3maxLength 10

Verification code that you received in your inbox.

Response Object
Returns an empty object.
Verify Sender Email Example 1
Request
cURL
curl -X POST 'https://www.wixapis.com/sender-emails/v1/sender-emails/30057014-8ecc-4a1b-9c53-bcc7dd033bb5/verify' \ -H 'Authorization: <AUTH>' \ -H 'Content-Type: application/json' \ -d '{ "verificationCode": "UVSMu" }'
Response
JSON
{}
Errors
400Invalid Argument

There is 1 error with this status code:

409Already Exists

There is 1 error with this status code:

See the entire list and learn more about Wix errors.

Event TriggersThis method triggers the following events:
Did this help?

Sender Email Created


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Triggered when a sender email is created.

Event BodyEvent Body Event data is received as a JSON Web Token (JWT). It may be delayed. Be sure to verify the data was sent by Wix.
Event Data
idstring

Unique event ID. Allows clients to ignore duplicate webhooks.


entityFqdnstring

Fully qualified domain name of the entity associated with the event. Expected wix.promote.v1.sender_email.


slugstring

Event name. Expected created.


entityIdstring

ID of the entity associated with the event.


eventTimestringformat date-time

Event timestamp.


triggeredByAnonymizeRequestboolean

Whether the event was triggered as a result of a privacy regulation application (for example, GDPR).


originatedFromstring

If present, indicates the action that triggered the event.


createdEventCreatedEvent

Event information.

Event Body

The data payload will include the following as an encoded JWT:

JSON
{ "data": { "eventType": "wix.promote.v1.sender_email_created", "instanceId": "<app-instance-id>", "data": "<stringified-JSON>", // The identity field is sent as a stringified JSON "identity": { "identityType": "<identityType>", // ANONYMOUS_VISITOR, MEMBER, WIX_USER, APP "anonymousVisitorId": "<anonymousVisitorId>", // in case of ANONYMOUS_VISITOR "memberId": "<memberId>", // in case of MEMBER "wixUserId": "<wixUserId>", // in case of WIX_USER "appId": "<appId>" // in case of APP } } }
Did this help?

Sender Email Deleted


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Triggered when a sender email is deleted.

Event BodyEvent Body Event data is received as a JSON Web Token (JWT). It may be delayed. Be sure to verify the data was sent by Wix.
Event Data
idstring

Unique event ID. Allows clients to ignore duplicate webhooks.


entityFqdnstring

Fully qualified domain name of the entity associated with the event. Expected wix.promote.v1.sender_email.


slugstring

Event name. Expected deleted.


entityIdstring

ID of the entity associated with the event.


eventTimestringformat date-time

Event timestamp.


triggeredByAnonymizeRequestboolean

Whether the event was triggered as a result of a privacy regulation application (for example, GDPR).


originatedFromstring

If present, indicates the action that triggered the event.


deletedEventstruct

Event information.

Event Body

The data payload will include the following as an encoded JWT:

JSON
{ "data": { "eventType": "wix.promote.v1.sender_email_deleted", "instanceId": "<app-instance-id>", "data": "<stringified-JSON>", // The identity field is sent as a stringified JSON "identity": { "identityType": "<identityType>", // ANONYMOUS_VISITOR, MEMBER, WIX_USER, APP "anonymousVisitorId": "<anonymousVisitorId>", // in case of ANONYMOUS_VISITOR "memberId": "<memberId>", // in case of MEMBER "wixUserId": "<wixUserId>", // in case of WIX_USER "appId": "<appId>" // in case of APP } } }
Did this help?

Sender Email Updated


Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Triggered when a sender email is updated.

Event BodyEvent Body Event data is received as a JSON Web Token (JWT). It may be delayed. Be sure to verify the data was sent by Wix.
Event Data
idstring

Unique event ID. Allows clients to ignore duplicate webhooks.


entityFqdnstring

Fully qualified domain name of the entity associated with the event. Expected wix.promote.v1.sender_email.


slugstring

Event name. Expected updated.


entityIdstring

ID of the entity associated with the event.


eventTimestringformat date-time

Event timestamp.


triggeredByAnonymizeRequestboolean

Whether the event was triggered as a result of a privacy regulation application (for example, GDPR).


originatedFromstring

If present, indicates the action that triggered the event.


updatedEventUpdatedEvent

Event information.

Event Body

The data payload will include the following as an encoded JWT:

JSON
{ "data": { "eventType": "wix.promote.v1.sender_email_updated", "instanceId": "<app-instance-id>", "data": "<stringified-JSON>", // The identity field is sent as a stringified JSON "identity": { "identityType": "<identityType>", // ANONYMOUS_VISITOR, MEMBER, WIX_USER, APP "anonymousVisitorId": "<anonymousVisitorId>", // in case of ANONYMOUS_VISITOR "memberId": "<memberId>", // in case of MEMBER "wixUserId": "<wixUserId>", // in case of WIX_USER "appId": "<appId>" // in case of APP } } }
Did this help?