Open Connector
All tools

Customer.io

Connect to Customer.io to manage campaigns, newsletters, broadcasts, segments, and people.

customer-iov1.0.0159 tools

Authentication

MethodKindStatusDetails
API Keyapi_keyavailable

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.

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 required

Tags

Collections
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.

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 required

Tags

Broadcasts
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.

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 required

Tags

Broadcasts
List broadcast actionsCUSTOMER_IO_BROADCAST_ACTIONSReturns the actions that occur as a part of a broadcast.

Returns the actions that occur as a part of a broadcast.

Authentication

Connected account required

Tags

Broadcasts
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.

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 required

Tags

Broadcasts
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.

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 required

Tags

Broadcasts
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.

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 required

Tags

Broadcasts
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.

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 required

Tags

Broadcasts
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).

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 required

Tags

Broadcasts
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.

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 required

Tags

Campaigns
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`

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 required

Tags

Campaigns
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.

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 required

Tags

Campaigns
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.

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 required

Tags

Campaigns
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`

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 required

Tags

Campaigns
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.

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 required

Tags

Assets
Create a folderCUSTOMER_IO_CREATE_ASSET_FOLDERCreates a new folder for organizing file assets. Folder names must be unique within the same parent folder.

Creates a new folder for organizing file assets. Folder names must be unique within the same parent folder.

Authentication

Connected account required

Tags

Assets
Create a componentCUSTOMER_IO_CREATE_COMPONENTCreates a custom component.

Creates a custom component.

Authentication

Connected account required

Tags

Design Studio
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.

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 required

Tags

Design Studio
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.

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 required

Tags

Design Studio
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).

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 required

Tags

Design Studio
Create a manual segmentCUSTOMER_IO_CREATE_MAN_SEGMENTCreate a manual segment with a name and a description. This request creates an empty segment.

Create a manual segment with a name and a description. This request creates an empty segment.

Authentication

Connected account required

Tags

Segments
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.

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 required

Tags

Newsletters
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.

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 required

Tags

Newsletter Variants
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.

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 required

Tags

Newsletter Variants
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.

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 required

Tags

Newsletter Variants
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.

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 required

Tags

Snippets
Create a reporting webhookCUSTOMER_IO_CREATE_WEBHOOKCreate a new webhook configuration.

Create a new webhook configuration.

Authentication

Connected account required

Tags

Reporting Webhooks
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.

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 required

Tags

Assets
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.

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 required

Tags

Assets
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.

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 required

Tags

Collections
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.

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 required

Tags

Design Studio
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.

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 required

Tags

Design Studio
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).

Delete a specific language translation from an email. This fails if the email is linked to a workflow (campaign, broadcast, etc).

Authentication

Connected account required

Tags

Design Studio
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.

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 required

Tags

Design Studio
Delete a segmentCUSTOMER_IO_DELETE_MAN_SEGMENTDelete a manual segment.

Delete a manual segment.

Authentication

Connected account required

Tags

Segments
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).

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 required

Tags

Newsletter Variants
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).

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 required

Tags

Newsletter Variants
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.

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 required

Tags

Newsletters
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.

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 required

Tags

Snippets
Un-suppress an ESP-suppressed addressCUSTOMER_IO_DELETE_SUPPRESSIONRemove an address from the ESP's suppression list.

Remove an address from the ESP's suppression list.

Authentication

Connected account required

Tags

ESP Suppression
Delete a reporting webhookCUSTOMER_IO_DELETE_WEBHOOKDelete a reporting webhook's configuration.

Delete a reporting webhook's configuration.

Authentication

Connected account required

Tags

Reporting Webhooks
Download an exportCUSTOMER_IO_DOWNLOAD_EXPORTThis endpoint returns a signed link to download an export. The link expires after 15 minutes.

This endpoint returns a signed link to download an export. The link expires after 15 minutes.

Authentication

Connected account required

Tags

Exports
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.

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 required

Tags

Exports
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.

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 required

Tags

Exports
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.

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 required

Tags

Messages
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.

Retrieves a single file asset by its ID. Returns 404 if the asset does not exist or is a folder.

