Skip to main content

Get a list of campaigns

warning

This is a v1 legacy endpoint. It uses a different path /rest/v1 and may return different error codes and response formats compared to v2. While it remains functional, consider handling errors accordingly.

Fetch all campaigns associated with your account, with the option to filter by status for more targeted results.

The response includes basic campaign information. You can use the campaign ID further to:

  • fetch campaign statistics - see rest/v1/campaign_list?id={id} endpoint here
  • fetch campaign settings and content - see v2/campaigns/{id} endpoint here

Request

Endpoint

GET https://api.woodpecker.co/rest/v1/campaign_list

Headers

x-api-key: {YOUR_API_KEY}

For details on how to authenticate your requests, please see the authentication guide.

Parameters

ParameterRequiredDescription
statusNoFilter campaigns by their status. Comma-separated list of statuses: RUNNING, DRAFT, EDITED, PAUSED, STOPPED, COMPLETED
idNoComma-separated list of campaign ids. Requesting only one id returns detailed information about it; see dedicated article for more information

Request sample

Fetch RUNNING and PAUSED campaigns

curl --request GET \
--url "https://api.woodpecker.co/rest/v1/campaign_list?status=RUNNING,PAUSED" \
--header "x-api-key: {YOUR_API_KEY}"

Response

Response examples

An array of all campaigns meeting your criteria.

[
{
"id": 1234567,
"name": "SaaS CEOs",
"status": "RUNNING",
"created": "2025-02-10T13:14:57+0100",
"from_name": "Erlich Bachman",
"from_names": ["Erlich Bachman", "Jared Dunn", "Richard Hendricks", "Jian"],
"gdpr_unsubscribe": false,
"folder_name": "SaaS in America",
"folder_id": 987,
"from_email": "erlich.bachman@piedpiper.com",
"from_emails": [
"erlich.bachman@piedpiper.com",
"jared.dunn@piedpiper.com",
"richard.hendricks@piedpiper.com",
"jian@bachmanity.com"
],
"per_day": 200,
"bcc": "",
"cc": "",
"error": ""
},
{
"id": 1235678,
"name": "Test campaign",
"status": "COMPLETED",
"created": "2025-02-03T16:10:11+0100",
"from_name": "Erlich Bachman",
"from_names": ["Erlich Bachman", "Jared Dunn"],
"gdpr_unsubscribe": true,
"folder_name": "Finished campaigns",
"folder_id": 954,
"from_email": "erlich.bachman@piedpiper.com",
"from_emails": [
"erlich.bachman@piedpiper.com",
"jared.dunn@piedpiper.com"
],
"per_day": 120,
"bcc": "sentemails@crm.com",
"cc": "",
"error": ""
}
]

Body schema

FieldTypeDescription
idintegerUnique identifier of the campaign
namestringName of the campaign
statusstringCurrent campaign status. Possible values: RUNNING, DRAFT, STOPPED, PAUSED, EDITED, COMPLETED
createdstringCampaign creation date (ISO 8601)
from_namestringOne of the sending emails 'from name'. If multiple are used, refer to from_names instead
from_namesarray[string]A list of sender names used in the campaign
gdpr_unsubscribebooleanWhether GDPR-compliant unsubscribe is enabled
folder_namestringName of the folder the campaign is assigned to
folder_idintegerID of the folder the campaign is assigned to. 0 stands for general UNASSIGNED folder
from_emailstringOne of the campaign sending email addresses. If multiple are used, refer to from_emails instead
from_emailsarray[string]List of campaign sending email addresses
per_dayintegerMaximum number of opening emails that can be sent per day. The limit is shared between all mailboxes
bccstringEmail address that receives a blind copy of outgoing messages
ccstringEmail address that receives a carbon copy of outgoing messages
errordeprecatedDeprecated. Empty string