> Portal Navigation: > > - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version. > - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages). > - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`). > - Top-level index of all portals: https://dev.wix.com/docs/llms.txt > - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt # List # Package: emailMarketing # Namespace: CampaignService # Method link: https://dev.wix.com/docs/api-reference/business-management/marketing/emails/email-marketing/campaign/list-campaigns.md ## Permission Scopes: Read Email Marketing: SCOPE.DC-PROMOTE.READ-EMAIL-MARKETING ## Introduction Retrieves a list of email campaigns. Default sorts by `dateUpdated` in `DESC` order. --- ## REST API ### Schema ``` Method: list Description: Retrieves a list of email campaigns. Default sorts by `dateUpdated` in `DESC` order. URL: https://www.wixapis.com/email-marketing/v1/campaigns Method: GET Method parameters: query param name: optionIncludeStatistics | type: optionIncludeStatistics | description: Whether to include `publishingData.statistics` in the returned campaign object. Default: `false`. param name: paging | type: Paging - name: limit | type: integer | description: Number of items to load. - name: offset | type: integer | description: Number of items to skip in the current sort order. query param name: statuses | type: array | description: Campaign status. - enum: - UNKNOWN: Unknown campaign. This value isn't used. - ACTIVE: Campaign is active. - ARCHIVED: Campaign is archived. - DELETED: Campaign is deleted. query param name: visibilityStatuses | type: array | description: Visibility status. - enum: - UNKNOWN: Unknown status. This value isn't used. - DRAFT: Campaign isn't published yet. - PUBLISHED: Campaign is published. - TEMPLATE: Campaign is a template. Return type: ListCampaignsResponse - name: paging | type: Paging | description: Paging parameters. - name: limit | type: integer | description: Number of items to load. - name: offset | type: integer | description: Number of items to skip in the current sort order. - name: campaigns | type: array | description: List of campaigns. - name: campaignId | type: string | description: Campaign GUID. - name: title | type: string | description: Marketing campaign title. If you don't provide the value, the title automatically gets the value of an email subject. - name: firstImageUrl | type: string | description: URL of the first image after the logo. - name: editorType | type: Enum | description: Editor type. - enum: - UNKNOWN: Unknown editor. This value isn't used. - WEB: Classic web editor. - MOBILE: Classic mobile editor. - MJML: Chat (AI) based web editor. - name: status | type: Enum | description: Campaign status. - enum: - UNKNOWN: Unknown campaign. This value isn't used. - ACTIVE: Campaign is active. - ARCHIVED: Campaign is archived. - DELETED: Campaign is deleted. - name: visibilityStatus | type: Enum | description: Campaign visibility status. - enum: - UNKNOWN: Unknown status. This value isn't used. - DRAFT: Campaign isn't published yet. - PUBLISHED: Campaign is published. - TEMPLATE: Campaign is a template. - name: distributionStatus | type: Enum | description: Campaign distribution status. - enum: - UNKNOWN: Unknown distribution status. - NOT_STARTED: Campaign isn't distributed to recipients yet. - SCHEDULED: Campaign is scheduled for distribution. - IN_DETECTION: Campaign is in screening for malicious content. - IN_MODERATION: Campaign is in review by the site moderators. - SAMPLING: Several recipients are selected for campaign testing, and campaign is sent out to them. - SENDING: Campaign is being sent out to all recipients. - REJECTED: Campaign is rejected. - TERMINATED: Campaign is terminated after a failed sampling test. - DISTRIBUTED: Campaign is fully distributed to all recipients. - PAUSED: Scheduled campaign is paused. - name: publishingData | type: PublishingData | description: Publishing data. The field is returned empty if the campaign isn't published. - name: landingPageUrl | type: string | description: Landing page URL. - name: statistics | type: CampaignStatistics | description: Marketing campaign statistics. - name: landingPage | type: LandingPageStatistics | description: Landing page statistics of a marketing campaign. - name: opened | type: integer | description: Number of times when a landing page was loaded or viewed. - name: clicked | type: integer | description: Number of times a link was clicked in a landing page. - name: emailCampaign | type: DistributionStatistics | description: Email distribution statistics of a marketing campaign. - name: delivered | type: integer | description: Number of delivered emails. - name: opened | type: integer | description: Number of recipients who opened an email. If the same recipient opened the same email twice, it is counted as a one unique open. - name: clicked | type: integer | description: Number of recipients who clicked a link in the email. If the same recipient clicked the same link twice, it is counted as a one unique click. If the same recipient clicked different links, it is counted as a one unique click. - name: bounced | type: integer | description: Number of emails that didn't reach the recipient. - name: complained | type: integer | description: Number of recipients who reported the email as a spam. - name: notSent | type: integer | description: Number of emails that weren't sent due to the campaign termination. - name: total | type: TotalStatistics | description: Combined statistics of landing page and email distribution. - name: mailsSent | type: integer | description: Total number of emails sent. - name: opened | type: integer | description: Number of landing page views and opened emails. - name: clicked | type: integer | description: Number of landing page and email link clicks. - name: datePublished | type: string | description: Marketing campaign publish date. - name: dateCreated | type: string | description: Date and time when the campaign was created. - name: dateUpdated | type: string | description: Date and time when the campaign was updated. ``` ### Examples ### List Campaigns ```curl curl -X GET 'https://www.wixapis.com/email-marketing/v1/campaigns?option_include_statistics=true&visibility_statuses=DRAFT&statuses=ACTIVE' \ -H 'Authorization: ' ``` --- ## JavaScript SDK ### Schema ``` Method: wixClientAdmin.emailMarketing.CampaignService.list(options) Description: Retrieves a list of email campaigns. Default sorts by `dateUpdated` in `DESC` order. Method parameters: param name: options | type: ListOptions none - name: paging | type: Paging | description: Paging parameters. - name: limit | type: integer | description: Number of items to load. - name: offset | type: integer | description: Number of items to skip in the current sort order. - name: optionIncludeStatistics | type: boolean | description: Whether to include `publishingData.statistics` in the returned campaign object. Default: `false`. - name: statuses | type: array | description: Campaign status. - enum: - UNKNOWN: Unknown campaign. This value isn't used. - ACTIVE: Campaign is active. - ARCHIVED: Campaign is archived. - DELETED: Campaign is deleted. - name: visibilityStatuses | type: array | description: Visibility status. - enum: - UNKNOWN: Unknown status. This value isn't used. - DRAFT: Campaign isn't published yet. - PUBLISHED: Campaign is published. - TEMPLATE: Campaign is a template. Return type: PROMISE - name: paging | type: Paging | description: Paging parameters. - name: limit | type: integer | description: Number of items to load. - name: offset | type: integer | description: Number of items to skip in the current sort order. - name: campaigns | type: array | description: List of campaigns. - name: campaignId | type: string | description: Campaign GUID. - name: title | type: string | description: Marketing campaign title. If you don't provide the value, the title automatically gets the value of an email subject. - name: firstImageUrl | type: string | description: URL of the first image after the logo. - name: editorType | type: Enum | description: Editor type. - enum: - UNKNOWN: Unknown editor. This value isn't used. - WEB: Classic web editor. - MOBILE: Classic mobile editor. - MJML: Chat (AI) based web editor. - name: status | type: Enum | description: Campaign status. - enum: - UNKNOWN: Unknown campaign. This value isn't used. - ACTIVE: Campaign is active. - ARCHIVED: Campaign is archived. - DELETED: Campaign is deleted. - name: visibilityStatus | type: Enum | description: Campaign visibility status. - enum: - UNKNOWN: Unknown status. This value isn't used. - DRAFT: Campaign isn't published yet. - PUBLISHED: Campaign is published. - TEMPLATE: Campaign is a template. - name: distributionStatus | type: Enum | description: Campaign distribution status. - enum: - UNKNOWN: Unknown distribution status. - NOT_STARTED: Campaign isn't distributed to recipients yet. - SCHEDULED: Campaign is scheduled for distribution. - IN_DETECTION: Campaign is in screening for malicious content. - IN_MODERATION: Campaign is in review by the site moderators. - SAMPLING: Several recipients are selected for campaign testing, and campaign is sent out to them. - SENDING: Campaign is being sent out to all recipients. - REJECTED: Campaign is rejected. - TERMINATED: Campaign is terminated after a failed sampling test. - DISTRIBUTED: Campaign is fully distributed to all recipients. - PAUSED: Scheduled campaign is paused. - name: publishingData | type: PublishingData | description: Publishing data. The field is returned empty if the campaign isn't published. - name: landingPageUrl | type: string | description: Landing page URL. - name: statistics | type: CampaignStatistics | description: Marketing campaign statistics. - name: landingPage | type: LandingPageStatistics | description: Landing page statistics of a marketing campaign. - name: opened | type: integer | description: Number of times when a landing page was loaded or viewed. - name: clicked | type: integer | description: Number of times a link was clicked in a landing page. - name: emailCampaign | type: DistributionStatistics | description: Email distribution statistics of a marketing campaign. - name: delivered | type: integer | description: Number of delivered emails. - name: opened | type: integer | description: Number of recipients who opened an email. If the same recipient opened the same email twice, it is counted as a one unique open. - name: clicked | type: integer | description: Number of recipients who clicked a link in the email. If the same recipient clicked the same link twice, it is counted as a one unique click. If the same recipient clicked different links, it is counted as a one unique click. - name: bounced | type: integer | description: Number of emails that didn't reach the recipient. - name: complained | type: integer | description: Number of recipients who reported the email as a spam. - name: notSent | type: integer | description: Number of emails that weren't sent due to the campaign termination. - name: total | type: TotalStatistics | description: Combined statistics of landing page and email distribution. - name: mailsSent | type: integer | description: Total number of emails sent. - name: opened | type: integer | description: Number of landing page views and opened emails. - name: clicked | type: integer | description: Number of landing page and email link clicks. - name: datePublished | type: Date | description: Marketing campaign publish date. - name: dateCreated | type: Date | description: Date and time when the campaign was created. - name: dateUpdated | type: Date | description: Date and time when the campaign was updated. ``` ### Examples ### Returns a list of email campaigns based on optional data ```javascript import { campaigns } from '@wix/email-marketing'; // Sample options value: // { // options: { // campaignType: 'AUTOMATION', // statuses: ['DELETED'], // visibilityStatuses: ['PUBLISHED] // } // } export async function myListCampaignsFunction(options) { try { const results = await campaigns.listCampaigns(options); console.log('Success! Retrieved results:', results); return results; } catch (error) { console.error(error); } } /* Promise resolves to: * { * "campaigns": [ * { * "campaignId": "b98a4436-10f5-47bd-9c6f-370962adfe54", * "title": "A New Tutorial for You", * "firstImageUrl": "https://static.wixstatic.com/media/6191b8_77d27f7d028a4b50850b7f92dadcd578~mv2.png", * "editorType": "WEB", * "status": "DELETED", * "visibilityStatus": "PUBLISHED", * "distributionStatus": "DISTRIBUTED", * "publishingData": { * "landingPageUrl": "https://shoutout.wix.com/so/54OdUqUrf?languageTag=en", * "datePublished": "2023-08-10T09:40:59.000Z", * "wasResentToNonOpeners": false * }, * "dateCreated": "2023-08-10T09:40:47.000Z", * "dateUpdated": "2023-08-10T09:40:59.045Z", * "sendingState": "SENT", * "campaignType": "EMAIL_MARKETING" * }, * { * "campaignId": "fb21c999-40b5-4364-8e75-18273da41983", * "title": "What did we do last month?", * "firstImageUrl": "https://static.wixstatic.com/media/eceb8e_e65cd7284b4c4144a4fb8b2f3ce30a68~mv2_d_2000_1334_s_2.png", * "editorType": "WEB", * "status": "DELETED", * "visibilityStatus": "PUBLISHED", * "distributionStatus": "DISTRIBUTED", * "publishingData": { * "landingPageUrl": "https://shoutout.wix.com/so/83OdQ8pDA?languageTag=en", * "datePublished": "2023-08-10T09:25:15.000Z", * "wasResentToNonOpeners": false * }, * "dateCreated": "2023-08-09T11:51:27.000Z", * "dateUpdated": "2023-08-10T09:25:14.952Z", * "sendingState": "SENT", * "campaignType": "EMAIL_MARKETING" * } * ] * } */ ``` ### Returns a list of email campaigns (with elevated permissions) ```javascript import { campaigns } from '@wix/email-marketing'; import { auth } from '@wix/essentials'; const elevatedListCampaigns = auth.elevate(campaigns.listCampaigns); // Sample options value: // { // paging: { // limit: 2, // offset: 0 // } // } export async function myListCampaignsFunction(options) { try { const results = await elevatedListCampaigns(options); console.log('Success! Retrieved results:', results); return results; } catch (error) { console.error(error); } } /* Promise resolves to: * { * "campaigns": [ * { * "campaignId": "b98a4436-10f5-47bd-9c6f-370962adfe54", * "title": "A New Tutorial for You", * "firstImageUrl": "https://static.wixstatic.com/media/6191b8_77d27f7d028a4b50850b7f92dadcd578~mv2.png", * "editorType": "WEB", * "status": "ACTIVE", * "visibilityStatus": "PUBLISHED", * "distributionStatus": "DISTRIBUTED", * "publishingData": { * "landingPageUrl": "https://shoutout.wix.com/so/54OdUqUrf?languageTag=en", * "datePublished": "2023-08-10T09:40:59.000Z", * "wasResentToNonOpeners": false * }, * "dateCreated": "2023-08-10T09:40:47.000Z", * "dateUpdated": "2023-08-10T09:40:59.045Z", * "sendingState": "SENT", * "campaignType": "EMAIL_MARKETING" * }, * { * "campaignId": "fb21c999-40b5-4364-8e75-18273da41983", * "title": "What did we do last month?", * "firstImageUrl": "https://static.wixstatic.com/media/eceb8e_e65cd7284b4c4144a4fb8b2f3ce30a68~mv2_d_2000_1334_s_2.png", * "editorType": "WEB", * "status": "ACTIVE", * "visibilityStatus": "PUBLISHED", * "distributionStatus": "DISTRIBUTED", * "publishingData": { * "landingPageUrl": "https://shoutout.wix.com/so/83OdQ8pDA?languageTag=en", * "datePublished": "2023-08-10T09:25:15.000Z", * "wasResentToNonOpeners": false * }, * "dateCreated": "2023-08-09T11:51:27.000Z", * "dateUpdated": "2023-08-10T09:25:14.952Z", * "sendingState": "SENT", * "campaignType": "EMAIL_MARKETING" * } * ] * } */ ``` ### Returns a list of email campaigns ```javascript import { campaigns } from '@wix/email-marketing'; // Sample options value: // { // paging: { // limit: 2, // offset: 0 // } // } export async function myListCampaignsFunction(options) { try { const results = await campaigns.listCampaigns(options); console.log('Success! Retrieved results:', results); return results; } catch (error) { console.error(error); } } /* Promise resolves to: * { * "campaigns": [ * { * "campaignId": "b98a4436-10f5-47bd-9c6f-370962adfe54", * "title": "A New Tutorial for You", * "firstImageUrl": "https://static.wixstatic.com/media/6191b8_77d27f7d028a4b50850b7f92dadcd578~mv2.png", * "editorType": "WEB", * "status": "ACTIVE", * "visibilityStatus": "PUBLISHED", * "distributionStatus": "DISTRIBUTED", * "publishingData": { * "landingPageUrl": "https://shoutout.wix.com/so/54OdUqUrf?languageTag=en", * "datePublished": "2023-08-10T09:40:59.000Z", * "wasResentToNonOpeners": false * }, * "dateCreated": "2023-08-10T09:40:47.000Z", * "dateUpdated": "2023-08-10T09:40:59.045Z", * "sendingState": "SENT", * "campaignType": "EMAIL_MARKETING" * }, * { * "campaignId": "fb21c999-40b5-4364-8e75-18273da41983", * "title": "What did we do last month?", * "firstImageUrl": "https://static.wixstatic.com/media/eceb8e_e65cd7284b4c4144a4fb8b2f3ce30a68~mv2_d_2000_1334_s_2.png", * "editorType": "WEB", * "status": "ACTIVE", * "visibilityStatus": "PUBLISHED", * "distributionStatus": "DISTRIBUTED", * "publishingData": { * "landingPageUrl": "https://shoutout.wix.com/so/83OdQ8pDA?languageTag=en", * "datePublished": "2023-08-10T09:25:15.000Z", * "wasResentToNonOpeners": false * }, * "dateCreated": "2023-08-09T11:51:27.000Z", * "dateUpdated": "2023-08-10T09:25:14.952Z", * "sendingState": "SENT", * "campaignType": "EMAIL_MARKETING" * } * ] * } */ ``` ### Returns a list of email campaigns and adds the campaign title to your database (with elevated permissions) ```javascript import { campaigns } from '@wix/email-marketing'; import { items } from '@wix/data'; import { auth } from '@wix/essentials'; const elevatedListCampaigns = auth.elevate(campaigns.listCampaigns); export async function myListCampaignsFunction() { try { const result = await elevatedListCampaigns(); const campaignTitle = result.campaigns[0].title; console.log(campaignTitle); // store campaign title in your database let toInsert = { "campaignTitle": campaignTitle }; const results = await items.insert('myDatabaseCollection', toInsert); console.log(`Data inserted successfully. The item ID is: ${results.itemId}`); // Data inserted successfully. The item ID is: 532549d4-2a95-45cc-bb8e-4cb39422e42c return { "campaignTitle": campaignTitle } } catch (error) { console.error(error); return { "error": "Failed to find and insert data." }; } } /* * Promise returns: * { * "campaignTitle": "A New Tutorial for You" * } */ ``` ### Returns a list of email campaigns and adds the campaign title to your database ```javascript import { campaigns } from '@wix/email-marketing'; import { items } from '@wix/data'; export async function myListCampaignsFunction() { try { const result = await campaigns.listCampaigns(); const campaignTitle = result.campaigns[0].title; console.log(campaignTitle); // store campaign title in your database let toInsert = { "campaignTitle": campaignTitle }; const results = await items.insert('myDatabaseCollection', toInsert); console.log(`Data inserted successfully. The item ID is: ${results.itemId}`); // Data inserted successfully. The item ID is: 532549d4-2a95-45cc-bb8e-4cb39422e42c return { "campaignTitle": campaignTitle } } catch (error) { console.error(error); return { "error": "Failed to find and insert data." }; } } /* * Promise returns: * { * "campaignTitle": "A New Tutorial for You" * } */ ``` ### Returns a list of email campaigns based on optional data (with elevated permissions) ```javascript import { campaigns } from '@wix/email-marketing'; import { auth } from '@wix/essentials'; const elevatedListCampaigns = auth.elevate(campaigns.listCampaigns); // Sample options value: // { // options: { // campaignType: 'AUTOMATION', // statuses: ['DELETED'], // visibilityStatuses: ['PUBLISHED] // } // } export async function myListCampaignsFunction(options) { try { const results = await elevatedListCampaigns(options); console.log('Success! Retrieved results:', results); return results; } catch (error) { console.error(error); } } /* Promise resolves to: * { * "campaigns": [ * { * "campaignId": "b98a4436-10f5-47bd-9c6f-370962adfe54", * "title": "A New Tutorial for You", * "firstImageUrl": "https://static.wixstatic.com/media/6191b8_77d27f7d028a4b50850b7f92dadcd578~mv2.png", * "editorType": "WEB", * "status": "DELETED", * "visibilityStatus": "PUBLISHED", * "distributionStatus": "DISTRIBUTED", * "publishingData": { * "landingPageUrl": "https://shoutout.wix.com/so/54OdUqUrf?languageTag=en", * "datePublished": "2023-08-10T09:40:59.000Z", * "wasResentToNonOpeners": false * }, * "dateCreated": "2023-08-10T09:40:47.000Z", * "dateUpdated": "2023-08-10T09:40:59.045Z", * "sendingState": "SENT", * "campaignType": "EMAIL_MARKETING" * }, * { * "campaignId": "fb21c999-40b5-4364-8e75-18273da41983", * "title": "What did we do last month?", * "firstImageUrl": "https://static.wixstatic.com/media/eceb8e_e65cd7284b4c4144a4fb8b2f3ce30a68~mv2_d_2000_1334_s_2.png", * "editorType": "WEB", * "status": "DELETED", * "visibilityStatus": "PUBLISHED", * "distributionStatus": "DISTRIBUTED", * "publishingData": { * "landingPageUrl": "https://shoutout.wix.com/so/83OdQ8pDA?languageTag=en", * "datePublished": "2023-08-10T09:25:15.000Z", * "wasResentToNonOpeners": false * }, * "dateCreated": "2023-08-09T11:51:27.000Z", * "dateUpdated": "2023-08-10T09:25:14.952Z", * "sendingState": "SENT", * "campaignType": "EMAIL_MARKETING" * } * ] * } */ ``` ### listCampaigns (self-hosted) Self-hosted SDK calls require you to [create a client](https://dev.wix.com/docs/sdk/articles/work-with-the-sdk/about-the-wix-client.md). ```javascript import { createClient } from '@wix/sdk'; import { campaigns } from '@wix/email-marketing'; // Import the auth strategy for the relevant access type // Import the relevant host module if needed const myWixClient = createClient ({ modules: { campaigns }, // Include the auth strategy and host as relevant }); async function listCampaigns(options) { const response = await myWixClient.campaigns.listCampaigns(options); }; ``` ---