Authentication

Connected account required

Tags

Assets
Get a folderCUSTOMER_IO_GET_ASSET_FOLDERRetrieves a single folder by its ID.

Retrieves a single folder by its ID.

Authentication

Connected account required

Tags

Assets
Get a broadcastCUSTOMER_IO_GET_BROADCASTReturns metadata for an individual broadcast.

Returns metadata for an individual broadcast.

Authentication

Connected account required

Tags

Broadcasts
Get a broadcast actionCUSTOMER_IO_GET_BROADCAST_ACTIONReturns information about a specific action within a broadcast.

Returns information about a specific action within a broadcast.

Authentication

Connected account required

Tags

Broadcasts
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`.

Returns information about a translation of message in a broadcast. The message is identified by the `action_id`.

Authentication

Connected account required

Tags

Broadcasts
Get a campaign actionCUSTOMER_IO_GET_CAMPAIGN_ACTIONReturns information about a specific action in a campaign.

Returns information about a specific action in a campaign.

Authentication

Connected account required

Tags

Campaigns
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`.

Returns a translated version of a message in a campaign. The message is identified by the `action_id`.

Authentication

Connected account required

Tags

Campaigns
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.

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 required

Tags

Campaigns
Get a campaignCUSTOMER_IO_GET_CAMPAIGNSReturns metadata for an individual campaign.

Returns metadata for an individual campaign.

Authentication

Connected account required

Tags

Campaigns
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.

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 required

Tags

Subscription Center
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.

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 required

Tags

Info
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).

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 required

Tags

Collections
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.

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 required

Tags

Collections
List your collectionsCUSTOMER_IO_GET_COLLECTIONSReturns a list of all of your collections, including the `name` and `schema` for each collection.

Returns a list of all of your collections, including the `name` and `schema` for each collection.

Authentication

Connected account required

Tags

Collections
Get a componentCUSTOMER_IO_GET_COMPONENTReturns a single component with its full content.

Returns a single component with its full content.

Authentication

Connected account required

Tags

Design Studio
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.

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 required

Tags

ESP Suppression
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.

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 required

Tags

Design Studio
Get an email translationCUSTOMER_IO_GET_EMAIL_TRANSLATIONReturns a single email translation by language code, including content, envelope, and transformers.

Returns a single email translation by language code, including content, envelope, and transformers.

Authentication

Connected account required

Tags

Design Studio
Get an exportCUSTOMER_IO_GET_EXPORTReturn information about a specific export.

Return information about a specific export.

Authentication

Connected account required

Tags

Exports
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).

Get a folder by its UUID. You can retrieve the UUID of folders through [List folders](#tag/design-studio/listFolders).

Authentication

Connected account required

Tags

Design Studio
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.

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 required

Tags

Imports
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.

Return a information about, and metrics for, a delivery—the instance of a message intended for an individual recipient person.

Authentication

Connected account required

Tags

Messages
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.

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 required

Tags

Newsletter Metrics
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.

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 required

Tags

Newsletter Metrics
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.

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 required

Tags

Newsletter Metrics
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.

Returns information about each test group in a newsletter, including content ids for each group.

Authentication

Connected account required

Tags

Newsletter Variants
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.

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 required

Tags

Newsletter Variants
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).

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 required

Tags

Newsletter Variants
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).

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 required

Tags

Newsletter Variants
Get a newsletterCUSTOMER_IO_GET_NEWSLETTERSReturns metadata for an individual newsletter.

Returns metadata for an individual newsletter.

Authentication

Connected account required

Tags

Newsletters
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.

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 required

Tags

Objects
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.

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 required

Tags

Objects
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.

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 required

Tags

Objects
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.

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 required

Tags

Objects
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.

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 required

Tags

Customers
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.

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 required

Tags

Customers
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.

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 required

Tags

Customers
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.

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 required

Tags

Customers
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.

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 required

Tags

Customers
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.

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 required

Tags

Customers
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.

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 required

Tags

Customers
Lookup a customer's segmentsCUSTOMER_IO_GET_PERSON_SEGMENTSReturns a list of segments that a customer profile belongs to.

