From 33cec77396296b57b488c971e70a45ac864ddd63 Mon Sep 17 00:00:00 2001 From: Will Strinz Date: Thu, 22 Oct 2026 12:47:50 -0500 Subject: [PATCH] Document the Email Series Campaign email list and fetch endpoints Co-Authored-By: Claude Opus 5.5 --- source/includes/rest/_campaigns.md | 201 +++++++++++++++++++++++++++++ 1 file changed, 201 insertions(+) diff --git a/source/includes/rest/_campaigns.md b/source/includes/rest/_campaigns.md index d1d82202491..549350347ef 100644 --- a/source/includes/rest/_campaigns.md +++ b/source/includes/rest/_campaigns.md @@ -407,6 +407,207 @@ 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 +{ + "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": "

Welcome!

", + "text_body": "Welcome!", + "created_at": "2026-06-21T10:31:58Z", + "open_rate": 0.42, + "click_rate": 0.085, + "links": { + "account": "9999999", + "campaign": "123456" + } + }] +} +``` + +Returns every email in the Email Series Campaign at once. Includes draft emails. The list is not +paginated. + +**Properties** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropertyDescription
idThe email's id. Use it to fetch the email.
hrefThe url for retrieving the email via the REST API.
sending_delayHow long Drip waits before sending this email, in the unit set for it in the campaign: minutes, hours, or days. The unit is not included.
sending_orderThe email's position in the campaign. The list is returned in this order.
subjectThe email's subject.
html_bodyThe HTML content used in the email's body.
text_bodyThe plain text content used in the email's body.
created_atA timestamp for when the email was created.
open_rateThe email's open rate, as a decimal: 0.42 is 42%.
click_rateThe email's click rate, as a decimal: 0.085 is 8.5%.
linksAn object containing the ids of the email's account and Email Series Campaign.
+ +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: