Customer.io
Connect to Customer.io to manage campaigns, newsletters, broadcasts, segments, and people.
Authentication
| Method | Kind | Status | Details |
|---|---|---|---|
| API Key | api_key | available | — |
Call a tool
import { createClient } from "@open-connector/sdk";const oc = createClient({ baseUrl: "https://api.openconnector.dev", apiKey: process.env.OPEN_CONNECTOR_API_KEY!,});const result = await oc.executeTool({ slug: "CUSTOMER_IO_ADD_COLLECTION", connectedAccountId: "conn_...", arguments: { /* match this tool's input schema */ },});import Composio from "@composio/client";const composio = new Composio({ baseURL: "https://api.openconnector.dev/composio", apiKey: process.env.OPEN_CONNECTOR_API_KEY!,});const result = await composio.tools.execute("CUSTOMER_IO_ADD_COLLECTION", { connected_account_id: "conn_...", arguments: { /* match this tool's input schema */ },});oc tools execute CUSTOMER_IO_ADD_COLLECTION --data '{ }'Tool catalog
Available tools
159 callable operations
Create a collectionCUSTOMER_IO_ADD_COLLECTIONCreate a new collection and provide the `data` that you'll access from the collection or the `url` that you'll download CSV or JSON data from. **Note**: A collection cannot be more than 10 MB in size. No individual row in the collection can be more than 10 KB.Connection
Create a new collection and provide the `data` that you'll access from the collection or the `url` that you'll download CSV or JSON data from. **Note**: A collection cannot be more than 10 MB in size. No individual row in the collection can be more than 10 KB.
Authentication
Connected account requiredTags
Get broadcast action link metricsCUSTOMER_IO_BROADCAST_ACTION_LINKSReturns link click metrics for an individual broadcast action. Unless you specify otherwise, the response contains data for the maximum period by days (45 days). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.Connection
Returns link click metrics for an individual broadcast action. Unless you specify otherwise, the response contains data for the maximum period by days (45 days). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.
Authentication
Connected account requiredTags
Get broadcast action metricsCUSTOMER_IO_BROADCAST_ACTION_METRICSReturns a list of metrics for an individual action both in total and in `steps` (days, weeks, etc) over a period of time. Stepped `series` metrics return from oldest to newest (i.e. the 0-index for any result is the oldest step/period). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.Connection
Returns a list of metrics for an individual action both in total and in `steps` (days, weeks, etc) over a period of time. Stepped `series` metrics return from oldest to newest (i.e. the 0-index for any result is the oldest step/period). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.
Authentication
Connected account requiredTags
List broadcast actionsCUSTOMER_IO_BROADCAST_ACTIONSReturns the actions that occur as a part of a broadcast.Connection
Returns the actions that occur as a part of a broadcast.
Authentication
Connected account requiredTags
Get broadcast error descriptionsCUSTOMER_IO_BROADCAST_ERRORSIf your broadcast produced validation errors, this endpoint can help you better understand what went wrong. Broadcast errors are generally issues in your broadcast audience and associated.Connection
If your broadcast produced validation errors, this endpoint can help you better understand what went wrong. Broadcast errors are generally issues in your broadcast audience and associated.
Authentication
Connected account requiredTags
Get broadcast link metricsCUSTOMER_IO_BROADCAST_LINKSReturns metrics for link clicks within a broadcast, both in total and in `series` periods (days, weeks, etc). `series` metrics are ordered oldest to newest (i.e. the 0-index for any result is the oldest step/period). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.Connection
Returns metrics for link clicks within a broadcast, both in total and in `series` periods (days, weeks, etc). `series` metrics are ordered oldest to newest (i.e. the 0-index for any result is the oldest step/period). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.
Authentication
Connected account requiredTags
Get messages for a broadcastCUSTOMER_IO_BROADCAST_MESSAGESReturns information about the deliveries (instances of messages sent to individual people) sent from an API-triggered broadcast. Provide query parameters to refine the metrics you want to return. Use the `start_ts` and `end_ts` to find messages within a time range. If your request doesn't include `start_ts` and `end_ts` parameters, we'll return results for the 1 month period after the first trigger. If your `start_ts` and `end_ts` range is more than 12 months, we'll return 12 months of data from the most recent timestamp in your request. Timestamps reflect when deliveries were created in our system, not when they were actually sent to recipients. There may be a delay between creation and sending.Connection
Returns information about the deliveries (instances of messages sent to individual people) sent from an API-triggered broadcast. Provide query parameters to refine the metrics you want to return. Use the `start_ts` and `end_ts` to find messages within a time range. If your request doesn't include `start_ts` and `end_ts` parameters, we'll return results for the 1 month period after the first trigger. If your `start_ts` and `end_ts` range is more than 12 months, we'll return 12 months of data from the most recent timestamp in your request. Timestamps reflect when deliveries were created in our system, not when they were actually sent to recipients. There may be a delay between creation and sending.
Authentication
Connected account requiredTags
Get broadcast metricsCUSTOMER_IO_BROADCAST_METRICSReturns a list of metrics for an individual broadcast in `steps` (days, weeks, etc). We return metrics from oldest to newest (i.e. the 0-index for any result is the oldest step/period). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.Connection
Returns a list of metrics for an individual broadcast in `steps` (days, weeks, etc). We return metrics from oldest to newest (i.e. the 0-index for any result is the oldest step/period). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.
Authentication
Connected account requiredTags
Get the status of a broadcastCUSTOMER_IO_BROADCAST_STATUSAfter triggering a broadcast you can retrieve the status of that broadcast using a GET of the `trigger_id`. You can retrieve the `trigger_id` from [Get broadcast triggers](/api/app/#operation/listBroadcastTriggers).Connection
After triggering a broadcast you can retrieve the status of that broadcast using a GET of the `trigger_id`. You can retrieve the `trigger_id` from [Get broadcast triggers](/api/app/#operation/listBroadcastTriggers).
Authentication
Connected account requiredTags
Get link metrics for an actionCUSTOMER_IO_CAMPAIGN_ACTION_LINKSReturns link click metrics for an individual action. Unless you specify otherwise, the response contains data for the maximum period by days (45 days). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.Connection
Returns link click metrics for an individual action. Unless you specify otherwise, the response contains data for the maximum period by days (45 days). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.
Authentication
Connected account requiredTags
Get campaign action metricsCUSTOMER_IO_CAMPAIGN_ACTION_METRICSReturns a list of metrics for an individual action. The response format and available parameters depend on the version parameter that you use with this endpoint. **We strongly recommend that you use `version=2`**: **Version 2 (Recommended):** - Uses `res`, `tz`, `start`, and `end` parameters - Based on resolution with flexible time ranges - Returns metrics over a period of time (resolution) from oldest to newest **Version 1 (Deprecated):** - Uses `period` and `steps` parameters - Based on steps (days, weeks, etc) - Returns metrics from oldest to newest (i.e. the 0-index for any result is the oldest step/period) - You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months) - For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made - `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`Connection
Returns a list of metrics for an individual action. The response format and available parameters depend on the version parameter that you use with this endpoint. **We strongly recommend that you use `version=2`**: **Version 2 (Recommended):** - Uses `res`, `tz`, `start`, and `end` parameters - Based on resolution with flexible time ranges - Returns metrics over a period of time (resolution) from oldest to newest **Version 1 (Deprecated):** - Uses `period` and `steps` parameters - Based on steps (days, weeks, etc) - Returns metrics from oldest to newest (i.e. the 0-index for any result is the oldest step/period) - You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months) - For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made - `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`
Authentication
Connected account requiredTags
Get campaign journey metricsCUSTOMER_IO_CAMPAIGN_JOURNEY_METRICSReturns a list of Journey Metrics for your campaign. These metrics show how many people triggered your campaign, were messaged, etc for the time period and "resolution" you set. You must provide the `start`, `end`, and `resolution` parameters or your request will return `400`. Metrics in the response are arrays, and each index in the array corresponds to the `resolution` in your request. If you request metrics in `days`, the first result in each metric array is the first day of results and each successive increment represents another day. Each increment represents the number of journeys that started within a time period and eventually achieved a particular metric. For example, array index 0 for the `converted` metric represents the number of journeys that started on the first day/month of results that achieved a conversion.Connection
Returns a list of Journey Metrics for your campaign. These metrics show how many people triggered your campaign, were messaged, etc for the time period and "resolution" you set. You must provide the `start`, `end`, and `resolution` parameters or your request will return `400`. Metrics in the response are arrays, and each index in the array corresponds to the `resolution` in your request. If you request metrics in `days`, the first result in each metric array is the first day of results and each successive increment represents another day. Each increment represents the number of journeys that started within a time period and eventually achieved a particular metric. For example, array index 0 for the `converted` metric represents the number of journeys that started on the first day/month of results that achieved a conversion.
Authentication
Connected account requiredTags
Get campaign link metricsCUSTOMER_IO_CAMPAIGN_LINK_METRICSReturns metrics for link clicks within a campaign, both in total and in `series` periods (days, weeks, etc). `series` metrics are ordered oldest to newest (i.e. the 0-index for any result is the oldest step/period). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.Connection
Returns metrics for link clicks within a campaign, both in total and in `series` periods (days, weeks, etc). `series` metrics are ordered oldest to newest (i.e. the 0-index for any result is the oldest step/period). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.
Authentication
Connected account requiredTags
Get campaign metricsCUSTOMER_IO_CAMPAIGN_METRICSReturns a list of metrics for an individual campaign. The available parameters and response format depend on the version parameter that you use with this endpoint. **We strongly recommend that you use `version=2`** with this endpoint: **Version 2 (Recommended):** - Uses `res`, `tz`, `start`, and `end` parameters - Based on resolution and optionally, time zone, start and end times - Provides maximum flexibility for time-based metrics **Version 1 (Deprecated):** - Uses `period` and `steps` parameters - Based on steps (days, weeks, etc) - Returns metrics from oldest to newest (i.e. the 0-index for any result is the oldest step/period) - You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months) - For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made - `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`Connection
Returns a list of metrics for an individual campaign. The available parameters and response format depend on the version parameter that you use with this endpoint. **We strongly recommend that you use `version=2`** with this endpoint: **Version 2 (Recommended):** - Uses `res`, `tz`, `start`, and `end` parameters - Based on resolution and optionally, time zone, start and end times - Provides maximum flexibility for time-based metrics **Version 1 (Deprecated):** - Uses `period` and `steps` parameters - Based on steps (days, weeks, etc) - Returns metrics from oldest to newest (i.e. the 0-index for any result is the oldest step/period) - You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months) - For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made - `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`
Authentication
Connected account requiredTags
Create a file assetCUSTOMER_IO_CREATE_ASSETCreates a new file asset. Accepted file types: `image/bmp`, `image/jpeg`, `image/jpg`, `image/png`, `image/gif`, `application/pdf`. Maximum file size: 2 MB. Maximum image dimensions: 4096px.Connection
Creates a new file asset. Accepted file types: `image/bmp`, `image/jpeg`, `image/jpg`, `image/png`, `image/gif`, `application/pdf`. Maximum file size: 2 MB. Maximum image dimensions: 4096px.
Authentication
Connected account requiredTags
Create a folderCUSTOMER_IO_CREATE_ASSET_FOLDERCreates a new folder for organizing file assets. Folder names must be unique within the same parent folder.Connection
Creates a new folder for organizing file assets. Folder names must be unique within the same parent folder.
Authentication
Connected account requiredTags
Create a componentCUSTOMER_IO_CREATE_COMPONENTCreates a custom component.Connection
Creates a custom component.
Authentication
Connected account requiredTags
Create an emailCUSTOMER_IO_CREATE_EMAILCreate an email. Note, you can create an email without filling out all required fields for sending. You can fill in the envelope, like a to and from address, with this method, but that's not required until you connect it to a workflow like a campaign.Connection
Create an email. Note, you can create an email without filling out all required fields for sending. You can fill in the envelope, like a to and from address, with this method, but that's not required until you connect it to a workflow like a campaign.
Authentication
Connected account requiredTags
Create an email translationCUSTOMER_IO_CREATE_EMAIL_TRANSLATIONCreates a new translation for an email. If content, envelope, and/or transformers are omitted, the values are copied from the default (parent) email.Connection
Creates a new translation for an email. If content, envelope, and/or transformers are omitted, the values are copied from the default (parent) email.
Authentication
Connected account requiredTags
Create a folderCUSTOMER_IO_CREATE_FOLDERCreate a new folder at the root level or under a parent folder. To create a child folder, you need the UUID of the parent folder, which you can retrieve with [List folders](#tag/design-studio/listFolders).Connection
Create a new folder at the root level or under a parent folder. To create a child folder, you need the UUID of the parent folder, which you can retrieve with [List folders](#tag/design-studio/listFolders).
Authentication
Connected account requiredTags
Create a manual segmentCUSTOMER_IO_CREATE_MAN_SEGMENTCreate a manual segment with a name and a description. This request creates an empty segment.Connection
Create a manual segment with a name and a description. This request creates an empty segment.
Authentication
Connected account requiredTags
Create and send a newsletterCUSTOMER_IO_CREATE_NEWSLETTERCreate a newsletter and optionally schedule it or send it immediately. To send the newsletter immediately, set `send_now` to `true`. To schedule for later, set `scheduled_at` to a Unix timestamp in the future. If you don't set either, the newsletter is created as a draft. If you [enabled a subscription center](/journeys/channels/subscriptions/center/#enable-sub-center) in your workspace, `subscription_topic_id` is required. Use the [subscription center endpoint](#tag/subscription-center/getTopics) to find IDs. Use standard HTML/CSS for the `body` of an email; this endpoint can't pull in global style variables or render our Design Studio's component syntax. You can create Design Studio emails through [other endpoints](#tag/design-studio). All requests must be less than 1 MB.Connection
Create a newsletter and optionally schedule it or send it immediately. To send the newsletter immediately, set `send_now` to `true`. To schedule for later, set `scheduled_at` to a Unix timestamp in the future. If you don't set either, the newsletter is created as a draft. If you [enabled a subscription center](/journeys/channels/subscriptions/center/#enable-sub-center) in your workspace, `subscription_topic_id` is required. Use the [subscription center endpoint](#tag/subscription-center/getTopics) to find IDs. Use standard HTML/CSS for the `body` of an email; this endpoint can't pull in global style variables or render our Design Studio's component syntax. You can create Design Studio emails through [other endpoints](#tag/design-studio). All requests must be less than 1 MB.
Authentication
Connected account requiredTags
Add a translation to a newsletterCUSTOMER_IO_CREATE_NEWSLETTER_LANGUAGE_VARIANTAdd a language variant to a newsletter. If you omit optional fields, the values from the default template are copied over untranslated. Make sure you translate all aspects of your default template. You can't add language variants to a newsletter that has already been sent. You can't manage emails created with the drag-and-drop editor or Design Studio via this endpoint—use [Create an email translation](#tag/design-studio/createEmailTranslation) for Design Studio emails. If the newsletter has A/B tests, use [Add a translation to a newsletter test group](#operation/createNewsletterTestLanguageVariant) instead.Connection
Add a language variant to a newsletter. If you omit optional fields, the values from the default template are copied over untranslated. Make sure you translate all aspects of your default template. You can't add language variants to a newsletter that has already been sent. You can't manage emails created with the drag-and-drop editor or Design Studio via this endpoint—use [Create an email translation](#tag/design-studio/createEmailTranslation) for Design Studio emails. If the newsletter has A/B tests, use [Add a translation to a newsletter test group](#operation/createNewsletterTestLanguageVariant) instead.
Authentication
Connected account requiredTags
Create an A/B test group for a newsletterCUSTOMER_IO_CREATE_NEWSLETTER_TEST_GROUPCreate a new A/B test group for a newsletter. This duplicates the existing newsletter content into a new test group, allowing you to test different versions of your message. This endpoint does not require a request body. The new test group is created as a copy of the existing content. You cannot add test groups to a newsletter that has already been sent.Connection
Create a new A/B test group for a newsletter. This duplicates the existing newsletter content into a new test group, allowing you to test different versions of your message. This endpoint does not require a request body. The new test group is created as a copy of the existing content. You cannot add test groups to a newsletter that has already been sent.
Authentication
Connected account requiredTags
Add a translation to a newsletter test groupCUSTOMER_IO_CREATE_NEWSLETTER_TEST_LANGUAGE_VARIANTAdd a language variant to a specific A/B test group in a newsletter. The new variant is a copy of the default template in the test group with the content you provide. The payload the endpoint accepts depends on the parent newsletter's channel type: if the newsletter is an email, the payload will be an email variant; if the newsletter is an SMS, the payload will be an SMS variant. You cannot add language variants to a newsletter that has already been sent, or to newsletters created with the drag-and-drop editor or Design Studio.Connection
Add a language variant to a specific A/B test group in a newsletter. The new variant is a copy of the default template in the test group with the content you provide. The payload the endpoint accepts depends on the parent newsletter's channel type: if the newsletter is an email, the payload will be an email variant; if the newsletter is an SMS, the payload will be an SMS variant. You cannot add language variants to a newsletter that has already been sent, or to newsletters created with the drag-and-drop editor or Design Studio.
Authentication
Connected account requiredTags
Create a snippetCUSTOMER_IO_CREATE_SNIPPETCreate a new snippet. If a snippet with that name already exists, we'll return a `422` error. If the value contains Liquid, we validate it.Connection
Create a new snippet. If a snippet with that name already exists, we'll return a `422` error. If the value contains Liquid, we validate it.
Authentication
Connected account requiredTags
Create a reporting webhookCUSTOMER_IO_CREATE_WEBHOOKCreate a new webhook configuration.Connection
Create a new webhook configuration.
Authentication
Connected account requiredTags
Delete a file assetCUSTOMER_IO_DELETE_ASSETSoft-deletes a file asset by setting its `deleted_at` timestamp. The underlying file in cloud storage is not removed. Assets that are currently in use cannot be deleted.Connection
Soft-deletes a file asset by setting its `deleted_at` timestamp. The underlying file in cloud storage is not removed. Assets that are currently in use cannot be deleted.
Authentication
Connected account requiredTags
Delete a folderCUSTOMER_IO_DELETE_ASSET_FOLDERSoft-deletes an empty folder. Folders that still contain files or subfolders cannot be deleted. Assets marked as in use also prevent deletion.Connection
Soft-deletes an empty folder. Folders that still contain files or subfolders cannot be deleted. Assets marked as in use also prevent deletion.
Authentication
Connected account requiredTags
Delete a collectionCUSTOMER_IO_DELETE_COLLECTIONRemove a collection and associated contents. Before you delete a collection, make sure that you aren't referencing it in active campaign messages or broadcasts; references to a deleted collection will appear empty and may prevent your messages from making sense to your audience.Connection
Remove a collection and associated contents. Before you delete a collection, make sure that you aren't referencing it in active campaign messages or broadcasts; references to a deleted collection will appear empty and may prevent your messages from making sense to your audience.
Authentication
Connected account requiredTags
Delete a componentCUSTOMER_IO_DELETE_COMPONENTDelete a component. Note, this deletes any component. If you delete a component in use, the emails that reference it could fail to send.Connection
Delete a component. Note, this deletes any component. If you delete a component in use, the emails that reference it could fail to send.
Authentication
Connected account requiredTags
Delete an emailCUSTOMER_IO_DELETE_EMAILDelete an email. You cannot delete an email that is linked to a workflow (campaign, broadcast, etc). This deletes the email and all translations.Connection
Delete an email. You cannot delete an email that is linked to a workflow (campaign, broadcast, etc). This deletes the email and all translations.
Authentication
Connected account requiredTags
Delete an email translationCUSTOMER_IO_DELETE_EMAIL_TRANSLATIONDelete a specific language translation from an email. This fails if the email is linked to a workflow (campaign, broadcast, etc).Connection
Delete a specific language translation from an email. This fails if the email is linked to a workflow (campaign, broadcast, etc).
Authentication
Connected account requiredTags
Delete a folderCUSTOMER_IO_DELETE_FOLDERDelete a folder **including subfolders and all file (components, templates, and emails)**. You cannot delete a folder with emails used in your workflows (campaigns, broadcasts, etc). However, you can delete a folder with components that are referenced in emails connected to workflows, so make sure deleting a folder with components won't break your emails.Connection
Delete a folder **including subfolders and all file (components, templates, and emails)**. You cannot delete a folder with emails used in your workflows (campaigns, broadcasts, etc). However, you can delete a folder with components that are referenced in emails connected to workflows, so make sure deleting a folder with components won't break your emails.
Authentication
Connected account requiredTags
Delete a segmentCUSTOMER_IO_DELETE_MAN_SEGMENTDelete a manual segment.Connection
Delete a manual segment.
Authentication
Connected account requiredTags
Delete a translation of a newsletterCUSTOMER_IO_DELETE_NEWSLETTER_LANGUAGE_VARIANTDelete a specific language variant of a newsletter. You cannot delete the default language variant. If your newsletter has already been sent, you cannot delete language variants. If your newsletter includes A/B tests, use [Delete a translation in a newsletter test group](#operation/deleteNewsletterTestLanguageVariant).Connection
Delete a specific language variant of a newsletter. You cannot delete the default language variant. If your newsletter has already been sent, you cannot delete language variants. If your newsletter includes A/B tests, use [Delete a translation in a newsletter test group](#operation/deleteNewsletterTestLanguageVariant).
Authentication
Connected account requiredTags
Delete a translation in a newsletter test groupCUSTOMER_IO_DELETE_NEWSLETTER_TEST_LANGUAGE_VARIANTDelete a specific language variant of a newsletter in an A/B test group. You cannot delete the default language variant. If your newsletter has already been sent, you cannot delete language variants. You can retrieve a list of `test_group_ids` from [List A/B test groups in a newsletter](#operation/getNewsletterTestGroups).Connection
Delete a specific language variant of a newsletter in an A/B test group. You cannot delete the default language variant. If your newsletter has already been sent, you cannot delete language variants. You can retrieve a list of `test_group_ids` from [List A/B test groups in a newsletter](#operation/getNewsletterTestGroups).
Authentication
Connected account requiredTags
Delete a newsletterCUSTOMER_IO_DELETE_NEWSLETTERSDeletes an individual newsletter, including content, settings, and metrics. It will be removed from segments, and its templates will no longer show in the Message Library. If the newsletter is an in-app message, this cancels any undelivered, in-app message, too.Connection
Deletes an individual newsletter, including content, settings, and metrics. It will be removed from segments, and its templates will no longer show in the Message Library. If the newsletter is an in-app message, this cancels any undelivered, in-app message, too.
Authentication
Connected account requiredTags
Delete a snippetCUSTOMER_IO_DELETE_SNIPPETRemove a snippet. You can only remove a snippet that is not in use. If your snippet is in use, you'll receive a `400` error.Connection
Remove a snippet. You can only remove a snippet that is not in use. If your snippet is in use, you'll receive a `400` error.
Authentication
Connected account requiredTags
Un-suppress an ESP-suppressed addressCUSTOMER_IO_DELETE_SUPPRESSIONRemove an address from the ESP's suppression list.Connection
Remove an address from the ESP's suppression list.
Authentication
Connected account requiredTags
Delete a reporting webhookCUSTOMER_IO_DELETE_WEBHOOKDelete a reporting webhook's configuration.Connection
Delete a reporting webhook's configuration.
Authentication
Connected account requiredTags
Download an exportCUSTOMER_IO_DOWNLOAD_EXPORTThis endpoint returns a signed link to download an export. The link expires after 15 minutes.Connection
This endpoint returns a signed link to download an export. The link expires after 15 minutes.
Authentication
Connected account requiredTags
Export information about deliveriesCUSTOMER_IO_EXPORT_DELIVERIES_DATAProvide filters for the newsletter, campaign, or action you want to return delivery information from. This endpoint starts an export, but you cannot download your export from this endpoint. Use the `/exports/{export_id}` endpoint to download your export. Use the `start` and `end` to find messages within a time range. If your request doesn't include `start` and `end` parameters, we'll return the most recent 6 months of messages. If your `start` and `end` range is more than 12 months, we'll return 12 months of data from the most recent timestamp in your request. Timestamps reflect when deliveries were created in our system, not when they were actually sent to recipients. There may be a delay between creation and sending.Connection
Provide filters for the newsletter, campaign, or action you want to return delivery information from. This endpoint starts an export, but you cannot download your export from this endpoint. Use the `/exports/{export_id}` endpoint to download your export. Use the `start` and `end` to find messages within a time range. If your request doesn't include `start` and `end` parameters, we'll return the most recent 6 months of messages. If your `start` and `end` range is more than 12 months, we'll return 12 months of data from the most recent timestamp in your request. Timestamps reflect when deliveries were created in our system, not when they were actually sent to recipients. There may be a delay between creation and sending.
Authentication
Connected account requiredTags
Export customer dataCUSTOMER_IO_EXPORT_PEOPLE_DATAProvide filters and attributes describing the customers you want to export. This endpoint returns export metadata; use the `/exports/{export_id}/endpoint` to download your export.Connection
Provide filters and attributes describing the customers you want to export. This endpoint returns export metadata; use the `/exports/{export_id}/endpoint` to download your export.
Authentication
Connected account requiredTags
Get an archived messageCUSTOMER_IO_GET_ARCHIVED_MESSAGEReturns the archived copy of a delivery, including the message body, recipient, and metrics. This endpoint is limited to 100 requests per day.Connection
Returns the archived copy of a delivery, including the message body, recipient, and metrics. This endpoint is limited to 100 requests per day.
Authentication
Connected account requiredTags
Get a file assetCUSTOMER_IO_GET_ASSETRetrieves a single file asset by its ID. Returns 404 if the asset does not exist or is a folder.Connection
Retrieves a single file asset by its ID. Returns 404 if the asset does not exist or is a folder.
Authentication
Connected account requiredTags
Get a folderCUSTOMER_IO_GET_ASSET_FOLDERRetrieves a single folder by its ID.Connection
Retrieves a single folder by its ID.
Authentication
Connected account requiredTags
Get a broadcastCUSTOMER_IO_GET_BROADCASTReturns metadata for an individual broadcast.Connection
Returns metadata for an individual broadcast.
Authentication
Connected account requiredTags
Get a broadcast actionCUSTOMER_IO_GET_BROADCAST_ACTIONReturns information about a specific action within a broadcast.Connection
Returns information about a specific action within a broadcast.
Authentication
Connected account requiredTags
Get a translation of a broadcast messageCUSTOMER_IO_GET_BROADCAST_ACTION_LANGUAGEReturns information about a translation of message in a broadcast. The message is identified by the `action_id`.Connection
Returns information about a translation of message in a broadcast. The message is identified by the `action_id`.
Authentication
Connected account requiredTags
Get a campaign actionCUSTOMER_IO_GET_CAMPAIGN_ACTIONReturns information about a specific action in a campaign.Connection
Returns information about a specific action in a campaign.
Authentication
Connected account requiredTags
Get a translation of a campaign messageCUSTOMER_IO_GET_CAMPAIGN_ACTION_TRANSLATIONReturns a translated version of a message in a campaign. The message is identified by the `action_id`.Connection
Returns a translated version of a message in a campaign. The message is identified by the `action_id`.
Authentication
Connected account requiredTags
Get campaign message metadataCUSTOMER_IO_GET_CAMPAIGN_MESSAGESReturns information about the deliveries (instances of messages sent to individual people) sent from a campaign. Provide query parameters to refine the metrics you want to return. Use the `start_ts` and `end_ts` to find messages within a time range. If your request doesn't include `start_ts` and `end_ts` parameters, we'll return the most recent 6 months of messages. If your `start_ts` and `end_ts` range is more than 12 months, we'll return 12 months of data from the most recent timestamp in your request. Timestamps reflect when deliveries were created in our system, not when they were actually sent to recipients. There may be a delay between creation and sending.Connection
Returns information about the deliveries (instances of messages sent to individual people) sent from a campaign. Provide query parameters to refine the metrics you want to return. Use the `start_ts` and `end_ts` to find messages within a time range. If your request doesn't include `start_ts` and `end_ts` parameters, we'll return the most recent 6 months of messages. If your `start_ts` and `end_ts` range is more than 12 months, we'll return 12 months of data from the most recent timestamp in your request. Timestamps reflect when deliveries were created in our system, not when they were actually sent to recipients. There may be a delay between creation and sending.
Authentication
Connected account requiredTags
Get a campaignCUSTOMER_IO_GET_CAMPAIGNSReturns metadata for an individual campaign.Connection
Returns metadata for an individual campaign.
Authentication
Connected account requiredTags
List subscription channelsCUSTOMER_IO_GET_CHANNELSReturns a list of subscription channels available in your workspace. Channels represent the delivery methods that people can subscribe to or unsubscribe from—email, SMS, push, etc. If you haven't set up channel options in your subscription center, this endpoint returns an empty array.Connection
Returns a list of subscription channels available in your workspace. Channels represent the delivery methods that people can subscribe to or unsubscribe from—email, SMS, push, etc. If you haven't set up channel options in your subscription center, this endpoint returns an empty array.
Authentication
Connected account requiredTags
List IP addressesCUSTOMER_IO_GET_CIO_ALLOWLISTReturns a list of IP addresses that you need to allowlist if you're using a firewall or [Custom SMTP](/journeys/channels/email/deliverability/custom-smtp/use-your-smtp-server) provider's IP access management settings to deny access to unknown IP addresses. These addresses apply to all message types and webhooks, except push notifications.Connection
Returns a list of IP addresses that you need to allowlist if you're using a firewall or [Custom SMTP](/journeys/channels/email/deliverability/custom-smtp/use-your-smtp-server) provider's IP access management settings to deny access to unknown IP addresses. These addresses apply to all message types and webhooks, except push notifications.
Authentication
Connected account requiredTags
Lookup a collectionCUSTOMER_IO_GET_COLLECTIONRetrieves details about a collection, including the `schema` and `name`. This request does not include the `content` of the collection (the values associated with keys in the schema).Connection
Retrieves details about a collection, including the `schema` and `name`. This request does not include the `content` of the collection (the values associated with keys in the schema).
Authentication
Connected account requiredTags
Lookup collection contentsCUSTOMER_IO_GET_COLLECTION_CONTENTSRetrieve the contents of a collection (the `data` from when you created or updated a collection). Each `row` in the collection is represented as a JSON blob in the response.Connection
Retrieve the contents of a collection (the `data` from when you created or updated a collection). Each `row` in the collection is represented as a JSON blob in the response.
Authentication
Connected account requiredTags
List your collectionsCUSTOMER_IO_GET_COLLECTIONSReturns a list of all of your collections, including the `name` and `schema` for each collection.Connection
Returns a list of all of your collections, including the `name` and `schema` for each collection.
Authentication
Connected account requiredTags
Get a componentCUSTOMER_IO_GET_COMPONENTReturns a single component with its full content.Connection
Returns a single component with its full content.
Authentication
Connected account requiredTags
Get ESP-suppressed emails by domainCUSTOMER_IO_GET_DOMAIN_SUPPRESSIONS_BY_TYPEFind addresses suppressed by the Email Service Provider (ESP) for a particular reason on a specific sending domain. You can get up to 1000 addresses per request. Use the `start` parameter with the `next` value from the previous response to paginate through results.Connection
Find addresses suppressed by the Email Service Provider (ESP) for a particular reason on a specific sending domain. You can get up to 1000 addresses per request. Use the `start` parameter with the `next` value from the previous response to paginate through results.
Authentication
Connected account requiredTags
Get an emailCUSTOMER_IO_GET_EMAILReturns a single email including content, envelope details, and transformers. This endpoint returns only default emails; see [Email translations](#tag/design-studio/createEmailTranslation) to access language variants.Connection
Returns a single email including content, envelope details, and transformers. This endpoint returns only default emails; see [Email translations](#tag/design-studio/createEmailTranslation) to access language variants.
Authentication
Connected account requiredTags
Get an email translationCUSTOMER_IO_GET_EMAIL_TRANSLATIONReturns a single email translation by language code, including content, envelope, and transformers.Connection
Returns a single email translation by language code, including content, envelope, and transformers.
Authentication
Connected account requiredTags
Get an exportCUSTOMER_IO_GET_EXPORTReturn information about a specific export.Connection
Return information about a specific export.
Authentication
Connected account requiredTags
Get a folderCUSTOMER_IO_GET_FOLDERGet a folder by its UUID. You can retrieve the UUID of folders through [List folders](#tag/design-studio/listFolders).Connection
Get a folder by its UUID. You can retrieve the UUID of folders through [List folders](#tag/design-studio/listFolders).
Authentication
Connected account requiredTags
Retrieve a bulk importCUSTOMER_IO_GET_IMPORTThis endpoint returns information about an "import"—a CSV file containing a group of people or events you uploaded to using `v1/imports` endpoint. You can use this endpoint to check to status of imports, or find out how many rows you successfully imported from a CSV file.Connection
This endpoint returns information about an "import"—a CSV file containing a group of people or events you uploaded to using `v1/imports` endpoint. You can use this endpoint to check to status of imports, or find out how many rows you successfully imported from a CSV file.
Authentication
Connected account requiredTags
Get a messageCUSTOMER_IO_GET_MESSAGEReturn a information about, and metrics for, a delivery—the instance of a message intended for an individual recipient person.Connection
Return a information about, and metrics for, a delivery—the instance of a message intended for an individual recipient person.
Authentication
Connected account requiredTags
Get click metrics for newsletter linksCUSTOMER_IO_GET_NEWSLETTER_LINKSReturns metrics for link clicks within a newsletter, both in total and in `series` periods (days, weeks, etc). `series` metrics are ordered oldest to newest (i.e. the 0-index for any result is the oldest step/period). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.Connection
Returns metrics for link clicks within a newsletter, both in total and in `series` periods (days, weeks, etc). `series` metrics are ordered oldest to newest (i.e. the 0-index for any result is the oldest step/period). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.
Authentication
Connected account requiredTags
Get newsletter metricsCUSTOMER_IO_GET_NEWSLETTER_METRICSReturns a list of metrics for an individual newsletter in `steps` (days, weeks, etc). We return metrics from oldest to newest (i.e. the 0-index for any result is the oldest step/period). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.Connection
Returns a list of metrics for an individual newsletter in `steps` (days, weeks, etc). We return metrics from oldest to newest (i.e. the 0-index for any result is the oldest step/period). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.
Authentication
Connected account requiredTags
Get delivery data for a newsletterCUSTOMER_IO_GET_NEWSLETTER_MSG_METAReturns information about the "deliveries" (rendered messages) sent to your recipients for a specific newsletter. Provide query parameters to refine the metrics you want to return. Use `start_ts` and `end_ts` to find messages within a time range. If your request doesn't include `start_ts` and `end_ts` parameters, we'll return up to 6 months of results beginning with the first delivery generated from the newsletter. If your `start_ts` and `end_ts` range is more than 12 months, we'll return 12 months of data from the most recent timestamp in your request. Timestamps reflect when deliveries were created in our system, not when they were actually sent to recipients. There may be a delay between creation and sending.Connection
Returns information about the "deliveries" (rendered messages) sent to your recipients for a specific newsletter. Provide query parameters to refine the metrics you want to return. Use `start_ts` and `end_ts` to find messages within a time range. If your request doesn't include `start_ts` and `end_ts` parameters, we'll return up to 6 months of results beginning with the first delivery generated from the newsletter. If your `start_ts` and `end_ts` range is more than 12 months, we'll return 12 months of data from the most recent timestamp in your request. Timestamps reflect when deliveries were created in our system, not when they were actually sent to recipients. There may be a delay between creation and sending.
Authentication
Connected account requiredTags
List a newsletter's A/B test groupsCUSTOMER_IO_GET_NEWSLETTER_TEST_GROUPSReturns information about each test group in a newsletter, including content ids for each group.Connection
Returns information about each test group in a newsletter, including content ids for each group.
Authentication
Connected account requiredTags
Get a newsletter variantCUSTOMER_IO_GET_NEWSLETTER_VARIANTReturns information about a specific variant of a newsletter, where a variant is either a language in a multi-language newsletter or a part of an A/B test.Connection
Returns information about a specific variant of a newsletter, where a variant is either a language in a multi-language newsletter or a part of an A/B test.
Authentication
Connected account requiredTags
Get a newsletter translationCUSTOMER_IO_GET_NEWSLETTER_VARIANT_TRANSLATIONReturns information about a specific language variant of a newsletter. If your newsletter includes A/B tests, use [Get a translation in a newsletter test group](/api/app/#operation/getNewsletterVariantTranslationTest).Connection
Returns information about a specific language variant of a newsletter. If your newsletter includes A/B tests, use [Get a translation in a newsletter test group](/api/app/#operation/getNewsletterVariantTranslationTest).
Authentication
Connected account requiredTags
Get a translation in a newsletter test groupCUSTOMER_IO_GET_NEWSLETTER_VARIANT_TRANSLATION_TESTReturns information about a specific language variant of a newsletter in an A/B test group. You can retrieve `test_group_ids` from [Get variants in a newsletter test group](/api/app/#operation/getNewsletterVariantTest).Connection
Returns information about a specific language variant of a newsletter in an A/B test group. You can retrieve `test_group_ids` from [Get variants in a newsletter test group](/api/app/#operation/getNewsletterVariantTest).
Authentication
Connected account requiredTags
Get a newsletterCUSTOMER_IO_GET_NEWSLETTERSReturns metadata for an individual newsletter.Connection
Returns metadata for an individual newsletter.
Authentication
Connected account requiredTags
Get Object AttributesCUSTOMER_IO_GET_OBJECT_ATTRIBUTESGet a list of attributes for an object. Attributes are things you know about an object—like an account name, billing date, etc.Connection
Get a list of attributes for an object. Attributes are things you know about an object—like an account name, billing date, etc.
Authentication
Connected account requiredTags
Get Object RelationshipsCUSTOMER_IO_GET_OBJECT_RELATIONSHIPSGet a list of people people related to an object. You can use the `start` parameter with the `next` property in responses to return pages of results. However, it's possible that you'll see duplicate entries across pages. If you want to export objects or relationships, you may want to use the export feature in our UI to return complete results.Connection
Get a list of people people related to an object. You can use the `start` parameter with the `next` property in responses to return pages of results. However, it's possible that you'll see duplicate entries across pages. If you want to export objects or relationships, you may want to use the export feature in our UI to return complete results.
Authentication
Connected account requiredTags
List object typesCUSTOMER_IO_GET_OBJECT_TYPESReturns a list of object types in your system. Because each object type is an incrementing ID, you may need to use this endpoint to find the ID of the object type you want to query, create, or modify.Connection
Returns a list of object types in your system. Because each object type is an incrementing ID, you may need to use this endpoint to find the ID of the object type you want to query, create, or modify.
Authentication
Connected account requiredTags
Find objectsCUSTOMER_IO_GET_OBJECTS_FILTERUse a set of filter conditions to find objects in your workspace. Returns a list of object IDs that you can use to look up object attributes, or to create or modify objects. The list is paged if you have a large number of objects. You can set the `limit` for the number of objects returned, and use the `start` to page through the results. It's possible that you'll see duplicate entries across pages. If you want to export objects or relationships, you may want to use the export feature in our UI to return complete results.Connection
Use a set of filter conditions to find objects in your workspace. Returns a list of object IDs that you can use to look up object attributes, or to create or modify objects. The list is paged if you have a large number of objects. You can set the `limit` for the number of objects returned, and use the `start` to page through the results. It's possible that you'll see duplicate entries across pages. If you want to export objects or relationships, you may want to use the export feature in our UI to return complete results.
Authentication
Connected account requiredTags
List customers, attributes, and devicesCUSTOMER_IO_GET_PEOPLE_BY_IDReturn attributes and devices for up to 100 customers by ID. If an ID in the request does not exist, the response omits it.Connection
Return attributes and devices for up to 100 customers by ID. If an ID in the request does not exist, the response omits it.
Authentication
Connected account requiredTags
Get customers by emailCUSTOMER_IO_GET_PEOPLE_EMAILReturn a list of people in your workspace matching an email address. If the email contains special characters like `+`, make sure you [percent-encode](/integrations/api/customerio-apis/#url-encoding) them in the query parameter. For example, use `jane%2Bnotifications%40example.com` instead of `[email protected]`. Unencoded special characters can return empty results without an error.Connection
Return a list of people in your workspace matching an email address. If the email contains special characters like `+`, make sure you [percent-encode](/integrations/api/customerio-apis/#url-encoding) them in the query parameter. For example, use `jane%2Bnotifications%40example.com` instead of `[email protected]`. Unencoded special characters can return empty results without an error.
Authentication
Connected account requiredTags
Search for customersCUSTOMER_IO_GET_PEOPLE_FILTERProvide a filter to search for people in your workspace. Your filter can filter people by segment (using the Segment ID) and attribute values; when you filter by attributes, you can use `eq` (matching an attribute value) or `exists` (matching when a person has the attribute). Use the `and` array, `or` array, and `not` object to create a complex filter. The `not` selector is an object that takes a single filter. Returns arrays of `identifiers` and `ids`. In general, you should rely on the newer `identifiers` array, which contains more complete information about each person captured by the filter in your request, than the `ids` array, which only contains `id` values. You can return up to 1000 people per request. If you want to return a larger set of people in a single request, you may want to use the [`/exports`](#tag/Exports) API instead.Connection
Provide a filter to search for people in your workspace. Your filter can filter people by segment (using the Segment ID) and attribute values; when you filter by attributes, you can use `eq` (matching an attribute value) or `exists` (matching when a person has the attribute). Use the `and` array, `or` array, and `not` object to create a complex filter. The `not` selector is an object that takes a single filter. Returns arrays of `identifiers` and `ids`. In general, you should rely on the newer `identifiers` array, which contains more complete information about each person captured by the filter in your request, than the `ids` array, which only contains `id` values. You can return up to 1000 people per request. If you want to return a larger set of people in a single request, you may want to use the [`/exports`](#tag/Exports) API instead.
Authentication
Connected account requiredTags
Lookup a customer's activitiesCUSTOMER_IO_GET_PERSON_ACTIVITIESReturn a list of activities performed by, or for, a customer. Activities are things like attribute changes and message sends. This endpoint is guaranteed to return activity history within the past 30 days. It might return data older than 30 days in some circumstances, but activites older than 30 days are not guaranteed.Connection
Return a list of activities performed by, or for, a customer. Activities are things like attribute changes and message sends. This endpoint is guaranteed to return activity history within the past 30 days. It might return data older than 30 days in some circumstances, but activites older than 30 days are not guaranteed.
Authentication
Connected account requiredTags
Lookup a customer's attributesCUSTOMER_IO_GET_PERSON_ATTRIBUTESReturn a list of attributes for a customer profile. You can use attributes to fashion segments or as liquid merge fields in your messages.Connection
Return a list of attributes for a customer profile. You can use attributes to fashion segments or as liquid merge fields in your messages.
Authentication
Connected account requiredTags
Lookup messages sent to a customerCUSTOMER_IO_GET_PERSON_MESSAGESReturns information about the deliveries sent to a person. Provide query parameters to refine the data you want to return. Use the `start_ts` and `end_ts` to find messages within a time range. If your request doesn't include `start_ts` and `end_ts` parameters, we'll return the most recent 6 months of messages. If your `start_ts` and `end_ts` range is more than 6 months, we'll return 6 months of data from the most recent timestamp in your request. Timestamps reflect when deliveries were created in our system, not when they were actually sent to recipients. There may be a delay between creation and sending.Connection
Returns information about the deliveries sent to a person. Provide query parameters to refine the data you want to return. Use the `start_ts` and `end_ts` to find messages within a time range. If your request doesn't include `start_ts` and `end_ts` parameters, we'll return the most recent 6 months of messages. If your `start_ts` and `end_ts` range is more than 6 months, we'll return 6 months of data from the most recent timestamp in your request. Timestamps reflect when deliveries were created in our system, not when they were actually sent to recipients. There may be a delay between creation and sending.
Authentication
Connected account requiredTags
Lookup a customer's relationshipsCUSTOMER_IO_GET_PERSON_RELATIONSHIPSReturn a list of objects that a person is related to. You can use the `start` parameter with the `next` property in responses to return pages of results. However, it's possible that you'll see duplicate entries across pages. If you want to export objects or relationships, you may want to use the export feature in our UI to return complete results.Connection
Return a list of objects that a person is related to. You can use the `start` parameter with the `next` property in responses to return pages of results. However, it's possible that you'll see duplicate entries across pages. If you want to export objects or relationships, you may want to use the export feature in our UI to return complete results.
Authentication
Connected account requiredTags
Lookup a customer's segmentsCUSTOMER_IO_GET_PERSON_SEGMENTSReturns a list of segments that a customer profile belongs to.Connection
Returns a list of segments that a customer profile belongs to.
Authentication
Connected account requiredTags
Lookup a customer's subscription preferencesCUSTOMER_IO_GET_PERSON_SUBSCRIPTION_PREFERENCESReturns a list of subscription preferences for a person, including the custom header of the subscription preferences page, topic names, and topic descriptions. Returns translated data when you send a language in the query.Connection
Returns a list of subscription preferences for a person, including the custom header of the subscription preferences page, topic names, and topic descriptions. Returns translated data when you send a language in the query.
Authentication
Connected account requiredTags
Get a segmentCUSTOMER_IO_GET_SEGMENTReturn information about a segment.Connection
Return information about a segment.
Authentication
Connected account requiredTags
Get a segment customer countCUSTOMER_IO_GET_SEGMENT_COUNTReturns the membership count for a segment.Connection
Returns the membership count for a segment.
Authentication
Connected account requiredTags
Get a segment's dependenciesCUSTOMER_IO_GET_SEGMENT_DEPENDENCIESUse this endpoint to find out which campaigns and newsletters use a segment.Connection
Use this endpoint to find out which campaigns and newsletters use a segment.
Authentication
Connected account requiredTags
List customers in a segmentCUSTOMER_IO_GET_SEGMENT_MEMBERSHIPReturns customers in a segment. This endpoint returns an array of `identifiers`; each object in the array represents a person and contains the identifier values allowed in your workspace. In general, we recommend that you use `identifiers` rather than `ids` to find people, because it provides more information. **If your workspace does not use email as a unique identifier** for people, `identifiers` does not contain `email` values. Go to your [Workspace Settings](/accounts/workspaces#migrate-workspace) to find out which identifiers your workspace supports. The `ids` array only lists ID values for people in a segment; if your workspace uses both `email` and `id` as identifiers, it's possible that a member of your segment does not have an `id` value, resulting in an empty string in the `ids` array.Connection
Returns customers in a segment. This endpoint returns an array of `identifiers`; each object in the array represents a person and contains the identifier values allowed in your workspace. In general, we recommend that you use `identifiers` rather than `ids` to find people, because it provides more information. **If your workspace does not use email as a unique identifier** for people, `identifiers` does not contain `email` values. Go to your [Workspace Settings](/accounts/workspaces#migrate-workspace) to find out which identifiers your workspace supports. The `ids` array only lists ID values for people in a segment; if your workspace uses both `email` and `id` as identifiers, it's possible that a member of your segment does not have an `id` value, resulting in an empty string in the `ids` array.
Authentication
Connected account requiredTags
Get a senderCUSTOMER_IO_GET_SENDERReturns information about a specific sender.Connection
Returns information about a specific sender.
Authentication
Connected account requiredTags
Get sender usage dataCUSTOMER_IO_GET_SENDER_USAGEReturns lists of the campaigns and newsletters that use a sender.Connection
Returns lists of the campaigns and newsletters that use a sender.
Authentication
Connected account requiredTags
Generate a subscription center tokenCUSTOMER_IO_GET_SUBSCRIPTION_CENTER_TOKENGenerates a signed token and URL for a person's standalone subscription center page. The token is valid for 24 hours. Use the returned `url` to link people to a hosted subscription center page where they can manage their subscription preferences outside of a message. This is useful when you want to provide a direct link to the subscription center—for example, in your app's account settings or in a custom email. The `customer_id` path parameter is the person's identifier (e.g. an email address or customer ID) as it appears in Customer.io. The identifier must match an existing person in your workspace.Connection
Generates a signed token and URL for a person's standalone subscription center page. The token is valid for 24 hours. Use the returned `url` to link people to a hosted subscription center page where they can manage their subscription preferences outside of a message. This is useful when you want to provide a direct link to the subscription center—for example, in your app's account settings or in a custom email. The `customer_id` path parameter is the person's identifier (e.g. an email address or customer ID) as it appears in Customer.io. The identifier must match an existing person in your workspace.
Authentication
Connected account requiredTags
Look up an ESP-suppressed addressCUSTOMER_IO_GET_SUPPRESSIONLook up an email address to learn if, and why, it was suppressed by the email service provider (ESP).Connection
Look up an email address to learn if, and why, it was suppressed by the email service provider (ESP).
Authentication
Connected account requiredTags
Get ESP-suppressed emails by typeCUSTOMER_IO_GET_SUPPRESSION_BY_TYPEFind addresses suppressed by the Email Service Provider (ESP) for a particular reason—bounces, blocks, spam reports, or invalid email addresses. You can get up to 1000 addresses per request. Use the `offset` parameter to get addresses beyond the first 1000. If you have multiple sending domains, we recommend querying for each domain separately, as an email address may be suppressed on multiple domains. **Note**: If you have a large number of suppressions, consider using the [Get ESP-suppressed emails by domain](/integrations/api/app/#tag/esp-suppression/getDomainSuppressionsByType) endpoint. It's more performant for large datasets.Connection
Find addresses suppressed by the Email Service Provider (ESP) for a particular reason—bounces, blocks, spam reports, or invalid email addresses. You can get up to 1000 addresses per request. Use the `offset` parameter to get addresses beyond the first 1000. If you have multiple sending domains, we recommend querying for each domain separately, as an email address may be suppressed on multiple domains. **Note**: If you have a large number of suppressions, consider using the [Get ESP-suppressed emails by domain](/integrations/api/app/#tag/esp-suppression/getDomainSuppressionsByType) endpoint. It's more performant for large datasets.
Authentication
Connected account requiredTags
List subscription topicsCUSTOMER_IO_GET_TOPICSReturns a list of subscription topics in your workspace. If there are no topics, it returns an empty array.Connection
Returns a list of subscription topics in your workspace. If there are no topics, it returns an empty array.
Authentication
Connected account requiredTags
Get a transactional messageCUSTOMER_IO_GET_TRANSACTIONALReturns information about an individual transactional message.Connection
Returns information about an individual transactional message.
Authentication
Connected account requiredTags
Get a translation of a transactional messageCUSTOMER_IO_GET_TRANSACTIONAL_VARIANTReturns information about a translation of an individual transactional message, including the message content.Connection
Returns information about a translation of an individual transactional message, including the message content.
Authentication
Connected account requiredTags
Get click metrics for links in newsletter variantsCUSTOMER_IO_GET_VARIANT_LINKSReturns link click metrics for an individual newsletter variant—an individual language in a multi-language newsletter or a message in an A/B test. Unless you specify otherwise, the response contains data for the maximum period by days (45 days). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.Connection
Returns link click metrics for an individual newsletter variant—an individual language in a multi-language newsletter or a message in an A/B test. Unless you specify otherwise, the response contains data for the maximum period by days (45 days). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.
Authentication
Connected account requiredTags
Get metrics for a test or translation variant of a newsletterCUSTOMER_IO_GET_VARIANT_METRICSReturns a metrics for an individual newsletter variant—either an individual language in a multi-language newsletter or a message in an A/B test. This endpoint returns metrics both in total and in `steps` (days, weeks, etc) over a `period` of time. Stepped `series` metrics are arranged from oldest to newest (i.e. the 0-index for any result is the oldest period/step). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.Connection
Returns a metrics for an individual newsletter variant—either an individual language in a multi-language newsletter or a message in an A/B test. This endpoint returns metrics both in total and in `steps` (days, weeks, etc) over a `period` of time. Stepped `series` metrics are arranged from oldest to newest (i.e. the 0-index for any result is the oldest period/step). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.
Authentication
Connected account requiredTags
Get a reporting webhookCUSTOMER_IO_GET_WEBHOOKReturns information about a specific reporting webhook.Connection
Returns information about a specific reporting webhook.
Authentication
Connected account requiredTags
Import items in bulkCUSTOMER_IO_IMPORTThis endpoint lets you upload a CSV file containing people, events, objects, or relationships. It provides a handy way of adding and updating them in bulk. Uploading people, objects, or relationships is like performing an [`identify` call](/api/track/#operation/entity) for each row in your CSV; uploading events is like performing a [`track` call](/api/track/#operation/track). You'll need to provide us the public URL of your CSV as a part of this operation. We recommend that you host your CSVs from short-lived URLs. Ideally, your URLs will expire 2 hours after you initiate an import so that your customers' information doesn't remain publicly available after you've uploaded it to us. Check out the CSV requirements based on what you're importing: [people](/journeys/people/uploading-people/#csv-requirements), [events](/journeys/people/uploading-people/#event-csv-requirements), and [objects or relationships](/journeys/objects-data/objects/import-objects/#csv-requirements). This endpoint performs some basic validation on the request and then queues the import for processing. The import happens in multiple stages after your request, and may even fail. You'll need to [lookup the status of the import](#getImport) to check on its progress. Records in your CSV might result in errors or warnings during the import. We make the errors and warnings available in CSV files that you can download via our export endpoints. [Lookup your import](#getImport) to get download URLs for error and warning reports.Connection
This endpoint lets you upload a CSV file containing people, events, objects, or relationships. It provides a handy way of adding and updating them in bulk. Uploading people, objects, or relationships is like performing an [`identify` call](/api/track/#operation/entity) for each row in your CSV; uploading events is like performing a [`track` call](/api/track/#operation/track). You'll need to provide us the public URL of your CSV as a part of this operation. We recommend that you host your CSVs from short-lived URLs. Ideally, your URLs will expire 2 hours after you initiate an import so that your customers' information doesn't remain publicly available after you've uploaded it to us. Check out the CSV requirements based on what you're importing: [people](/journeys/people/uploading-people/#csv-requirements), [events](/journeys/people/uploading-people/#event-csv-requirements), and [objects or relationships](/journeys/objects-data/objects/import-objects/#csv-requirements). This endpoint performs some basic validation on the request and then queues the import for processing. The import happens in multiple stages after your request, and may even fail. You'll need to [lookup the status of the import](#getImport) to check on its progress. Records in your CSV might result in errors or warnings during the import. We make the errors and warnings available in CSV files that you can download via our export endpoints. [Lookup your import](#getImport) to get download URLs for error and warning reports.
Authentication
Connected account requiredTags
List activitiesCUSTOMER_IO_LIST_ACTIVITIESThis endpoint returns a list of "activities" for people, similar to your workspace's Activity Logs. This endpoint is guaranteed to return activity history within the past 30 days. It _might_ return data older than 30 days in some circumstances, but activites older than 30 days are not guaranteed.Connection
This endpoint returns a list of "activities" for people, similar to your workspace's Activity Logs. This endpoint is guaranteed to return activity history within the past 30 days. It _might_ return data older than 30 days in some circumstances, but activites older than 30 days are not guaranteed.
Authentication
Connected account requiredTags
List foldersCUSTOMER_IO_LIST_ASSET_FOLDERSReturns a paginated list of asset folders. Supports filtering by parent folder and choosing between direct children or the entire folder subtree.Connection
Returns a paginated list of asset folders. Supports filtering by parent folder and choosing between direct children or the entire folder subtree.
Authentication
Connected account requiredTags
List file assetsCUSTOMER_IO_LIST_ASSETSReturns a paginated list of file assets. Supports filtering by parent folder and choosing between direct children or the entire folder subtree.Connection
Returns a paginated list of file assets. Supports filtering by parent folder and choosing between direct children or the entire folder subtree.
Authentication
Connected account requiredTags
Get broadcast triggersCUSTOMER_IO_LIST_BROADCAST_TRIGGERSReturns a list of the `triggers` for a broadcast.Connection
Returns a list of the `triggers` for a broadcast.
Authentication
Connected account requiredTags
List broadcastsCUSTOMER_IO_LIST_BROADCASTSReturns a list of your API-triggered broadcasts and associated metadata.Connection
Returns a list of your API-triggered broadcasts and associated metadata.
Authentication
Connected account requiredTags
List campaign actionsCUSTOMER_IO_LIST_CAMPAIGN_ACTIONSReturns the operations in a campaign workflow. Each object in the response represents an action or 'tile' in the campaign builder. This endpoint returns up to 10 `actions` at a time. If there is another page of results, the response will include a `next` string. Pass this string as the `start` parameter to get the next page of results.Connection
Returns the operations in a campaign workflow. Each object in the response represents an action or 'tile' in the campaign builder. This endpoint returns up to 10 `actions` at a time. If there is another page of results, the response will include a `next` string. Pass this string as the `start` parameter to get the next page of results.
Authentication
Connected account requiredTags
List campaignsCUSTOMER_IO_LIST_CAMPAIGNSReturns a list of your campaigns and associated metadata.Connection
Returns a list of your campaigns and associated metadata.
Authentication
Connected account requiredTags
List componentsCUSTOMER_IO_LIST_COMPONENTSReturns a paginated list of components and any folders in the result set.Connection
Returns a paginated list of components and any folders in the result set.
Authentication
Connected account requiredTags
List email translationsCUSTOMER_IO_LIST_EMAIL_TRANSLATIONSReturns all translations for an email. Each translation contains the email's content, envelope, and transformers for a specific language.Connection
Returns all translations for an email. Each translation contains the email's content, envelope, and transformers for a specific language.
Authentication
Connected account requiredTags
List emailsCUSTOMER_IO_LIST_EMAILSReturns a paginated list of emails and a separate array of folders that the emails belong to.Connection
Returns a paginated list of emails and a separate array of folders that the emails belong to.
Authentication
Connected account requiredTags
List exportsCUSTOMER_IO_LIST_EXPORTSReturn a list of your exports. Exports are point-in-time people or campaign metrics.Connection
Return a list of your exports. Exports are point-in-time people or campaign metrics.
Authentication
Connected account requiredTags
List foldersCUSTOMER_IO_LIST_FOLDERSReturns a paginated list of folders. This does not include files like emails, components, etc.Connection
Returns a paginated list of folders. This does not include files like emails, components, etc.
Authentication
Connected account requiredTags
List messagesCUSTOMER_IO_LIST_MESSAGESReturn a list of deliveries, including metrics for each delivery, for messages in your workspace. The request body contains filters determining the deliveries you want to return information about. Use the `start_ts` and `end_ts` parameters to find messages within a time range. We limit your requests to 6 months. If your request doesn't include `start_ts` and `end_ts` parameters, we'll return the most recent 6 months of deliveries. If `start_ts` is greater than 6-months before `end_ts`, we only send back 6 months of data. If only `end_ts` is specified, we return 6 months of data before this timestamp. If only `start_ts` is specified, we then set the `end_ts` to the current time and deliver 6 months of data prior to this timestamp. Timestamps reflect when deliveries were created in our system, not when they were actually sent to recipients. There may be a delay between creation and sending.Connection
Return a list of deliveries, including metrics for each delivery, for messages in your workspace. The request body contains filters determining the deliveries you want to return information about. Use the `start_ts` and `end_ts` parameters to find messages within a time range. We limit your requests to 6 months. If your request doesn't include `start_ts` and `end_ts` parameters, we'll return the most recent 6 months of deliveries. If `start_ts` is greater than 6-months before `end_ts`, we only send back 6 months of data. If only `end_ts` is specified, we return 6 months of data before this timestamp. If only `start_ts` is specified, we then set the `end_ts` to the current time and deliver 6 months of data prior to this timestamp. Timestamps reflect when deliveries were created in our system, not when they were actually sent to recipients. There may be a delay between creation and sending.
Authentication
Connected account requiredTags
List newsletter variantsCUSTOMER_IO_LIST_NEWSLETTER_VARIANTSReturns a newsletter's content variants—these are either different languages in a multi-language newsletter or A/B tests.Connection
Returns a newsletter's content variants—these are either different languages in a multi-language newsletter or A/B tests.
Authentication
Connected account requiredTags
List newslettersCUSTOMER_IO_LIST_NEWSLETTERSReturns a list of your newsletters and associated metadata.Connection
Returns a list of your newsletters and associated metadata.
Authentication
Connected account requiredTags
List segmentsCUSTOMER_IO_LIST_SEGMENTSRetrieve a list of all of your segments.Connection
Retrieve a list of all of your segments.
Authentication
Connected account requiredTags
List sender identitiesCUSTOMER_IO_LIST_SENDERSReturns a list of senders in your workspace. Senders are who your messages are "from".Connection
Returns a list of senders in your workspace. Senders are who your messages are "from".
Authentication
Connected account requiredTags
List snippetsCUSTOMER_IO_LIST_SNIPPETSReturns a list of snippets in your workspace. Snippets are pieces of reusable content, like a common footer for your emails.Connection
Returns a list of snippets in your workspace. Snippets are pieces of reusable content, like a common footer for your emails.
Authentication
Connected account requiredTags
List transactional messagesCUSTOMER_IO_LIST_TRANSACTIONALReturns a list of your transactional messages—the transactional IDs that you use to trigger an individual transactional delivery. This endpoint does not return information about deliveries (instances of a message sent to a person) themselves.Connection
Returns a list of your transactional messages—the transactional IDs that you use to trigger an individual transactional delivery. This endpoint does not return information about deliveries (instances of a message sent to a person) themselves.
Authentication
Connected account requiredTags
List all variants of a transactional messageCUSTOMER_IO_LIST_TRANSACTIONAL_VARIANTSReturns the content variants of a transactional message, where each variant represents a different language.Connection
Returns the content variants of a transactional message, where each variant represents a different language.
Authentication
Connected account requiredTags
List reporting webhooksCUSTOMER_IO_LIST_WEBHOOKSReturn a list of all of your reporting webhooksConnection
Return a list of all of your reporting webhooks
Authentication
Connected account requiredTags
List workspacesCUSTOMER_IO_LIST_WORKSPACESReturns a list of workspaces in your account.Connection
Returns a list of workspaces in your account.
Authentication
Connected account requiredTags
Suppress an email at the ESPCUSTOMER_IO_POST_SUPPRESSIONSuppress an email address at the email service provider (ESP). Addresses suppressed this way are only suppressed through the ESP; these adresses are _not_ suppressed in Customer.io, so the person can remain in your workspace (though emails to the address would be blocked at the ESP).Connection
Suppress an email address at the email service provider (ESP). Addresses suppressed this way are only suppressed through the ESP; these adresses are _not_ suppressed in Customer.io, so the person can remain in your workspace (though emails to the address would be blocked at the ESP).
Authentication
Connected account requiredTags
Schedule a newsletterCUSTOMER_IO_SCHEDULE_NEWSLETTERSchedule a newsletter to send at a specific time. The newsletter must be in a draft state. If the newsletter has already been sent, you'll get a `400` error. If the newsletter is already scheduled, this endpoint updates the scheduled time. The recipients for the newsletter are defined when you create/update the newsletter. If you're not sure who will receive the newsletter, you can use the [List newsletters](/integrations/api/app/#tag/newsletters/listNewsletters) endpoint to get a list of newsletters and their recipients.Connection
Schedule a newsletter to send at a specific time. The newsletter must be in a draft state. If the newsletter has already been sent, you'll get a `400` error. If the newsletter is already scheduled, this endpoint updates the scheduled time. The recipients for the newsletter are defined when you create/update the newsletter. If you're not sure who will receive the newsletter, you can use the [List newsletters](/integrations/api/app/#tag/newsletters/listNewsletters) endpoint to get a list of newsletters and their recipients.
Authentication
Connected account requiredTags
Send a transactional emailCUSTOMER_IO_SEND_EMAILSend a transactional email. While not strictly required, we recommend that you include a `transactional_message_id` in your request. If you don't, Customer.io attributes metrics to `"transactional_message_id": 1`, so multiple messages can roll up under the same ID. If this is the first time you send a message with the API, you can include the `auto_create` parameter along with a `transactional_message_id` string to create a record for you. You can also include a `body`, `subject`, and `from` values to override the message template. Or, if you create your message entirely through the API, you *must* include these values because your `transactional_message_id` won't have any content. See [Examples and API parameters](/journeys/send/transactional/email/#auto-create-transactional-message-records) for more details.Connection
Send a transactional email. While not strictly required, we recommend that you include a `transactional_message_id` in your request. If you don't, Customer.io attributes metrics to `"transactional_message_id": 1`, so multiple messages can roll up under the same ID. If this is the first time you send a message with the API, you can include the `auto_create` parameter along with a `transactional_message_id` string to create a record for you. You can also include a `body`, `subject`, and `from` values to override the message template. Or, if you create your message entirely through the API, you *must* include these values because your `transactional_message_id` won't have any content. See [Examples and API parameters](/journeys/send/transactional/email/#auto-create-transactional-message-records) for more details.
Authentication
Connected account requiredTags
Send a transactional in-app messageCUSTOMER_IO_SEND_IN_APPSend a transactional in-app message. In-app messages render in your application through the Customer.io SDK to the devices associated with the person you target by `identifiers`. You send a message using a `transactional_message_id` for an in-app message template that you've set up in the user interface. The `transactional_message_id` can be either the numerical ID for the template or the *Trigger Name* that you assigned the template. You can find your `transactional_message_id` from the code sample in the **Overview** tab for your transactional message in the user interface, or you can look up a list of your transactional messages through the [App API](#tag/Transactional). **Note**: Your workspace must have in-app messaging enabled. Requests sent to a workspace without the in-app capability return `403`.Connection
Send a transactional in-app message. In-app messages render in your application through the Customer.io SDK to the devices associated with the person you target by `identifiers`. You send a message using a `transactional_message_id` for an in-app message template that you've set up in the user interface. The `transactional_message_id` can be either the numerical ID for the template or the *Trigger Name* that you assigned the template. You can find your `transactional_message_id` from the code sample in the **Overview** tab for your transactional message in the user interface, or you can look up a list of your transactional messages through the [App API](#tag/Transactional). **Note**: Your workspace must have in-app messaging enabled. Requests sent to a workspace without the in-app capability return `403`.
Authentication
Connected account requiredTags
Send a transactional inbox messageCUSTOMER_IO_SEND_INBOX_MESSAGESend a transactional inbox message. Inbox messages deliver raw JSON payloads to your application through our JavaScript SDK, allowing you to build custom notification centers, message feeds, and other UI components. You send a message using a `transactional_message_id` for an inbox message template created in the user interface. The `transactional_message_id` can be either the numerical ID for the template or the *Trigger Name* that you assigned the template. You can find your `transactional_message_id` from the code sample in the **Overview** tab for your transactional message in the user interface, or you can look up a list of your transactional messages through the [App API](#tag/Transactional). **Note**: Inbox messages are currently available for web platforms only and require the Customer.io In-App Plugin to be installed.Connection
Send a transactional inbox message. Inbox messages deliver raw JSON payloads to your application through our JavaScript SDK, allowing you to build custom notification centers, message feeds, and other UI components. You send a message using a `transactional_message_id` for an inbox message template created in the user interface. The `transactional_message_id` can be either the numerical ID for the template or the *Trigger Name* that you assigned the template. You can find your `transactional_message_id` from the code sample in the **Overview** tab for your transactional message in the user interface, or you can look up a list of your transactional messages through the [App API](#tag/Transactional). **Note**: Inbox messages are currently available for web platforms only and require the Customer.io In-App Plugin to be installed.
Authentication
Connected account requiredTags
Send a newsletterCUSTOMER_IO_SEND_NEWSLETTERSend a newsletter immediately. The newsletter must be in a draft state. If the newsletter has already been sent, you'll get a `400` error. The recipients for the newsletter are defined when you create/update the newsletter. If you're not sure who will receive the newsletter, you can use the [List newsletters](/integrations/api/app/#tag/newsletters/listNewsletters) endpoint to get a list of newsletters and their recipients. To reschedule a newsletter, use the [Schedule a newsletter](#tag/send-messages/scheduleNewsletter) endpoint instead.Connection
Send a newsletter immediately. The newsletter must be in a draft state. If the newsletter has already been sent, you'll get a `400` error. The recipients for the newsletter are defined when you create/update the newsletter. If you're not sure who will receive the newsletter, you can use the [List newsletters](/integrations/api/app/#tag/newsletters/listNewsletters) endpoint to get a list of newsletters and their recipients. To reschedule a newsletter, use the [Schedule a newsletter](#tag/send-messages/scheduleNewsletter) endpoint instead.
Authentication
Connected account requiredTags
Send a transactional pushCUSTOMER_IO_SEND_PUSHSend a transactional push. You send a message using a `transactional_message_id` for a transactional push message template composed in the user interface. You can optionally override any of the template values at send time. The `transactional_message_id` can be either the numerical ID for the template or the *Trigger Name* that you assigned the template. You can find your `transactional_message_id` from the code sample in the **Overview** tab for your transactional message in the user interface, or you can look up a list of your transactional messages through the [App API](#tag/Transactional).Connection
Send a transactional push. You send a message using a `transactional_message_id` for a transactional push message template composed in the user interface. You can optionally override any of the template values at send time. The `transactional_message_id` can be either the numerical ID for the template or the *Trigger Name* that you assigned the template. You can find your `transactional_message_id` from the code sample in the **Overview** tab for your transactional message in the user interface, or you can look up a list of your transactional messages through the [App API](#tag/Transactional).
Authentication
Connected account requiredTags
Send a transactional SMSCUSTOMER_IO_SEND_SMSSend a transactional SMS message. To send a message, you'll need to provide a `transactional_message_id`. This is either the numerical ID of your transactional message template or the *Trigger Name* that you assigned the template. You can find your `transactional_message_id` from the code sample in the **Overview** tab for your transactional message in the user interface, or you can look up a list of your transactional messages through the [App API](#tag/Transactional).Connection
Send a transactional SMS message. To send a message, you'll need to provide a `transactional_message_id`. This is either the numerical ID of your transactional message template or the *Trigger Name* that you assigned the template. You can find your `transactional_message_id` from the code sample in the **Overview** tab for your transactional message in the user interface, or you can look up a list of your transactional messages through the [App API](#tag/Transactional).
Authentication
Connected account requiredTags
Get transactional message link metricsCUSTOMER_IO_TRANSACTIONAL_LINKSReturns metrics for clicked links from a transactional message, both in total and in `series` periods (days, weeks, etc). `series` metrics are ordered oldest to newest (i.e. the 0-index for any result is the oldest step/period). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.Connection
Returns metrics for clicked links from a transactional message, both in total and in `series` periods (days, weeks, etc). `series` metrics are ordered oldest to newest (i.e. the 0-index for any result is the oldest step/period). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.
Authentication
Connected account requiredTags
Get transactional message deliveriesCUSTOMER_IO_TRANSACTIONAL_MESSAGESReturns information about the deliveries (instances of messages sent to individual people) from a transactional message. Provide query parameters to refine the metrics you want to return. Use the `start_ts` and `end_ts` to find messages within a time range. If your request doesn't include `start_ts` and `end_ts` parameters, we'll return the most recent 6 months of messages. If your `start_ts` and `end_ts` range is more than 12 months, we'll return 12 months of data from the most recent timestamp in your request. Timestamps reflect when deliveries were created in our system, not when they were actually sent to recipients. There may be a delay between creation and sending.Connection
Returns information about the deliveries (instances of messages sent to individual people) from a transactional message. Provide query parameters to refine the metrics you want to return. Use the `start_ts` and `end_ts` to find messages within a time range. If your request doesn't include `start_ts` and `end_ts` parameters, we'll return the most recent 6 months of messages. If your `start_ts` and `end_ts` range is more than 12 months, we'll return 12 months of data from the most recent timestamp in your request. Timestamps reflect when deliveries were created in our system, not when they were actually sent to recipients. There may be a delay between creation and sending.
Authentication
Connected account requiredTags
Get transactional message metricsCUSTOMER_IO_TRANSACTIONAL_METRICSReturns a list of metrics for a transactional message in `steps` (days, weeks, etc). We return metrics from oldest to newest (i.e. the 0-index for any result is the oldest step/period). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.Connection
Returns a list of metrics for a transactional message in `steps` (days, weeks, etc). We return metrics from oldest to newest (i.e. the 0-index for any result is the oldest step/period). You cannot request fewer than 2 steps of any period (2 hours, 2 days, 2 weeks, or 2 months). For instance, `?period=days&steps=1` means two days - the 48 hours before the API request was made. `?period=days&steps=0` returns the same as the maximum of the period - `?period=days&steps=45`. See the `steps` parameter below for the maximum count of each period.
Authentication
Connected account requiredTags
Send an API-triggered broadcastCUSTOMER_IO_TRIGGER_BROADCASTTrigger a broadcast (not a newsletter) and optionally provide data to populate liquid placeholders in the message. The shape of the request depends on how you define your audience: default (the recipients set in the UI), custom filter conditions, a list of emails, a list of customer IDs, a map of users, or a data file. **You can only trigger broadcasts to send to people you've already added to your workspace.** A broadcast cannot add or identify new people. If you reference people who don't exist in your broadcast audience, the broadcast will fail by default. You can override this behavior by setting the `email_ignore_missing` and/or `id_ignore_missing` flags to `true`. The broadcast will skip over any people who don't exist in your workspace and send to the remaining recipients. You can reference properties in the `data` object in your broadcast using liquid—`{{trigger.<property_in_data_obj>}}`. If your broadcast produces a `422` error, you can [get more information about the errors](#tag/broadcasts/broadcastErrors) to see what went wrong. **This endpoint is rate-limited to one request every 10 seconds.** After exceeding this, you'll receive a status of `429`. Learn more about [API-triggered broadcast limits](/integrations/api/app/#tag/send-messages) above. Broadcasts are optimized to send messages to a large audience and not for one-to-one interactions. Use our [transactional API](#tag/send-messages/sendEmail) or [event-triggered campaigns](/journeys/send/campaigns/triggers/#event-trigger) to respond to your audience on an individual, one-to-one basis.Connection
Trigger a broadcast (not a newsletter) and optionally provide data to populate liquid placeholders in the message. The shape of the request depends on how you define your audience: default (the recipients set in the UI), custom filter conditions, a list of emails, a list of customer IDs, a map of users, or a data file. **You can only trigger broadcasts to send to people you've already added to your workspace.** A broadcast cannot add or identify new people. If you reference people who don't exist in your broadcast audience, the broadcast will fail by default. You can override this behavior by setting the `email_ignore_missing` and/or `id_ignore_missing` flags to `true`. The broadcast will skip over any people who don't exist in your workspace and send to the remaining recipients. You can reference properties in the `data` object in your broadcast using liquid—`{{trigger.<property_in_data_obj>}}`. If your broadcast produces a `422` error, you can [get more information about the errors](#tag/broadcasts/broadcastErrors) to see what went wrong. **This endpoint is rate-limited to one request every 10 seconds.** After exceeding this, you'll receive a status of `429`. Learn more about [API-triggered broadcast limits](/integrations/api/app/#tag/send-messages) above. Broadcasts are optimized to send messages to a large audience and not for one-to-one interactions. Use our [transactional API](#tag/send-messages/sendEmail) or [event-triggered campaigns](/journeys/send/campaigns/triggers/#event-trigger) to respond to your audience on an individual, one-to-one basis.
Authentication
Connected account requiredTags
Update a file assetCUSTOMER_IO_UPDATE_ASSETUpdates the name and/or parent folder of a file asset. The file itself (path, size) cannot be changed. At least one of `name` or `parent_folder_id` must be provided.Connection
Updates the name and/or parent folder of a file asset. The file itself (path, size) cannot be changed. At least one of `name` or `parent_folder_id` must be provided.
Authentication
Connected account requiredTags
Update a folderCUSTOMER_IO_UPDATE_ASSET_FOLDERUpdates the name and/or parent folder of an existing folder. At least one of `name` or `parent_folder_id` must be provided. Moving a folder into itself or one of its descendants is not allowed (cycle detection).Connection
Updates the name and/or parent folder of an existing folder. At least one of `name` or `parent_folder_id` must be provided. Moving a folder into itself or one of its descendants is not allowed (cycle detection).
Authentication
Connected account requiredTags
Add or update attributesCUSTOMER_IO_UPDATE_ATTRIBUTE_METADATAAttributes are customer data like their name and email. Use this endpoint to add new attributes or update existing attributes in your workspace. To add attributes to customers, use our Pipelines or Track APIs. **NOTE:** If you add new attributes, they will not appear in your [Data Index](/journeys/people/find/using-data-index/) until you've added it to a customer's profile. Add descriptions for attributes [so our AI tools can better understand your data](/ai/cio-with-llms/). For instance, this influences how our segment builder generates conditions with AI. If you're on a Premium plan, you can also specify [whether an attribute is sensitive or not](/accounts/settings/team/intro-account-access/#hide-sensitive-attributes). Then Admins and Workspace Admins can decide which teammates to hide sensitive data from.Connection
Attributes are customer data like their name and email. Use this endpoint to add new attributes or update existing attributes in your workspace. To add attributes to customers, use our Pipelines or Track APIs. **NOTE:** If you add new attributes, they will not appear in your [Data Index](/journeys/people/find/using-data-index/) until you've added it to a customer's profile. Add descriptions for attributes [so our AI tools can better understand your data](/ai/cio-with-llms/). For instance, this influences how our segment builder generates conditions with AI. If you're on a Premium plan, you can also specify [whether an attribute is sensitive or not](/accounts/settings/team/intro-account-access/#hide-sensitive-attributes). Then Admins and Workspace Admins can decide which teammates to hide sensitive data from.
Authentication
Connected account requiredTags
Update a broadcast actionCUSTOMER_IO_UPDATE_BROADCAST_ACTIONUpdate the contents of a broadcast action, including the body of messages or HTTP requests. **NOTE** You cannot manage content made with Design Studio with this endpoint. Use the [Design Studio APIs](#tag/design-studio) instead.Connection
Update the contents of a broadcast action, including the body of messages or HTTP requests. **NOTE** You cannot manage content made with Design Studio with this endpoint. Use the [Design Studio APIs](#tag/design-studio) instead.
Authentication
Connected account requiredTags
Update a translation of a broadcast messageCUSTOMER_IO_UPDATE_BROADCAST_ACTION_LANGUAGEUpdate a translation of a specific broadcast action, including the body of messages or HTTP requests. **NOTE** You cannot manage content made with Design Studio with this endpoint. Use the [Design Studio APIs](#tag/design-studio) instead.Connection
Update a translation of a specific broadcast action, including the body of messages or HTTP requests. **NOTE** You cannot manage content made with Design Studio with this endpoint. Use the [Design Studio APIs](#tag/design-studio) instead.
Authentication
Connected account requiredTags
Update a campaign actionCUSTOMER_IO_UPDATE_CAMPAIGN_ACTIONUpdate the contents of a campaign action, including the body of messages and HTTP requests. **NOTE** You cannot manage content made with Design Studio with this endpoint. Use the [Design Studio APIs](#tag/design-studio) instead.Connection
Update the contents of a campaign action, including the body of messages and HTTP requests. **NOTE** You cannot manage content made with Design Studio with this endpoint. Use the [Design Studio APIs](#tag/design-studio) instead.
Authentication
Connected account requiredTags
Update a translation of a campaign messageCUSTOMER_IO_UPDATE_CAMPAIGN_ACTION_TRANSLATIONUpdate the contents of a language variant of a campaign action, including the body of the messages and HTTP requests. **NOTE**: You cannot manage content made with Design Studio with this endpoint. Use the [Design Studio APIs](#tag/design-studio) instead.Connection
Update the contents of a language variant of a campaign action, including the body of the messages and HTTP requests. **NOTE**: You cannot manage content made with Design Studio with this endpoint. Use the [Design Studio APIs](#tag/design-studio) instead.
Authentication
Connected account requiredTags
Update a collectionCUSTOMER_IO_UPDATE_COLLECTIONUpdate the `name` or replace the contents of a collection. Updating the `data` or `url` for your collection fully replaces the contents of the collection. **Note**: * If you reference your collection by name in active campaign messages, changing the name of the collection will cause references to the previous name to return an empty data set. * A collection cannot be more than 10 MB in size. No individual row in the collection can be more than 10 KB.Connection
Update the `name` or replace the contents of a collection. Updating the `data` or `url` for your collection fully replaces the contents of the collection. **Note**: * If you reference your collection by name in active campaign messages, changing the name of the collection will cause references to the previous name to return an empty data set. * A collection cannot be more than 10 MB in size. No individual row in the collection can be more than 10 KB.
Authentication
Connected account requiredTags
Update the contents of a collectionCUSTOMER_IO_UPDATE_COLLECTION_CONTENTSReplace the contents of a collection (the `data` from when you created or updated a collection). The request is a free-form object containing the keys you want to reference from the collection and the corresponding values. This request replaces the current contents of the collection entirely. If you don't want to update the contents directly—you want to change the `name` or data `url` for your collection, use the [update a collection](#operation/updateCollection) endpoint. **Note**: A collection cannot be more than 10 MB in size. No individual row in the collection can be more than 10 KB.Connection
Replace the contents of a collection (the `data` from when you created or updated a collection). The request is a free-form object containing the keys you want to reference from the collection and the corresponding values. This request replaces the current contents of the collection entirely. If you don't want to update the contents directly—you want to change the `name` or data `url` for your collection, use the [update a collection](#operation/updateCollection) endpoint. **Note**: A collection cannot be more than 10 MB in size. No individual row in the collection can be more than 10 KB.
Authentication
Connected account requiredTags
Update a componentCUSTOMER_IO_UPDATE_COMPONENTUpdate part of a component: its name, tag, folder, or content.Connection
Update part of a component: its name, tag, folder, or content.
Authentication
Connected account requiredTags
Update an emailCUSTOMER_IO_UPDATE_EMAILUpdate part of an email: an email's name, template status, folder, content, envelope, or transformers. Note, this does not publish your email; if the email is connected to a workflow like a campaign, you still need to click publish to make the changes live.Connection
Update part of an email: an email's name, template status, folder, content, envelope, or transformers. Note, this does not publish your email; if the email is connected to a workflow like a campaign, you still need to click publish to make the changes live.
Authentication
Connected account requiredTags
Update an email translationCUSTOMER_IO_UPDATE_EMAIL_TRANSLATIONUpdate part of an email translation: the content, envelope, or transformers for a specific email translation. Note, this does not publish your email; if the email is connected to a workflow like a campaign, you still need to click publish to make the changes live.Connection
Update part of an email translation: the content, envelope, or transformers for a specific email translation. Note, this does not publish your email; if the email is connected to a workflow like a campaign, you still need to click publish to make the changes live.
Authentication
Connected account requiredTags
Add or update eventsCUSTOMER_IO_UPDATE_EVENT_METADATAEvents are actions your customers have performed. Use this endpoint to add new events or update existing events in your workspace. To associate events with customers, use our Pipelines or Track APIs. **NOTE:** If you add new events, they will not appear in your [Data Index](/journeys/people/find/using-data-index/) until you've associated it with a customer. Add descriptions for events [so our AI tools can better understand your data](/ai/cio-with-llms/). For instance, this influences how our segment builder generates conditions with AI.Connection
Events are actions your customers have performed. Use this endpoint to add new events or update existing events in your workspace. To associate events with customers, use our Pipelines or Track APIs. **NOTE:** If you add new events, they will not appear in your [Data Index](/journeys/people/find/using-data-index/) until you've associated it with a customer. Add descriptions for events [so our AI tools can better understand your data](/ai/cio-with-llms/). For instance, this influences how our segment builder generates conditions with AI.
Authentication
Connected account requiredTags
Update a folderCUSTOMER_IO_UPDATE_FOLDERUpdate part of a folder: the name and/or the folder it belongs to. If you move a folder, all files stay nested in the folder.Connection
Update part of a folder: the name and/or the folder it belongs to. If you move a folder, all files stay nested in the folder.
Authentication
Connected account requiredTags
Update a translation in a newsletter test groupCUSTOMER_IO_UPDATE_NEWSLETTER_TEST_TRANSLATIONUpdate the translation of a newsletter variant in an A/B test. You can retrieve a list of `test_group_ids` from [Get variants in a newsletter test group](/api/app/#operation/getNewsletterVariantTest). **NOTE**: You cannot manage content made with Design Studio with this endpoint. Use the [Design Studio APIs](#tag/design-studio) instead.Connection
Update the translation of a newsletter variant in an A/B test. You can retrieve a list of `test_group_ids` from [Get variants in a newsletter test group](/api/app/#operation/getNewsletterVariantTest). **NOTE**: You cannot manage content made with Design Studio with this endpoint. Use the [Design Studio APIs](#tag/design-studio) instead.
Authentication
Connected account requiredTags
Update a newsletter variantCUSTOMER_IO_UPDATE_NEWSLETTER_VARIANTUpdate the content of a newsletter: the default message, a test variant in an A/B test group, or a translation. For an email, you can also update the envelope: from address, subject line, etc. **NOTE**: You cannot manage content made with the drag-and-drop editor via API, and you cannot use this endpoint to update Design Studio emails. You can, however, [manage Design Studio content with other endpoints](#tag/design-studio).Connection
Update the content of a newsletter: the default message, a test variant in an A/B test group, or a translation. For an email, you can also update the envelope: from address, subject line, etc. **NOTE**: You cannot manage content made with the drag-and-drop editor via API, and you cannot use this endpoint to update Design Studio emails. You can, however, [manage Design Studio content with other endpoints](#tag/design-studio).
Authentication
Connected account requiredTags
Update a translation of a newsletterCUSTOMER_IO_UPDATE_NEWSLETTER_VARIANT_TRANSLATIONUpdate the translation of a newsletter variant. If your newsletter includes A/B tests, use [Update a translation in a newsletter test group](/api/app/#operation/updateNewsletterTestTranslation). **NOTE**: You cannot manage content made with Design Studio with this endpoint. Use the [Design Studio APIs](#tag/design-studio) instead.Connection
Update the translation of a newsletter variant. If your newsletter includes A/B tests, use [Update a translation in a newsletter test group](/api/app/#operation/updateNewsletterTestTranslation). **NOTE**: You cannot manage content made with Design Studio with this endpoint. Use the [Design Studio APIs](#tag/design-studio) instead.
Authentication
Connected account requiredTags
Update snippetsCUSTOMER_IO_UPDATE_SNIPPETSIn your payload, you'll pass a `name` and `value`. Snippet names are unique. If the snippet `name` does not exist, we'll create a new snippet. If the `name` exists, we'll update the existing snippet.Connection
In your payload, you'll pass a `name` and `value`. Snippet names are unique. If the snippet `name` does not exist, we'll create a new snippet. If the `name` exists, we'll update the existing snippet.
Authentication
Connected account requiredTags
Update a transactional messageCUSTOMER_IO_UPDATE_TRANSACTIONALUpdate the body of a transactional email. This fully overwrites your existing transactional message. We'll use your updated content for any future transactional requests (`/v1/send/email`), so make sure that you test your message before you update it. **NOTE**: You cannot manage content made with Design Studio with this endpoint. Use the [Design Studio APIs](#tag/design-studio) instead.Connection
Update the body of a transactional email. This fully overwrites your existing transactional message. We'll use your updated content for any future transactional requests (`/v1/send/email`), so make sure that you test your message before you update it. **NOTE**: You cannot manage content made with Design Studio with this endpoint. Use the [Design Studio APIs](#tag/design-studio) instead.
Authentication
Connected account requiredTags
Update a translation of a transactional messageCUSTOMER_IO_UPDATE_TRANSACTIONAL_VARIANTUpdate the body and other data of a specific language variant for a transactional message. This fully overwrites this specific translation of your existing transactional message. **NOTE**: You cannot manage content made with Design Studio with this endpoint. Use the [Design Studio APIs](#tag/design-studio) instead.Connection
Update the body and other data of a specific language variant for a transactional message. This fully overwrites this specific translation of your existing transactional message. **NOTE**: You cannot manage content made with Design Studio with this endpoint. Use the [Design Studio APIs](#tag/design-studio) instead.
Authentication
Connected account requiredTags
Update a webhook configurationCUSTOMER_IO_UPDATE_WEBHOOKUpdate the configuration of a reporting webhook. Turn events on or off, change the webhook URL, etc.Connection
Update the configuration of a reporting webhook. Turn events on or off, change the webhook URL, etc.
Authentication
Connected account requiredTags