Returns a list of segments that a customer profile belongs to.

Authentication

Connected account required

Tags

Customers
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.

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 required

Tags

Customers
Get a segmentCUSTOMER_IO_GET_SEGMENTReturn information about a segment.

Return information about a segment.

Authentication

Connected account required

Tags

Segments
Get a segment customer countCUSTOMER_IO_GET_SEGMENT_COUNTReturns the membership count for a segment.

Returns the membership count for a segment.

Authentication

Connected account required

Tags

Segments
Get a segment's dependenciesCUSTOMER_IO_GET_SEGMENT_DEPENDENCIESUse this endpoint to find out which campaigns and newsletters use a segment.

Use this endpoint to find out which campaigns and newsletters use a segment.

Authentication

Connected account required

Tags

Segments
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.

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 required

Tags

Segments
Get a senderCUSTOMER_IO_GET_SENDERReturns information about a specific sender.

Returns information about a specific sender.

Authentication

Connected account required

Tags

Sender Identities
Get sender usage dataCUSTOMER_IO_GET_SENDER_USAGEReturns lists of the campaigns and newsletters that use a sender.

Returns lists of the campaigns and newsletters that use a sender.

Authentication

Connected account required

Tags

Sender Identities
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.

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 required

Tags

Subscription Center
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).

Look up an email address to learn if, and why, it was suppressed by the email service provider (ESP).

Authentication

Connected account required

Tags

ESP Suppression
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.

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 required

Tags

ESP Suppression
List subscription topicsCUSTOMER_IO_GET_TOPICSReturns a list of subscription topics in your workspace. If there are no topics, it returns an empty array.

Returns a list of subscription topics in your workspace. If there are no topics, it returns an empty array.

Authentication

Connected account required

Tags

Subscription Center
Get a transactional messageCUSTOMER_IO_GET_TRANSACTIONALReturns information about an individual transactional message.

Returns information about an individual transactional message.

Authentication

Connected account required

Tags

Transactional
Get a translation of a transactional messageCUSTOMER_IO_GET_TRANSACTIONAL_VARIANTReturns information about a translation of an individual transactional message, including the message content.

Returns information about a translation of an individual transactional message, including the message content.

Authentication

Connected account required

Tags

Transactional
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.

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 required

Tags

Newsletter Metrics
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.

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 required

Tags

Newsletter Metrics
Get a reporting webhookCUSTOMER_IO_GET_WEBHOOKReturns information about a specific reporting webhook.

Returns information about a specific reporting webhook.

Authentication

Connected account required

Tags

Reporting Webhooks
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.

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 required

Tags

Imports
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.

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 required

Tags

Activities
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.

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 required

Tags

Assets
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.

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 required

Tags

Assets
Get broadcast triggersCUSTOMER_IO_LIST_BROADCAST_TRIGGERSReturns a list of the `triggers` for a broadcast.

Returns a list of the `triggers` for a broadcast.

Authentication

Connected account required

Tags

Broadcasts
List broadcastsCUSTOMER_IO_LIST_BROADCASTSReturns a list of your API-triggered broadcasts and associated metadata.

Returns a list of your API-triggered broadcasts and associated metadata.

Authentication

Connected account required

Tags

Broadcasts
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.

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 required

Tags

Campaigns
List campaignsCUSTOMER_IO_LIST_CAMPAIGNSReturns a list of your campaigns and associated metadata.

Returns a list of your campaigns and associated metadata.

Authentication

Connected account required

Tags

Campaigns
List componentsCUSTOMER_IO_LIST_COMPONENTSReturns a paginated list of components and any folders in the result set.

Returns a paginated list of components and any folders in the result set.

Authentication

Connected account required

Tags

Design Studio
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.

Returns all translations for an email. Each translation contains the email's content, envelope, and transformers for a specific language.

Authentication

Connected account required

Tags

Design Studio
List emailsCUSTOMER_IO_LIST_EMAILSReturns a paginated list of emails and a separate array of folders that the emails belong to.

Returns a paginated list of emails and a separate array of folders that the emails belong to.

