Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
149 changes: 149 additions & 0 deletions source/includes/rest/_campaigns.md
Original file line number Diff line number Diff line change
Expand Up @@ -407,6 +407,155 @@ client.pauseCampaign(campaignId)

None.

## List all emails in an Email Series Campaign

> To list the emails in an Email Series Campaign:

```shell
curl "https://api.getdrip.com/v2/YOUR_ACCOUNT_ID/campaigns/CAMPAIGN_ID/emails" \
-H 'User-Agent: Your App Name (www.yourapp.com)' \
-u YOUR_API_KEY:
```

```ruby
require "net/http"

uri = URI("https://api.getdrip.com/v2/YOUR_ACCOUNT_ID/campaigns/CAMPAIGN_ID/emails")

request = Net::HTTP::Get.new(uri)
request.basic_auth("YOUR_API_KEY", "")
request["User-Agent"] = "Your App Name (www.yourapp.com)"

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end

puts response.body
```

```javascript
const response = await fetch(
"https://api.getdrip.com/v2/YOUR_ACCOUNT_ID/campaigns/CAMPAIGN_ID/emails",
{
headers: {
"User-Agent": "Your App Name (www.yourapp.com)",
"Authorization": "Basic " + Buffer.from("YOUR_API_KEY:").toString("base64")
}
}
);

const body = await response.json();
```

> The response looks like this:

```json
# The emails property is an array of email objects.
{
"links": {
"emails.account": "https://api.getdrip.com/v2/accounts/{emails.account}",
"emails.campaign": "https://api.getdrip.com/v2/{emails.account}/campaigns/{emails.campaign}"
},
"emails": [{
"id": "7654321",
"href": "https://api.getdrip.com/v2/9999999/campaigns/123456/emails/7654321",
"sending_delay": 0,
"sending_order": 0,
"subject": "Welcome to the course, {{ subscriber.first_name }}",
"html_body": "<html><body><h1>Welcome!</h1></body></html>",
"text_body": "Welcome!",
"created_at": "2026-06-21T10:31:58Z",
"open_rate": 0.0,
"click_rate": 0.0,
"links": {
"account": "9999999",
"campaign": "123456"
}
}]
}
```

Returns every email in the Email Series Campaign in sending order, including drafts, which are
not sent and are not marked as drafts in the response. The list is not paginated.

`sending_delay` is how long Drip waits before sending the email, counted from the previous email
or, for the first email, from when the person subscribed unless the campaign has
`start_immediately`. Its unit (minutes, hours, or days) is set in the Email Series Campaign and
is not part of the response. For an email's performance, use
[Fetch email metrics](#fetch-email-metrics). Liquid in `subject`, `html_body`, and `text_body` is
returned as written, not rendered for a subscriber.

### HTTP Endpoint

`GET /v2/:account_id/campaigns/:campaign_id/emails`

### Arguments

None.

## Fetch an email in an Email Series Campaign

> To fetch one email in an Email Series Campaign:

```shell
curl "https://api.getdrip.com/v2/YOUR_ACCOUNT_ID/campaigns/CAMPAIGN_ID/emails/EMAIL_ID" \
-H 'User-Agent: Your App Name (www.yourapp.com)' \
-u YOUR_API_KEY:
```

```ruby
require "net/http"

uri = URI("https://api.getdrip.com/v2/YOUR_ACCOUNT_ID/campaigns/CAMPAIGN_ID/emails/EMAIL_ID")

request = Net::HTTP::Get.new(uri)
request.basic_auth("YOUR_API_KEY", "")
request["User-Agent"] = "Your App Name (www.yourapp.com)"

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end

puts response.body
```

```javascript
const response = await fetch(
"https://api.getdrip.com/v2/YOUR_ACCOUNT_ID/campaigns/CAMPAIGN_ID/emails/EMAIL_ID",
{
headers: {
"User-Agent": "Your App Name (www.yourapp.com)",
"Authorization": "Basic " + Buffer.from("YOUR_API_KEY:").toString("base64")
}
}
);

const body = await response.json();
```

> The response looks like this:

```json
# The emails property is an array of one email object.
{
"links": { ... },
"emails": [{ ... }]
}
```

Returns one email, with the same properties as
[List all emails in an Email Series Campaign](#list-all-emails-in-an-email-series-campaign).
Responds with a `404 Not Found` if the Email Series Campaign does not exist or the email is not
part of it.

### HTTP Endpoint

`GET /v2/:account_id/campaigns/:campaign_id/emails/:email_id`

### Arguments

None.

## List all subscribers subscribed to an Email Series Campaign

> To list subscribers on an Email Series Campaign:
Expand Down
Loading