Authentication

Connected account required

Tags

Design Studio
List exportsCUSTOMER_IO_LIST_EXPORTSReturn a list of your exports. Exports are point-in-time people or campaign metrics.

Return a list of your exports. Exports are point-in-time people or campaign metrics.

Authentication

Connected account required

Tags

Exports
List foldersCUSTOMER_IO_LIST_FOLDERSReturns a paginated list of folders. This does not include files like emails, components, etc.

Returns a paginated list of folders. This does not include files like emails, components, etc.

Authentication

Connected account required

Tags

Design Studio
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.

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 required

Tags

Messages
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.

Returns a newsletter's content variants—these are either different languages in a multi-language newsletter or A/B tests.

Authentication

Connected account required

Tags

Newsletter Variants
List newslettersCUSTOMER_IO_LIST_NEWSLETTERSReturns a list of your newsletters and associated metadata.

Returns a list of your newsletters and associated metadata.

Authentication

Connected account required

Tags

Newsletters
List segmentsCUSTOMER_IO_LIST_SEGMENTSRetrieve a list of all of your segments.

Retrieve a list of all of your segments.

Authentication

Connected account required

Tags

Segments
List sender identitiesCUSTOMER_IO_LIST_SENDERSReturns a list of senders in your workspace. Senders are who your messages are "from".

Returns a list of senders in your workspace. Senders are who your messages are "from".

Authentication

Connected account required

Tags

Sender Identities
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.

Returns a list of snippets in your workspace. Snippets are pieces of reusable content, like a common footer for your emails.

Authentication

Connected account required

Tags

Snippets
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.

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 required

Tags

Transactional
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.

Returns the content variants of a transactional message, where each variant represents a different language.

Authentication

Connected account required

Tags

Transactional
List reporting webhooksCUSTOMER_IO_LIST_WEBHOOKSReturn a list of all of your reporting webhooks

Return a list of all of your reporting webhooks

Authentication

Connected account required

Tags

Reporting Webhooks
List workspacesCUSTOMER_IO_LIST_WORKSPACESReturns a list of workspaces in your account.

Returns a list of workspaces in your account.

Authentication

Connected account required

Tags

Workspaces
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).

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 required

Tags

ESP Suppression
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.

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 required

Tags

Send Messages
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.

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 required

Tags

Send Messages
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`.

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 required

Tags

Send Messages
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.

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 required

Tags

Send Messages
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.

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 required

Tags

Send Messages
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).

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 required

Tags

Send Messages
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).

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 required

Tags

Send Messages
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.

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 required

Tags

Transactional
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.

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 required

Tags

Transactional
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.

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 required

Tags

Transactional
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.

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 required

Tags

Send Messages
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.

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 required

Tags

Assets
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).

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 required

Tags

Assets
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.

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 required

Tags

Data Index
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.

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 required

Tags

Broadcasts
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.

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 required

Tags

Broadcasts
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.

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 required

Tags

Campaigns
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.

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 required

Tags

Campaigns
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.

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 required

Tags

Collections
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.

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 required

Tags

Collections
Update a componentCUSTOMER_IO_UPDATE_COMPONENTUpdate part of a component: its name, tag, folder, or content.

Update part of a component: its name, tag, folder, or content.

Authentication

Connected account required

Tags

Design Studio
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.

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 required

Tags

Design Studio
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.

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 required

Tags

Design Studio
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.

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 required

Tags

Data Index
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.

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 required

Tags

Design Studio
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.

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 required

Tags

Newsletter Variants
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).

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 required

Tags

Newsletter Variants
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.

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 required

Tags

Newsletter Variants
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.

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 required

Tags

Snippets
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.

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 required

Tags

Transactional
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.

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 required

Tags

Transactional
Update a webhook configurationCUSTOMER_IO_UPDATE_WEBHOOKUpdate the configuration of a reporting webhook. Turn events on or off, change the webhook URL, etc.

Update the configuration of a reporting webhook. Turn events on or off, change the webhook URL, etc.

Authentication

Connected account required

Tags

Reporting Webhooks

Provider resources