Journeys App API

Customer engagement and messaging platform

customer.io/docs/api ↗
Version
1.0.0
OpenAPI
3.0.0
Endpoints
111
Schemas
440
94
Quality
Updated
3 days ago
Marketing marketing messaging engagement
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

https://api.customer.io

Endpoints

Clear filters

Collections 1 endpoints

POST /v1/collections

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.

operationId: Collections_createNew

Request Body

application/json
schema CollectionsCreateNewRequest

Responses

200

The collection was created successfully.

400

Your request was malformed.

429

Your request is over the 10-per-second limit.

POST /v1/collections

Customers 2 endpoints

POST /v1/customers

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 API instead.

operationId: Customers_searchFilter

Parameters

Name In Required Type Description
start query optional string

The token for the page of results you want to return. Responses contain a next property. Use this property as the start value to return the next page of results.

limit query optional integer

The maximum number of results you want to retrieve per page.

Request Body

application/json
schema CustomersSearchFilterRequest
Property Type Required
filter object required

Responses

200

Returns an array of customers matching your filters.

401

Unauthorized request. Make sure that you provided the right credentials.

429

Your request is over the 10-per-second limit.

POST /v1/customers
POST /v1/customers/attributes

Return attributes and devices for up to 100 customers by ID. If an ID in the request does not exist, the response omits it.

operationId: Customers_listAttributesDevices

Request Body

application/json
schema CustomersListAttributesDevicesRequest
Property Type Required
ids array required

Responses

200

Returns an array of customers. Each object represents a customer profile.

400

The request is malformed.

429

Your request is over the 10-per-second limit.

POST /v1/customers/attributes

Espsuppression 1 endpoints

POST /v1/esp/suppression/{suppression_type}/{email_address}

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

operationId: EspSuppression_emailAddress

Parameters

Name In Required Type Description
suppression_type path required string

The reason a person’s email address was suppressed by the email service provider (ESP).

email_address path required string

The email address of the person you want to look up.

Responses

200

A successful request produces an empty response.

429

Your request is over the 10-per-second limit.

POST /v1/esp/suppression/{suppression_type}/{email_address}

Exports 2 endpoints

POST /v1/exports/customers

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.

operationId: Exports_createCustomerExport

Request Body

application/json
schema ExportsCreateCustomerExportRequest
Property Type Required
filters object required

Responses

200

Returns an export.

400

The request is malformed.

429

Your request is over the 10-per-second limit.

POST /v1/exports/customers
POST /v1/exports/deliveries

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.

operationId: Exports_exportDeliveriesInfo

Request Body

application/json
schema ExportsExportDeliveriesInfoRequest

Responses

200

Returns an export.

400

The request is malformed.

429

Your request is over the 10-per-second limit.

POST /v1/exports/deliveries

Imports 1 endpoints

POST /v1/imports

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 for each row in your CSV; uploading events is like performing a track call.

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, events, and objects or relationships.

operationId: Imports_bulkUploadCsv

Request Body

application/json
schema ImportsBulkUploadCsvRequest
Property Type Required
import object required

Responses

200

Returns an import payload.

429

Your request is over the 10-per-second limit.

POST /v1/imports

Objects 1 endpoints

POST /v1/objects

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.

operationId: Objects_findObjectsFilter

Parameters

Name In Required Type Description
start query optional string

The token for the page of results you want to return. Responses contain a next property. Use this property as the start value to return the next page of results.

limit query optional integer

The maximum number of results you want to retrieve per page.

Request Body

The object_type_id you want to search in, and the filter you want to apply to find objects. Both are required. The object called object_attribute requires type_id, as well, which should match the object_type_id.

application/json
schema ObjectsFindObjectsFilterRequest
Property Type Required
filter object required
object_type_id string required

Responses

200

Returns arrays of identifiers and ids.

429

Your request is over the 10-per-second limit.

POST /v1/objects

Reportingwebhooks 1 endpoints

POST /v1/reporting_webhooks

Create a new webhook configuration.

operationId: ReportingWebhooks_createWebhookConfig

Request Body

application/json
schema ReportingWebhooksCreateWebhookConfigRequest
Property Type Required
id integer optional
name string required
events array required
disabled boolean optional
endpoint string required
with_content boolean optional
full_resolution boolean optional

Responses

200

Returns your webhook configuration and the ID of the webhook.

400

The request was malformed.

429

Your request is over the 10-per-second limit.

POST /v1/reporting_webhooks

Segments 1 endpoints

POST /v1/segments

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

operationId: Segments_createManualSegment

Request Body

application/json
schema SegmentsCreateManualSegmentRequest
Property Type Required
segment object required
name string required
description string optional

Responses

200

Returns the segment ID and other information.

400

The request was malformed.

429

Your request is over the 10-per-second limit.

POST /v1/segments

Sendmessages 3 endpoints

POST /v1/campaigns/{broadcast_id}/triggers

Manually trigger a broadcast, and provide data to populate messages in your trigger. The shape of the request changes based on the type of audience you broadcast to: a segment, a list of emails, a list of customer IDs, a map of users, or a data file. You can reference properties in the data object from this request using liquid—{{trigger.<property_in_data_obj>}}.

If your broadcast produces a 422 error, you can get more information about the errors 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. Broadcasts are optimized to send messages to a large audience and not for one-to-one interactions. Use our transactional API or event-triggered campaigns to respond to your audience on an individual, one-to-one basis.

operationId: SendMessages_triggerBroadcast

Parameters

Name In Required Type Description
broadcast_id path required integer

The ID of the broadcast that you want to trigger.

Request Body

application/json
schema SendMessagesTriggerBroadcastRequest

Responses

200

A successful request returns the trigger ID.

401

Unauthorized request. Make sure that you provided the right credentials.

404

The broadcast_id does not exist.

422

The broadcast has one or more validation errors. You can learn more by checking your broadcast for errors using the trigger_id found in the error detail.

POST /v1/campaigns/{broadcast_id}/triggers
POST /v1/send/email

Send a transactional email. You can send a message using a transactional_message_id or send your own body, subject, and from 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.

If you want to send your own body, subject, and from values to populate your message at send time, we recommend that you pass a transactional_message_id anyway; the values you pass in the request will override 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.

Customer.io attributes metrics to a transactional_message_id; if you don’t provide a transactional_message_id, we attribute metrics to "transactional_message_id": 1. You can create empty transactional messages in the UI and override the body, subject, and from values at send time. This provides flexibility in your integration and lets you organize metrics (rather than gathering metrics for all of your transactional messages against a single ID).

operationId: SendMessages_transactionalEmail

Request Body

application/json
schema SendMessagesTransactionalEmailRequest

Responses

200

Returns a unique ID for the delivery.

400

The request was malformed.

POST /v1/send/email
POST /v1/send/push

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.

operationId: SendMessages_transactionalPush

Request Body

application/json
schema SendMessagesTransactionalPushRequest
Property Type Required
transactional_message_id object required
to string required
link string optional
sound string optional
title string optional
message string optional
language string optional
image_url string optional
custom_data object optional
custom_device object optional
token string required
platform string required
last_used integer optional
attributes object optional
device_os string optional
app_version string optional
_last_status string optional
device_model string optional
push_enabled string optional
device_locale string optional
cio_sdk_version string optional
custom_payload object optional
ios object optional
android object optional
message object required
data object optional
android object optional
notification object optional
send_at integer optional
identifiers object required
queue_draft boolean optional
message_data object optional
send_to_unsubscribed boolean optional
disable_message_retention boolean optional

Responses

200

Returns a unique ID for the delivery.

400

The request was malformed.

POST /v1/send/push

Schemas

object ActivitiesListResponse
{
  "type": "object",
  "properties": {
    "next": {
      "type": "string",
      "description": "Indicates the next page of results. Add `?start=<next_value>` to the request to get the next page of results."
    },
    "activities": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "example": "01AK4N8V8G8KVA4HN8Y50CCZ59",
            "description": "The identifier for the action."
          },
          "data": {
            "oneOf": [
              {
                "type": "object",
                "title": "Message delivery",
                "example": {
                  "opened": null,
                  "delivered": null,
                  "delivery_id": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ=="
                },
                "properties": {
                  "opened": {
                    "type": "boolean",
                    "nullable": true,
                    "description": "Indicates whether or not a customer opened a message, if the message was delivered."
                  },
                  "delivered": {
                    "type": "integer",
                    "format": "unix timestamp",
                    "nullable": true,
                    "description": "The date-time when the message was delivered, if applicable."
                  },
                  "delivery_id": {
                    "type": "string",
                    "description": "The message ID."
                  }
                }
              },
              {
                "type": "object",
                "title": "Attribute change",
                "example": {
                  "email": {
                    "to": "newPerson@customer.io",
                    "from": "newPerson@example.com"
                  }
                },
                "description": "The name of the object is the attribute that changed.",
                "additionalProperties": {
                  "type": "object",
                  "properties": {
                    "to": {
                      "type": "string",
                      "description": "The new attribute value."
                    },
                    "from": {
                      "type": "string",
                      "description": "The old attribute value. If empty, the customer probably didn't bear the attribute before this action."
                    }
                  },
                  "x-additionalPropertyName": "Attribute Name"
                }
              }
            ]
          },
          "type": {
            "enum": [
              "attempted_action",
              "attribute_change",
              "failed_attribute_change",
              "failed_batch_update",
              "skipped_update",
              "failed_query_collection",
              "event",
              "failed_event",
              "page",
              "drafted_email",
              "attempted_email",
              "sent_email",
              "delivered_email",
              "opened_email",
              "clicked_email",
              "converted_email",
              "bounced_email",
              "failed_email",
              "unsubscribed_email",
              "topic_unsubscribed_email",
              "spammed_email",
              "dropped_email",
              "undeliverable_email",
              "drafted_action",
              "delivered_action",
              "bounced_action",
              "sent_action",
              "opened_action",
              "clicked_action",
              "failed_action",
              "converted_action",
              "device_change",
              "deferred_email",
              "unsubscribed_action",
              "dropped_action",
              "undeliverable_action",
              "deferred_action",
              "profile_create",
              "profile_delete",
              "profile_merge",
              "anon_merge",
              "screen",
              "webhook_event",
              "add_relationship",
              "delete_relationship",
              "_o:<object_type_id>:create",
              "_o:<object_type_id>:attribute_change",
              "_o:<object_type_id>:failed_attribute_change",
              "_o:<object_type_id>:delete",
              "_o:<object_type_id>:add_relationship",
              "_o:<object_type_id>:delete_relationship",
              "_r:<object_type_id>:attribute_change",
              "_r:<object_type_id>:failed_attribute_change",
              "failed_object_journeys"
            ],
            "type": "string",
            "example": "sent_email",
            "description": "The type of activity. Types with `_o:<object_type_id>` are for objects and types with `_r:<object_type_id>` are for relationships."
          },
          "timestamp": {
            "type": "integer",
            "format": "unix timestamp",
            "example": 1397566226,
            "description": "The date and time when the action occurred."
          },
          "customer_id": {
            "type": "string",
            "example": "42",
            "nullable": true,
            "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
          },
          "delivery_id": {
            "type": "string",
            "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
            "description": "The message ID."
          },
          "delivery_type": {
            "enum": [
              "ios",
              "android",
              "email",
              "phone"
            ],
            "type": "string",
            "example": "email",
            "description": "The recipient device, if applicable."
          },
          "customer_identifiers": {
            "type": "object",
            "required": [
              "email",
              "id",
              "cio_id"
            ],
            "properties": {
              "id": {
                "type": "string",
                "example": 2,
                "nullable": true,
                "description": "A person's unique ID, if set. This is the same as the `customer_id` if present."
              },
              "email": {
                "type": "string",
                "format": "email",
                "example": "test@example.com",
                "nullable": true,
                "description": "A person's email address, if set."
              },
              "cio_id": {
                "type": "string",
                "example": "a3000001",
                "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
              }
            },
            "description": "Contains identifiers for the person represented in a response—`id`, `cio_id`, and `email` (if your workspace uses the *Email or ID* setting). If the person's `id` or `email` is not set, the value will be null.\n\nWe recommend that you use this object rather than the less descriptive `customer_id`.\n"
          }
        }
      }
    }
  }
}
object BroadcastsGetActionDetailsResponse
{
  "type": "object",
  "properties": {
    "action": {
      "oneOf": [
        {
          "type": "object",
          "title": "Email / message",
          "properties": {
            "id": {
              "type": "integer",
              "example": 96,
              "nullable": true,
              "readOnly": true,
              "description": "The identifier for an action."
            },
            "bcc": {
              "type": "string",
              "readOnly": true,
              "description": "The blind-copy address(es) for this action."
            },
            "body": {
              "type": "string",
              "description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
            },
            "from": {
              "type": "string",
              "example": "sentFrom@example.com",
              "readOnly": true,
              "description": "The address that the message is from, relevant if the action `type` is `email`."
            },
            "name": {
              "type": "string",
              "example": "Opening Message",
              "readOnly": true,
              "description": "The name of the action, if it exists."
            },
            "type": {
              "enum": [
                "email",
                "in_app",
                "push",
                "twilio",
                "slack"
              ],
              "type": "string",
              "readOnly": true,
              "description": "The type of action."
            },
            "layout": {
              "type": "string",
              "readOnly": true,
              "description": "The layout used for the action, if it exists."
            },
            "created": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1552341937,
              "readOnly": true,
              "description": "The date time when the referenced ID was created."
            },
            "from_id": {
              "type": "integer",
              "example": 1,
              "description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
            },
            "headers": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "example": "X-Mailgun-Tag",
                    "description": "name of header"
                  },
                  "value": {
                    "type": "string",
                    "example": "tag-name-for-tracking",
                    "description": "value of header"
                  }
                }
              },
              "description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
            },
            "subject": {
              "type": "string",
              "example": "Did you get that thing I sent you?",
              "description": "The subject line for an `email` action."
            },
            "updated": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1552341937,
              "readOnly": true,
              "description": "The date time when the referenced ID was last updated."
            },
            "body_amp": {
              "type": "string",
              "description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
            },
            "fake_bcc": {
              "type": "boolean",
              "readOnly": true,
              "description": "If true, rather than sending true copies to BCC addresses, Customer.io sends a copy of the message with the subject line containing the recipient address(es).\n"
            },
            "language": {
              "type": "string",
              "example": "fr",
              "readOnly": true,
              "description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
            },
            "reply_to": {
              "type": "string",
              "example": "replyto@example.com",
              "readOnly": true,
              "description": "The address that receives replies for the message, if applicable."
            },
            "recipient": {
              "type": "string",
              "example": "{{customer.email}}",
              "description": "The recipient address for an action."
            },
            "reply_to_id": {
              "type": "integer",
              "example": 38,
              "nullable": true,
              "description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
            },
            "broadcast_id": {
              "type": "integer",
              "example": 2,
              "readOnly": true,
              "description": "The identifier for a broadcast."
            },
            "preprocessor": {
              "enum": [
                "premailer"
              ],
              "type": "string",
              "readOnly": true,
              "description": "By default, we process CSS before emails leave Customer.io using Premailer. If your message included CSS and pre-processing is not disabled, this key indicates the pre-processor."
            },
            "sending_state": {
              "enum": [
                "automatic",
                "draft",
                "off"
              ],
              "type": "string",
              "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
            },
            "deduplicate_id": {
              "type": "string",
              "example": "15:1492548073",
              "readOnly": true,
              "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
            },
            "preheader_text": {
              "type": "string",
              "description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
            }
          }
        },
        {
          "type": "object",
          "title": "Webhook",
          "properties": {
            "id": {
              "type": "integer",
              "example": 96,
              "nullable": true,
              "readOnly": true,
              "description": "The identifier for an action."
            },
            "url": {
              "type": "string",
              "example": "https://my.example.com/webhook",
              "description": "The URL to send a webhook to, applies to `webhook` type actions."
            },
            "body": {
              "type": "string",
              "description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
            },
            "name": {
              "type": "string",
              "example": "Opening Message",
              "readOnly": true,
              "description": "The name of the action, if it exists."
            },
            "type": {
              "enum": [
                "webhook"
              ],
              "type": "string",
              "readOnly": true,
              "description": "The type of action."
            },
            "layout": {
              "type": "string",
              "readOnly": true,
              "description": "The layout used for the action, if it exists."
            },
            "method": {
              "enum": [
                "get",
                "post",
                "put",
                "delete",
                "patch"
              ],
              "type": "string",
              "example": "post",
              "description": "The HTTP method for your webhook."
            },
            "created": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1552341937,
              "readOnly": true,
              "description": "The date time when the referenced ID was created."
            },
            "headers": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "example": "X-Mailgun-Tag",
                    "description": "name of header"
                  },
                  "value": {
                    "type": "string",
                    "example": "tag-name-for-tracking",
                    "description": "value of header"
                  }
                }
              },
              "description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
            },
            "updated": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1552341937,
              "readOnly": true,
              "description": "The date time when the referenced ID was last updated."
            },
            "broadcast_id": {
              "type": "integer",
              "example": 2,
              "description": "The identifier for a broadcast."
            },
            "sending_state": {
              "enum": [
                "automatic",
                "draft",
                "off"
              ],
              "type": "string",
              "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
            },
            "deduplicate_id": {
              "type": "string",
              "example": "15:1492548073",
              "readOnly": true,
              "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
            }
          }
        }
      ]
    }
  }
}
object BroadcastsGetActionLinkMetricsResponse
{
  "type": "object",
  "properties": {
    "links": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "link": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "example": 1234,
                "description": "The ID of the link."
              },
              "href": {
                "type": "string",
                "example": "https://customer.io/docs",
                "description": "The link destination—a URL, mailto, etc."
              }
            }
          },
          "metric": {
            "type": "object",
            "properties": {
              "series": {
                "type": "object",
                "properties": {
                  "clicked": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "example": [
                      1,
                      3,
                      5,
                      7
                    ],
                    "description": "An array of results from oldest to newest, where each result indicates a period."
                  }
                }
              }
            },
            "description": "Contains metrics for the link."
          }
        }
      },
      "description": "Each object in the array represents a link in your broadcast variant."
    }
  }
}
object BroadcastsGetActionMetricsResponse
{
  "type": "object",
  "properties": {
    "metric": {
      "type": "object",
      "properties": {
        "series": {
          "allOf": [
            {
              "type": "object",
              "properties": {
                "2xx": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "2xx responses by period, representative of webhook performance."
                },
                "3xx": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "3xx responses by period, representative of webhook performance."
                },
                "4xx": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "4xx responses by period, representative of webhook performance."
                },
                "5xx": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "5xx responses by period, representative of webhook performance."
                }
              },
              "description": "Returns metrics in accordance with the `period` you requested. Each property in this object is an array and each entry in the array represents a metric period, i.e. if your `period` is days `[0, 1]` would represent 0 metrics for the first day, 1 for the second, etc."
            },
            {
              "type": "object",
              "properties": {
                "sent": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of sent messages."
                },
                "failed": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `failed` messages."
                },
                "opened": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `opened` messages."
                },
                "bounced": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `bounced` messages."
                },
                "clicked": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `clicked` messages."
                },
                "created": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `created` messages."
                },
                "drafted": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `drafted` messages."
                },
                "spammed": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of spam complaints."
                },
                "deferred": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `deferred` messages."
                },
                "attempted": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `attempted` messages."
                },
                "converted": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `converted` messages."
                },
                "delivered": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `delivered` messages."
                },
                "suppressed": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `suppressed` messages."
                },
                "unsubscribed": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of unsubscribes attributed to the campaign or message."
                },
                "undeliverable": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `undeliverable` messages."
                },
                "topic_unsubscribed": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of topic unsubscribes in a given period."
                }
              },
              "description": "Returns metrics in accordance with the `period` you requested. Each property in this object is an array and each entry in the array represents a metric period, i.e. if your `period` is days `[0, 1]` would represent 0 metrics for the first day, 1 for the second, etc."
            }
          ]
        }
      }
    }
  }
}
object BroadcastsGetActionsResponse
{
  "type": "object",
  "properties": {
    "actions": {
      "type": "array",
      "items": {
        "oneOf": [
          {
            "type": "object",
            "title": "Email / message",
            "properties": {
              "id": {
                "type": "integer",
                "example": 96,
                "nullable": true,
                "readOnly": true,
                "description": "The identifier for an action."
              },
              "bcc": {
                "type": "string",
                "readOnly": true,
                "description": "The blind-copy address(es) for this action."
              },
              "body": {
                "type": "string",
                "description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
              },
              "from": {
                "type": "string",
                "example": "sentFrom@example.com",
                "readOnly": true,
                "description": "The address that the message is from, relevant if the action `type` is `email`."
              },
              "name": {
                "type": "string",
                "example": "Opening Message",
                "readOnly": true,
                "description": "The name of the action, if it exists."
              },
              "type": {
                "enum": [
                  "email",
                  "in_app",
                  "push",
                  "twilio",
                  "slack"
                ],
                "type": "string",
                "readOnly": true,
                "description": "The type of action."
              },
              "layout": {
                "type": "string",
                "readOnly": true,
                "description": "The layout used for the action, if it exists."
              },
              "created": {
                "type": "integer",
                "format": "unix timestamp",
                "example": 1552341937,
                "readOnly": true,
                "description": "The date time when the referenced ID was created."
              },
              "from_id": {
                "type": "integer",
                "example": 1,
                "description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
              },
              "headers": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "example": "X-Mailgun-Tag",
                      "description": "name of header"
                    },
                    "value": {
                      "type": "string",
                      "example": "tag-name-for-tracking",
                      "description": "value of header"
                    }
                  }
                },
                "description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
              },
              "subject": {
                "type": "string",
                "example": "Did you get that thing I sent you?",
                "description": "The subject line for an `email` action."
              },
              "updated": {
                "type": "integer",
                "format": "unix timestamp",
                "example": 1552341937,
                "readOnly": true,
                "description": "The date time when the referenced ID was last updated."
              },
              "body_amp": {
                "type": "string",
                "description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
              },
              "fake_bcc": {
                "type": "boolean",
                "readOnly": true,
                "description": "If true, rather than sending true copies to BCC addresses, Customer.io sends a copy of the message with the subject line containing the recipient address(es).\n"
              },
              "language": {
                "type": "string",
                "example": "fr",
                "readOnly": true,
                "description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
              },
              "reply_to": {
                "type": "string",
                "example": "replyto@example.com",
                "readOnly": true,
                "description": "The address that receives replies for the message, if applicable."
              },
              "recipient": {
                "type": "string",
                "example": "{{customer.email}}",
                "description": "The recipient address for an action."
              },
              "reply_to_id": {
                "type": "integer",
                "example": 38,
                "nullable": true,
                "description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
              },
              "broadcast_id": {
                "type": "integer",
                "example": 2,
                "readOnly": true,
                "description": "The identifier for a broadcast."
              },
              "preprocessor": {
                "enum": [
                  "premailer"
                ],
                "type": "string",
                "readOnly": true,
                "description": "By default, we process CSS before emails leave Customer.io using Premailer. If your message included CSS and pre-processing is not disabled, this key indicates the pre-processor."
              },
              "sending_state": {
                "enum": [
                  "automatic",
                  "draft",
                  "off"
                ],
                "type": "string",
                "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
              },
              "deduplicate_id": {
                "type": "string",
                "example": "15:1492548073",
                "readOnly": true,
                "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
              },
              "preheader_text": {
                "type": "string",
                "description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
              }
            }
          },
          {
            "type": "object",
            "title": "Webhook",
            "properties": {
              "id": {
                "type": "integer",
                "example": 96,
                "nullable": true,
                "readOnly": true,
                "description": "The identifier for an action."
              },
              "url": {
                "type": "string",
                "example": "https://my.example.com/webhook",
                "description": "The URL to send a webhook to, applies to `webhook` type actions."
              },
              "body": {
                "type": "string",
                "description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
              },
              "name": {
                "type": "string",
                "example": "Opening Message",
                "readOnly": true,
                "description": "The name of the action, if it exists."
              },
              "type": {
                "enum": [
                  "webhook"
                ],
                "type": "string",
                "readOnly": true,
                "description": "The type of action."
              },
              "layout": {
                "type": "string",
                "readOnly": true,
                "description": "The layout used for the action, if it exists."
              },
              "method": {
                "enum": [
                  "get",
                  "post",
                  "put",
                  "delete",
                  "patch"
                ],
                "type": "string",
                "example": "post",
                "description": "The HTTP method for your webhook."
              },
              "created": {
                "type": "integer",
                "format": "unix timestamp",
                "example": 1552341937,
                "readOnly": true,
                "description": "The date time when the referenced ID was created."
              },
              "headers": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "example": "X-Mailgun-Tag",
                      "description": "name of header"
                    },
                    "value": {
                      "type": "string",
                      "example": "tag-name-for-tracking",
                      "description": "value of header"
                    }
                  }
                },
                "description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
              },
              "updated": {
                "type": "integer",
                "format": "unix timestamp",
                "example": 1552341937,
                "readOnly": true,
                "description": "The date time when the referenced ID was last updated."
              },
              "broadcast_id": {
                "type": "integer",
                "example": 2,
                "description": "The identifier for a broadcast."
              },
              "sending_state": {
                "enum": [
                  "automatic",
                  "draft",
                  "off"
                ],
                "type": "string",
                "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
              },
              "deduplicate_id": {
                "type": "string",
                "example": "15:1492548073",
                "readOnly": true,
                "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
              }
            }
          }
        ]
      }
    }
  }
}
object BroadcastsGetBroadcastErrorsResponse
{
  "type": "object",
  "properties": {
    "next": {
      "type": "string",
      "description": "Indicates the next page of results. Add `?start=<next_value>` to the request to get the next page of results."
    },
    "errors": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "A list of errors in the format `line <x>: <error text>` to help you troubleshoot errors associated with your audience or data file."
    }
  }
}
object BroadcastsGetLinkMetricsResponse
{
  "type": "object",
  "properties": {
    "links": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "link": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "example": 1234,
                "description": "The ID of the link."
              },
              "href": {
                "type": "string",
                "example": "https://customer.io/docs",
                "description": "The link destination—a URL, mailto, etc."
              }
            }
          },
          "metric": {
            "type": "object",
            "properties": {
              "series": {
                "type": "object",
                "properties": {
                  "clicked": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "example": [
                      1,
                      3,
                      5,
                      7
                    ],
                    "description": "An array of results from oldest to newest, where each result indicates a period."
                  }
                }
              }
            },
            "description": "Contains metrics for the link."
          }
        }
      }
    }
  }
}
object BroadcastsGetMessagesResponse
{
  "type": "object",
  "properties": {
    "messages": {
      "type": "array",
      "items": {
        "type": "object",
        "example": {
          "id": "ag1q6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=X",
          "type": "email",
          "created": 1619137767,
          "metrics": {
            "sent": 1619137768,
            "delivered": 1619137768
          },
          "subject": "Did you get that thing I sent you?",
          "action_id": 215,
          "forgotten": false,
          "recipient": "person@example.com",
          "content_id": null,
          "campaign_id": 23,
          "customer_id": null,
          "broadcast_id": null,
          "newsletter_id": null,
          "deduplicate_id": "ag1q6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=:1619137768",
          "failure_message": null,
          "msg_template_id": 43,
          "parent_action_id": null,
          "trigger_event_id": null
        },
        "properties": {
          "id": {
            "type": "string",
            "example": "dgOq6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=",
            "readOnly": true,
            "description": "The identifier for a delivery—the instance of a message intended for an individual recipient."
          },
          "type": {
            "enum": [
              "email",
              "webhook",
              "twilio",
              "slack",
              "push"
            ],
            "type": "string",
            "example": "email",
            "readOnly": true,
            "description": "The type of message/action."
          },
          "created": {
            "type": "integer",
            "format": "unix timestamp",
            "example": 1552341937,
            "readOnly": true,
            "description": "The date time when the referenced ID was created."
          },
          "metrics": {
            "type": "object",
            "properties": {
              "sent": {
                "type": "integer",
                "description": "The timestamp when the message was `sent`."
              },
              "failed": {
                "type": "integer",
                "description": "The timestamp when the message `failed`."
              },
              "opened": {
                "type": "integer",
                "description": "The timestamp when the message was `opened`."
              },
              "bounced": {
                "type": "integer",
                "description": "The timestamp when the message `bounced`."
              },
              "clicked": {
                "type": "integer",
                "description": "The timestamp when the message was `clicked`."
              },
              "created": {
                "type": "integer",
                "description": "The timestamp when the message was `created`."
              },
              "drafted": {
                "type": "integer",
                "description": "The timestamp when the message was `drafted`."
              },
              "dropped": {
                "type": "integer",
                "description": "The timestamp when the message was `dropped`."
              },
              "spammed": {
                "type": "integer",
                "description": "The timestamp when the message was marked as spam."
              },
              "converted": {
                "type": "integer",
                "description": "The timestamp when the message was `converted`."
              },
              "delivered": {
                "type": "integer",
                "description": "The timestamp when the message was `delivered`."
              },
              "unsubscribed": {
                "type": "integer",
                "description": "The timestamp when a person unsubscribed based on this message."
              },
              "undeliverable": {
                "type": "integer",
                "description": "The timestamp when the message became `undeliverable`."
              }
            },
            "description": "Metrics for an individual instance of a message; each item in the object represents the timestamp when a message achieved a particular metric. This object only contains metrics that have been recorded."
          },
          "subject": {
            "type": "string",
            "example": "Did you get that thing I sent you?",
            "description": "The subject line for an `email` action."
          },
          "action_id": {
            "type": "integer",
            "example": 96,
            "nullable": true,
            "readOnly": true,
            "description": "The identifier for an action."
          },
          "forgotten": {
            "type": "boolean",
            "description": "If true message contents are not retained by Customer.io."
          },
          "recipient": {
            "type": "string",
            "example": "{{customer.email}}",
            "description": "The recipient address for an action."
          },
          "content_id": {
            "type": "integer",
            "example": 1,
            "nullable": true,
            "readOnly": true,
            "description": "The identifier for a newsletter variant."
          },
          "campaign_id": {
            "type": "integer",
            "example": 5,
            "nullable": true,
            "description": "The identifier for a campaign."
          },
          "customer_id": {
            "type": "string",
            "example": "42",
            "nullable": true,
            "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
          },
          "broadcast_id": {
            "type": "integer",
            "example": 2,
            "nullable": true,
            "description": "The identifier for a broadcast."
          },
          "newsletter_id": {
            "type": "integer",
            "example": 10,
            "nullable": true,
            "description": "The identifier for a newsletter."
          },
          "deduplicate_id": {
            "type": "string",
            "example": "15:1492548073",
            "readOnly": true,
            "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
          },
          "failure_message": {
            "type": "string",
            "nullable": true,
            "description": "Explains why a message failed, if applicable."
          },
          "parent_action_id": {
            "type": "integer",
            "example": 1,
            "readOnly": true,
            "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
          },
          "trigger_event_id": {
            "type": "string",
            "example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
            "nullable": true,
            "description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
          },
          "message_template_id": {
            "type": "integer",
            "readOnly": true,
            "deprecated": true,
            "description": "The identifier of the message template used to create a message."
          },
          "customer_identifiers": {
            "type": "object",
            "required": [
              "email",
              "id",
              "cio_id"
            ],
            "properties": {
              "id": {
                "type": "string",
                "example": 2,
                "nullable": true,
                "description": "A person's unique ID, if set. This is the same as the `customer_id` if present."
              },
              "email": {
                "type": "string",
                "format": "email",
                "example": "test@example.com",
                "nullable": true,
                "description": "A person's email address, if set."
              },
              "cio_id": {
                "type": "string",
                "example": "a3000001",
                "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
              }
            },
            "description": "Contains identifiers for the person represented in a response—`id`, `cio_id`, and `email` (if your workspace uses the *Email or ID* setting). If the person's `id` or `email` is not set, the value will be null.\n\nWe recommend that you use this object rather than the less descriptive `customer_id`.\n"
          }
        },
        "description": "Describes an individual message delivery. The object contains keys for all possible parents of the message (`newsletter_id`, `broadcast_id`, etc) but only the parents of the delivery are populated. Other parent IDs are null."
      },
      "example": [
        {
          "id": "dgOq6QWq6QUDAAF22PaOyFVqVxHY3rI5fsg=",
          "type": "email",
          "created": 1609957805,
          "metrics": {
            "sent": 1609957832,
            "delivered": 1609957872
          },
          "subject": "Did you get that thing I sent you?",
          "action_id": 196,
          "forgotten": false,
          "recipient": "person@example.com",
          "content_id": null,
          "campaign_id": null,
          "customer_id": "1a55d8d1-b13d-4f1f-858f-a93ef21e3a7d",
          "broadcast_id": 94,
          "newsletter_id": null,
          "deduplicate_id": "dgOq6QWq6QUDAAF22PaOyFVqVxHY3rI5fsg=:1609957872",
          "failure_message": null,
          "msg_template_id": 0,
          "customer_identifiers": {
            "id": "1a55d8d1-b13d-4f1f-858f-a93ef21e3a7d",
            "email": "person@example.com",
            "cio_id": 786433
          }
        }
      ]
    }
  }
}
object BroadcastsGetMetadataResponse
{
  "type": "object",
  "properties": {
    "broadcast": {
      "type": "object",
      "example": {
        "id": 2,
        "name": "basic",
        "tags": "nil",
        "type": "triggered_broadcast",
        "active": true,
        "actions": [
          {
            "id": 3,
            "type": "email"
          },
          {
            "id": 4
          },
          {
            "type": "webhook"
          }
        ],
        "created": 1520467200,
        "updated": 1520467200,
        "created_by": "ExamplePerson",
        "first_started": 1520467200,
        "deduplicate_id": "2:1520467200"
      },
      "properties": {
        "id": {
          "type": "integer",
          "example": 2,
          "description": "The identifier for a broadcast."
        },
        "name": {
          "type": "string",
          "readOnly": true,
          "description": "The name of the broadcast."
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of tags you set on this broadcast."
        },
        "active": {
          "type": "boolean",
          "description": "If true, the broadcast is active."
        },
        "actions": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "The identifier for the action."
              },
              "type": {
                "enum": [
                  "email",
                  "webhook",
                  "push",
                  "sms",
                  "slack"
                ],
                "type": "string",
                "description": "The type of action."
              }
            }
          },
          "description": "A list of actions used by the broadcast."
        },
        "created": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1552341937,
          "readOnly": true,
          "description": "The date time when the referenced ID was created."
        },
        "updated": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1552341937,
          "readOnly": true,
          "description": "The date time when the referenced ID was last updated."
        },
        "deduplicate_id": {
          "type": "string",
          "example": "15:1492548073",
          "readOnly": true,
          "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
        },
        "msg_template_ids": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "The identifier for the template."
              },
              "type": {
                "enum": [
                  "email",
                  "webhook",
                  "push",
                  "sms",
                  "slack"
                ],
                "type": "string",
                "description": "The type of template."
              }
            }
          },
          "deprecated": true,
          "description": "Indicates the message template(s) used in this broadcast."
        }
      }
    }
  }
}
object BroadcastsGetMetricsResponse
{
  "type": "object",
  "properties": {
    "metric": {
      "type": "object",
      "properties": {
        "series": {
          "allOf": [
            {
              "type": "object",
              "properties": {
                "2xx": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "2xx responses by period, representative of webhook performance."
                },
                "3xx": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "3xx responses by period, representative of webhook performance."
                },
                "4xx": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "4xx responses by period, representative of webhook performance."
                },
                "5xx": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "5xx responses by period, representative of webhook performance."
                }
              },
              "description": "Returns metrics in accordance with the `period` you requested. Each property in this object is an array and each entry in the array represents a metric period, i.e. if your `period` is days `[0, 1]` would represent 0 metrics for the first day, 1 for the second, etc."
            },
            {
              "type": "object",
              "properties": {
                "sent": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of sent messages."
                },
                "failed": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `failed` messages."
                },
                "opened": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `opened` messages."
                },
                "bounced": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `bounced` messages."
                },
                "clicked": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `clicked` messages."
                },
                "created": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `created` messages."
                },
                "drafted": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `drafted` messages."
                },
                "spammed": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of spam complaints."
                },
                "deferred": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `deferred` messages."
                },
                "attempted": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `attempted` messages."
                },
                "converted": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `converted` messages."
                },
                "delivered": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `delivered` messages."
                },
                "suppressed": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `suppressed` messages."
                },
                "unsubscribed": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of unsubscribes attributed to the campaign or message."
                },
                "undeliverable": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `undeliverable` messages."
                },
                "topic_unsubscribed": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of topic unsubscribes in a given period."
                }
              },
              "description": "Returns metrics in accordance with the `period` you requested. Each property in this object is an array and each entry in the array represents a metric period, i.e. if your `period` is days `[0, 1]` would represent 0 metrics for the first day, 1 for the second, etc."
            }
          ]
        }
      }
    }
  }
}
object BroadcastsGetStatusResponse
{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "description": "The identifier for a broadcast trigger."
    },
    "created_at": {
      "type": "integer",
      "format": "unix timestamp",
      "example": 1552341937,
      "readOnly": true,
      "description": "The date time when the referenced ID was created."
    },
    "broadcast_id": {
      "type": "integer",
      "example": 2,
      "description": "The identifier for a broadcast."
    },
    "processed_at": {
      "type": "integer",
      "format": "unix timestamp",
      "description": "The date-time when Customer.io processed the trigger."
    }
  },
  "description": "You can get triggers to know when you triggered a broadcast and whether or not it's been processed."
}
object BroadcastsGetTranslationMessageResponse
{
  "type": "object",
  "properties": {
    "action": {
      "oneOf": [
        {
          "type": "object",
          "title": "Email / message",
          "properties": {
            "id": {
              "type": "integer",
              "example": 96,
              "nullable": true,
              "readOnly": true,
              "description": "The identifier for an action."
            },
            "bcc": {
              "type": "string",
              "readOnly": true,
              "description": "The blind-copy address(es) for this action."
            },
            "body": {
              "type": "string",
              "description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
            },
            "from": {
              "type": "string",
              "example": "sentFrom@example.com",
              "readOnly": true,
              "description": "The address that the message is from, relevant if the action `type` is `email`."
            },
            "name": {
              "type": "string",
              "example": "Opening Message",
              "readOnly": true,
              "description": "The name of the action, if it exists."
            },
            "type": {
              "enum": [
                "email",
                "in_app",
                "push",
                "twilio",
                "slack"
              ],
              "type": "string",
              "readOnly": true,
              "description": "The type of action."
            },
            "layout": {
              "type": "string",
              "readOnly": true,
              "description": "The layout used for the action, if it exists."
            },
            "created": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1552341937,
              "readOnly": true,
              "description": "The date time when the referenced ID was created."
            },
            "from_id": {
              "type": "integer",
              "example": 1,
              "description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
            },
            "headers": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "example": "X-Mailgun-Tag",
                    "description": "name of header"
                  },
                  "value": {
                    "type": "string",
                    "example": "tag-name-for-tracking",
                    "description": "value of header"
                  }
                }
              },
              "description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
            },
            "subject": {
              "type": "string",
              "example": "Did you get that thing I sent you?",
              "description": "The subject line for an `email` action."
            },
            "updated": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1552341937,
              "readOnly": true,
              "description": "The date time when the referenced ID was last updated."
            },
            "body_amp": {
              "type": "string",
              "description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
            },
            "fake_bcc": {
              "type": "boolean",
              "readOnly": true,
              "description": "If true, rather than sending true copies to BCC addresses, Customer.io sends a copy of the message with the subject line containing the recipient address(es).\n"
            },
            "language": {
              "type": "string",
              "example": "fr",
              "readOnly": true,
              "description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
            },
            "reply_to": {
              "type": "string",
              "example": "replyto@example.com",
              "readOnly": true,
              "description": "The address that receives replies for the message, if applicable."
            },
            "recipient": {
              "type": "string",
              "example": "{{customer.email}}",
              "description": "The recipient address for an action."
            },
            "reply_to_id": {
              "type": "integer",
              "example": 38,
              "nullable": true,
              "description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
            },
            "broadcast_id": {
              "type": "integer",
              "example": 2,
              "readOnly": true,
              "description": "The identifier for a broadcast."
            },
            "preprocessor": {
              "enum": [
                "premailer"
              ],
              "type": "string",
              "readOnly": true,
              "description": "By default, we process CSS before emails leave Customer.io using Premailer. If your message included CSS and pre-processing is not disabled, this key indicates the pre-processor."
            },
            "sending_state": {
              "enum": [
                "automatic",
                "draft",
                "off"
              ],
              "type": "string",
              "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
            },
            "deduplicate_id": {
              "type": "string",
              "example": "15:1492548073",
              "readOnly": true,
              "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
            },
            "preheader_text": {
              "type": "string",
              "description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
            }
          }
        },
        {
          "type": "object",
          "title": "Webhook",
          "properties": {
            "id": {
              "type": "integer",
              "example": 96,
              "nullable": true,
              "readOnly": true,
              "description": "The identifier for an action."
            },
            "url": {
              "type": "string",
              "example": "https://my.example.com/webhook",
              "description": "The URL to send a webhook to, applies to `webhook` type actions."
            },
            "body": {
              "type": "string",
              "description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
            },
            "name": {
              "type": "string",
              "example": "Opening Message",
              "readOnly": true,
              "description": "The name of the action, if it exists."
            },
            "type": {
              "enum": [
                "webhook"
              ],
              "type": "string",
              "readOnly": true,
              "description": "The type of action."
            },
            "layout": {
              "type": "string",
              "readOnly": true,
              "description": "The layout used for the action, if it exists."
            },
            "method": {
              "enum": [
                "get",
                "post",
                "put",
                "delete",
                "patch"
              ],
              "type": "string",
              "example": "post",
              "description": "The HTTP method for your webhook."
            },
            "created": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1552341937,
              "readOnly": true,
              "description": "The date time when the referenced ID was created."
            },
            "headers": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "example": "X-Mailgun-Tag",
                    "description": "name of header"
                  },
                  "value": {
                    "type": "string",
                    "example": "tag-name-for-tracking",
                    "description": "value of header"
                  }
                }
              },
              "description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
            },
            "updated": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1552341937,
              "readOnly": true,
              "description": "The date time when the referenced ID was last updated."
            },
            "broadcast_id": {
              "type": "integer",
              "example": 2,
              "description": "The identifier for a broadcast."
            },
            "sending_state": {
              "enum": [
                "automatic",
                "draft",
                "off"
              ],
              "type": "string",
              "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
            },
            "deduplicate_id": {
              "type": "string",
              "example": "15:1492548073",
              "readOnly": true,
              "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
            }
          }
        }
      ]
    }
  }
}
object BroadcastsGetTriggersResponse
{
  "type": "object",
  "properties": {
    "triggers": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The identifier for a broadcast trigger."
          },
          "created_at": {
            "type": "integer",
            "format": "unix timestamp",
            "example": 1552341937,
            "readOnly": true,
            "description": "The date time when the referenced ID was created."
          },
          "broadcast_id": {
            "type": "integer",
            "example": 2,
            "description": "The identifier for a broadcast."
          },
          "processed_at": {
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date-time when Customer.io processed the trigger."
          }
        },
        "description": "You can get triggers to know when you triggered a broadcast and whether or not it's been processed."
      },
      "description": "Each object in the array represents a time that your broadcast was triggered/sent."
    }
  }
}
object BroadcastsListResponse
{
  "type": "object",
  "properties": {
    "broadcasts": {
      "type": "array",
      "items": {
        "type": "object",
        "example": {
          "id": 2,
          "name": "basic",
          "tags": "nil",
          "type": "triggered_broadcast",
          "active": true,
          "actions": [
            {
              "id": 3,
              "type": "email"
            },
            {
              "id": 4
            },
            {
              "type": "webhook"
            }
          ],
          "created": 1520467200,
          "updated": 1520467200,
          "created_by": "ExamplePerson",
          "first_started": 1520467200,
          "deduplicate_id": "2:1520467200"
        },
        "properties": {
          "id": {
            "type": "integer",
            "example": 2,
            "description": "The identifier for a broadcast."
          },
          "name": {
            "type": "string",
            "readOnly": true,
            "description": "The name of the broadcast."
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "An array of tags you set on this broadcast."
          },
          "active": {
            "type": "boolean",
            "description": "If true, the broadcast is active."
          },
          "actions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "The identifier for the action."
                },
                "type": {
                  "enum": [
                    "email",
                    "webhook",
                    "push",
                    "sms",
                    "slack"
                  ],
                  "type": "string",
                  "description": "The type of action."
                }
              }
            },
            "description": "A list of actions used by the broadcast."
          },
          "created": {
            "type": "integer",
            "format": "unix timestamp",
            "example": 1552341937,
            "readOnly": true,
            "description": "The date time when the referenced ID was created."
          },
          "updated": {
            "type": "integer",
            "format": "unix timestamp",
            "example": 1552341937,
            "readOnly": true,
            "description": "The date time when the referenced ID was last updated."
          },
          "deduplicate_id": {
            "type": "string",
            "example": "15:1492548073",
            "readOnly": true,
            "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
          },
          "msg_template_ids": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "The identifier for the template."
                },
                "type": {
                  "enum": [
                    "email",
                    "webhook",
                    "push",
                    "sms",
                    "slack"
                  ],
                  "type": "string",
                  "description": "The type of template."
                }
              }
            },
            "deprecated": true,
            "description": "Indicates the message template(s) used in this broadcast."
          }
        }
      }
    }
  }
}
object BroadcastsUpdateActionContentsRequest
{
  "oneOf": [
    {
      "type": "object",
      "title": "Email / message",
      "properties": {
        "id": {
          "type": "integer",
          "example": 96,
          "nullable": true,
          "readOnly": true,
          "description": "The identifier for an action."
        },
        "bcc": {
          "type": "string",
          "readOnly": true,
          "description": "The blind-copy address(es) for this action."
        },
        "body": {
          "type": "string",
          "description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
        },
        "from": {
          "type": "string",
          "example": "sentFrom@example.com",
          "readOnly": true,
          "description": "The address that the message is from, relevant if the action `type` is `email`."
        },
        "name": {
          "type": "string",
          "example": "Opening Message",
          "readOnly": true,
          "description": "The name of the action, if it exists."
        },
        "type": {
          "enum": [
            "email",
            "in_app",
            "push",
            "twilio",
            "slack"
          ],
          "type": "string",
          "readOnly": true,
          "description": "The type of action."
        },
        "layout": {
          "type": "string",
          "readOnly": true,
          "description": "The layout used for the action, if it exists."
        },
        "created": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1552341937,
          "readOnly": true,
          "description": "The date time when the referenced ID was created."
        },
        "from_id": {
          "type": "integer",
          "example": 1,
          "description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
        },
        "headers": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "example": "X-Mailgun-Tag",
                "description": "name of header"
              },
              "value": {
                "type": "string",
                "example": "tag-name-for-tracking",
                "description": "value of header"
              }
            }
          },
          "description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
        },
        "subject": {
          "type": "string",
          "example": "Did you get that thing I sent you?",
          "description": "The subject line for an `email` action."
        },
        "updated": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1552341937,
          "readOnly": true,
          "description": "The date time when the referenced ID was last updated."
        },
        "body_amp": {
          "type": "string",
          "description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
        },
        "fake_bcc": {
          "type": "boolean",
          "readOnly": true,
          "description": "If true, rather than sending true copies to BCC addresses, Customer.io sends a copy of the message with the subject line containing the recipient address(es).\n"
        },
        "language": {
          "type": "string",
          "example": "fr",
          "readOnly": true,
          "description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
        },
        "reply_to": {
          "type": "string",
          "example": "replyto@example.com",
          "readOnly": true,
          "description": "The address that receives replies for the message, if applicable."
        },
        "recipient": {
          "type": "string",
          "example": "{{customer.email}}",
          "description": "The recipient address for an action."
        },
        "reply_to_id": {
          "type": "integer",
          "example": 38,
          "nullable": true,
          "description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
        },
        "broadcast_id": {
          "type": "integer",
          "example": 2,
          "readOnly": true,
          "description": "The identifier for a broadcast."
        },
        "preprocessor": {
          "enum": [
            "premailer"
          ],
          "type": "string",
          "readOnly": true,
          "description": "By default, we process CSS before emails leave Customer.io using Premailer. If your message included CSS and pre-processing is not disabled, this key indicates the pre-processor."
        },
        "sending_state": {
          "enum": [
            "automatic",
            "draft",
            "off"
          ],
          "type": "string",
          "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
        },
        "deduplicate_id": {
          "type": "string",
          "example": "15:1492548073",
          "readOnly": true,
          "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
        },
        "preheader_text": {
          "type": "string",
          "description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
        }
      }
    },
    {
      "type": "object",
      "title": "Webhook",
      "properties": {
        "id": {
          "type": "integer",
          "example": 96,
          "nullable": true,
          "readOnly": true,
          "description": "The identifier for an action."
        },
        "url": {
          "type": "string",
          "example": "https://my.example.com/webhook",
          "description": "The URL to send a webhook to, applies to `webhook` type actions."
        },
        "body": {
          "type": "string",
          "description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
        },
        "name": {
          "type": "string",
          "example": "Opening Message",
          "readOnly": true,
          "description": "The name of the action, if it exists."
        },
        "type": {
          "enum": [
            "webhook"
          ],
          "type": "string",
          "readOnly": true,
          "description": "The type of action."
        },
        "layout": {
          "type": "string",
          "readOnly": true,
          "description": "The layout used for the action, if it exists."
        },
        "method": {
          "enum": [
            "get",
            "post",
            "put",
            "delete",
            "patch"
          ],
          "type": "string",
          "example": "post",
          "description": "The HTTP method for your webhook."
        },
        "created": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1552341937,
          "readOnly": true,
          "description": "The date time when the referenced ID was created."
        },
        "headers": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "example": "X-Mailgun-Tag",
                "description": "name of header"
              },
              "value": {
                "type": "string",
                "example": "tag-name-for-tracking",
                "description": "value of header"
              }
            }
          },
          "description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
        },
        "updated": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1552341937,
          "readOnly": true,
          "description": "The date time when the referenced ID was last updated."
        },
        "broadcast_id": {
          "type": "integer",
          "example": 2,
          "description": "The identifier for a broadcast."
        },
        "sending_state": {
          "enum": [
            "automatic",
            "draft",
            "off"
          ],
          "type": "string",
          "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
        },
        "deduplicate_id": {
          "type": "string",
          "example": "15:1492548073",
          "readOnly": true,
          "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
        }
      }
    }
  ]
}
object BroadcastsUpdateActionContentsResponse
{
  "type": "object",
  "properties": {
    "action": {
      "oneOf": [
        {
          "type": "object",
          "title": "Email / message",
          "properties": {
            "id": {
              "type": "integer",
              "example": 96,
              "nullable": true,
              "readOnly": true,
              "description": "The identifier for an action."
            },
            "bcc": {
              "type": "string",
              "readOnly": true,
              "description": "The blind-copy address(es) for this action."
            },
            "body": {
              "type": "string",
              "description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
            },
            "from": {
              "type": "string",
              "example": "sentFrom@example.com",
              "readOnly": true,
              "description": "The address that the message is from, relevant if the action `type` is `email`."
            },
            "name": {
              "type": "string",
              "example": "Opening Message",
              "readOnly": true,
              "description": "The name of the action, if it exists."
            },
            "type": {
              "enum": [
                "email",
                "in_app",
                "push",
                "twilio",
                "slack"
              ],
              "type": "string",
              "readOnly": true,
              "description": "The type of action."
            },
            "layout": {
              "type": "string",
              "readOnly": true,
              "description": "The layout used for the action, if it exists."
            },
            "created": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1552341937,
              "readOnly": true,
              "description": "The date time when the referenced ID was created."
            },
            "from_id": {
              "type": "integer",
              "example": 1,
              "description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
            },
            "headers": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "example": "X-Mailgun-Tag",
                    "description": "name of header"
                  },
                  "value": {
                    "type": "string",
                    "example": "tag-name-for-tracking",
                    "description": "value of header"
                  }
                }
              },
              "description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
            },
            "subject": {
              "type": "string",
              "example": "Did you get that thing I sent you?",
              "description": "The subject line for an `email` action."
            },
            "updated": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1552341937,
              "readOnly": true,
              "description": "The date time when the referenced ID was last updated."
            },
            "body_amp": {
              "type": "string",
              "description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
            },
            "fake_bcc": {
              "type": "boolean",
              "readOnly": true,
              "description": "If true, rather than sending true copies to BCC addresses, Customer.io sends a copy of the message with the subject line containing the recipient address(es).\n"
            },
            "language": {
              "type": "string",
              "example": "fr",
              "readOnly": true,
              "description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
            },
            "reply_to": {
              "type": "string",
              "example": "replyto@example.com",
              "readOnly": true,
              "description": "The address that receives replies for the message, if applicable."
            },
            "recipient": {
              "type": "string",
              "example": "{{customer.email}}",
              "description": "The recipient address for an action."
            },
            "reply_to_id": {
              "type": "integer",
              "example": 38,
              "nullable": true,
              "description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
            },
            "broadcast_id": {
              "type": "integer",
              "example": 2,
              "readOnly": true,
              "description": "The identifier for a broadcast."
            },
            "preprocessor": {
              "enum": [
                "premailer"
              ],
              "type": "string",
              "readOnly": true,
              "description": "By default, we process CSS before emails leave Customer.io using Premailer. If your message included CSS and pre-processing is not disabled, this key indicates the pre-processor."
            },
            "sending_state": {
              "enum": [
                "automatic",
                "draft",
                "off"
              ],
              "type": "string",
              "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
            },
            "deduplicate_id": {
              "type": "string",
              "example": "15:1492548073",
              "readOnly": true,
              "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
            },
            "preheader_text": {
              "type": "string",
              "description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
            }
          }
        },
        {
          "type": "object",
          "title": "Webhook",
          "properties": {
            "id": {
              "type": "integer",
              "example": 96,
              "nullable": true,
              "readOnly": true,
              "description": "The identifier for an action."
            },
            "url": {
              "type": "string",
              "example": "https://my.example.com/webhook",
              "description": "The URL to send a webhook to, applies to `webhook` type actions."
            },
            "body": {
              "type": "string",
              "description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
            },
            "name": {
              "type": "string",
              "example": "Opening Message",
              "readOnly": true,
              "description": "The name of the action, if it exists."
            },
            "type": {
              "enum": [
                "webhook"
              ],
              "type": "string",
              "readOnly": true,
              "description": "The type of action."
            },
            "layout": {
              "type": "string",
              "readOnly": true,
              "description": "The layout used for the action, if it exists."
            },
            "method": {
              "enum": [
                "get",
                "post",
                "put",
                "delete",
                "patch"
              ],
              "type": "string",
              "example": "post",
              "description": "The HTTP method for your webhook."
            },
            "created": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1552341937,
              "readOnly": true,
              "description": "The date time when the referenced ID was created."
            },
            "headers": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "example": "X-Mailgun-Tag",
                    "description": "name of header"
                  },
                  "value": {
                    "type": "string",
                    "example": "tag-name-for-tracking",
                    "description": "value of header"
                  }
                }
              },
              "description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
            },
            "updated": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1552341937,
              "readOnly": true,
              "description": "The date time when the referenced ID was last updated."
            },
            "broadcast_id": {
              "type": "integer",
              "example": 2,
              "description": "The identifier for a broadcast."
            },
            "sending_state": {
              "enum": [
                "automatic",
                "draft",
                "off"
              ],
              "type": "string",
              "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
            },
            "deduplicate_id": {
              "type": "string",
              "example": "15:1492548073",
              "readOnly": true,
              "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
            }
          }
        }
      ]
    }
  }
}
object BroadcastsUpdateTranslationRequest
{
  "oneOf": [
    {
      "type": "object",
      "title": "Email / message",
      "properties": {
        "id": {
          "type": "integer",
          "example": 96,
          "nullable": true,
          "readOnly": true,
          "description": "The identifier for an action."
        },
        "bcc": {
          "type": "string",
          "readOnly": true,
          "description": "The blind-copy address(es) for this action."
        },
        "body": {
          "type": "string",
          "description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
        },
        "from": {
          "type": "string",
          "example": "sentFrom@example.com",
          "readOnly": true,
          "description": "The address that the message is from, relevant if the action `type` is `email`."
        },
        "name": {
          "type": "string",
          "example": "Opening Message",
          "readOnly": true,
          "description": "The name of the action, if it exists."
        },
        "type": {
          "enum": [
            "email",
            "in_app",
            "push",
            "twilio",
            "slack"
          ],
          "type": "string",
          "readOnly": true,
          "description": "The type of action."
        },
        "layout": {
          "type": "string",
          "readOnly": true,
          "description": "The layout used for the action, if it exists."
        },
        "created": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1552341937,
          "readOnly": true,
          "description": "The date time when the referenced ID was created."
        },
        "from_id": {
          "type": "integer",
          "example": 1,
          "description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
        },
        "headers": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "example": "X-Mailgun-Tag",
                "description": "name of header"
              },
              "value": {
                "type": "string",
                "example": "tag-name-for-tracking",
                "description": "value of header"
              }
            }
          },
          "description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
        },
        "subject": {
          "type": "string",
          "example": "Did you get that thing I sent you?",
          "description": "The subject line for an `email` action."
        },
        "updated": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1552341937,
          "readOnly": true,
          "description": "The date time when the referenced ID was last updated."
        },
        "body_amp": {
          "type": "string",
          "description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
        },
        "fake_bcc": {
          "type": "boolean",
          "readOnly": true,
          "description": "If true, rather than sending true copies to BCC addresses, Customer.io sends a copy of the message with the subject line containing the recipient address(es).\n"
        },
        "language": {
          "type": "string",
          "example": "fr",
          "readOnly": true,
          "description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
        },
        "reply_to": {
          "type": "string",
          "example": "replyto@example.com",
          "readOnly": true,
          "description": "The address that receives replies for the message, if applicable."
        },
        "recipient": {
          "type": "string",
          "example": "{{customer.email}}",
          "description": "The recipient address for an action."
        },
        "reply_to_id": {
          "type": "integer",
          "example": 38,
          "nullable": true,
          "description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
        },
        "broadcast_id": {
          "type": "integer",
          "example": 2,
          "readOnly": true,
          "description": "The identifier for a broadcast."
        },
        "preprocessor": {
          "enum": [
            "premailer"
          ],
          "type": "string",
          "readOnly": true,
          "description": "By default, we process CSS before emails leave Customer.io using Premailer. If your message included CSS and pre-processing is not disabled, this key indicates the pre-processor."
        },
        "sending_state": {
          "enum": [
            "automatic",
            "draft",
            "off"
          ],
          "type": "string",
          "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
        },
        "deduplicate_id": {
          "type": "string",
          "example": "15:1492548073",
          "readOnly": true,
          "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
        },
        "preheader_text": {
          "type": "string",
          "description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
        }
      }
    },
    {
      "type": "object",
      "title": "Webhook",
      "properties": {
        "id": {
          "type": "integer",
          "example": 96,
          "nullable": true,
          "readOnly": true,
          "description": "The identifier for an action."
        },
        "url": {
          "type": "string",
          "example": "https://my.example.com/webhook",
          "description": "The URL to send a webhook to, applies to `webhook` type actions."
        },
        "body": {
          "type": "string",
          "description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
        },
        "name": {
          "type": "string",
          "example": "Opening Message",
          "readOnly": true,
          "description": "The name of the action, if it exists."
        },
        "type": {
          "enum": [
            "webhook"
          ],
          "type": "string",
          "readOnly": true,
          "description": "The type of action."
        },
        "layout": {
          "type": "string",
          "readOnly": true,
          "description": "The layout used for the action, if it exists."
        },
        "method": {
          "enum": [
            "get",
            "post",
            "put",
            "delete",
            "patch"
          ],
          "type": "string",
          "example": "post",
          "description": "The HTTP method for your webhook."
        },
        "created": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1552341937,
          "readOnly": true,
          "description": "The date time when the referenced ID was created."
        },
        "headers": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "example": "X-Mailgun-Tag",
                "description": "name of header"
              },
              "value": {
                "type": "string",
                "example": "tag-name-for-tracking",
                "description": "value of header"
              }
            }
          },
          "description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
        },
        "updated": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1552341937,
          "readOnly": true,
          "description": "The date time when the referenced ID was last updated."
        },
        "broadcast_id": {
          "type": "integer",
          "example": 2,
          "description": "The identifier for a broadcast."
        },
        "sending_state": {
          "enum": [
            "automatic",
            "draft",
            "off"
          ],
          "type": "string",
          "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
        },
        "deduplicate_id": {
          "type": "string",
          "example": "15:1492548073",
          "readOnly": true,
          "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
        }
      }
    }
  ]
}
object BroadcastsUpdateTranslationResponse
{
  "type": "object",
  "properties": {
    "action": {
      "oneOf": [
        {
          "type": "object",
          "title": "Email / message",
          "properties": {
            "id": {
              "type": "integer",
              "example": 96,
              "nullable": true,
              "readOnly": true,
              "description": "The identifier for an action."
            },
            "bcc": {
              "type": "string",
              "readOnly": true,
              "description": "The blind-copy address(es) for this action."
            },
            "body": {
              "type": "string",
              "description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
            },
            "from": {
              "type": "string",
              "example": "sentFrom@example.com",
              "readOnly": true,
              "description": "The address that the message is from, relevant if the action `type` is `email`."
            },
            "name": {
              "type": "string",
              "example": "Opening Message",
              "readOnly": true,
              "description": "The name of the action, if it exists."
            },
            "type": {
              "enum": [
                "email",
                "in_app",
                "push",
                "twilio",
                "slack"
              ],
              "type": "string",
              "readOnly": true,
              "description": "The type of action."
            },
            "layout": {
              "type": "string",
              "readOnly": true,
              "description": "The layout used for the action, if it exists."
            },
            "created": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1552341937,
              "readOnly": true,
              "description": "The date time when the referenced ID was created."
            },
            "from_id": {
              "type": "integer",
              "example": 1,
              "description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
            },
            "headers": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "example": "X-Mailgun-Tag",
                    "description": "name of header"
                  },
                  "value": {
                    "type": "string",
                    "example": "tag-name-for-tracking",
                    "description": "value of header"
                  }
                }
              },
              "description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
            },
            "subject": {
              "type": "string",
              "example": "Did you get that thing I sent you?",
              "description": "The subject line for an `email` action."
            },
            "updated": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1552341937,
              "readOnly": true,
              "description": "The date time when the referenced ID was last updated."
            },
            "body_amp": {
              "type": "string",
              "description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
            },
            "fake_bcc": {
              "type": "boolean",
              "readOnly": true,
              "description": "If true, rather than sending true copies to BCC addresses, Customer.io sends a copy of the message with the subject line containing the recipient address(es).\n"
            },
            "language": {
              "type": "string",
              "example": "fr",
              "readOnly": true,
              "description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
            },
            "reply_to": {
              "type": "string",
              "example": "replyto@example.com",
              "readOnly": true,
              "description": "The address that receives replies for the message, if applicable."
            },
            "recipient": {
              "type": "string",
              "example": "{{customer.email}}",
              "description": "The recipient address for an action."
            },
            "reply_to_id": {
              "type": "integer",
              "example": 38,
              "nullable": true,
              "description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
            },
            "broadcast_id": {
              "type": "integer",
              "example": 2,
              "readOnly": true,
              "description": "The identifier for a broadcast."
            },
            "preprocessor": {
              "enum": [
                "premailer"
              ],
              "type": "string",
              "readOnly": true,
              "description": "By default, we process CSS before emails leave Customer.io using Premailer. If your message included CSS and pre-processing is not disabled, this key indicates the pre-processor."
            },
            "sending_state": {
              "enum": [
                "automatic",
                "draft",
                "off"
              ],
              "type": "string",
              "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
            },
            "deduplicate_id": {
              "type": "string",
              "example": "15:1492548073",
              "readOnly": true,
              "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
            },
            "preheader_text": {
              "type": "string",
              "description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
            }
          }
        },
        {
          "type": "object",
          "title": "Webhook",
          "properties": {
            "id": {
              "type": "integer",
              "example": 96,
              "nullable": true,
              "readOnly": true,
              "description": "The identifier for an action."
            },
            "url": {
              "type": "string",
              "example": "https://my.example.com/webhook",
              "description": "The URL to send a webhook to, applies to `webhook` type actions."
            },
            "body": {
              "type": "string",
              "description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
            },
            "name": {
              "type": "string",
              "example": "Opening Message",
              "readOnly": true,
              "description": "The name of the action, if it exists."
            },
            "type": {
              "enum": [
                "webhook"
              ],
              "type": "string",
              "readOnly": true,
              "description": "The type of action."
            },
            "layout": {
              "type": "string",
              "readOnly": true,
              "description": "The layout used for the action, if it exists."
            },
            "method": {
              "enum": [
                "get",
                "post",
                "put",
                "delete",
                "patch"
              ],
              "type": "string",
              "example": "post",
              "description": "The HTTP method for your webhook."
            },
            "created": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1552341937,
              "readOnly": true,
              "description": "The date time when the referenced ID was created."
            },
            "headers": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "example": "X-Mailgun-Tag",
                    "description": "name of header"
                  },
                  "value": {
                    "type": "string",
                    "example": "tag-name-for-tracking",
                    "description": "value of header"
                  }
                }
              },
              "description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
            },
            "updated": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1552341937,
              "readOnly": true,
              "description": "The date time when the referenced ID was last updated."
            },
            "broadcast_id": {
              "type": "integer",
              "example": 2,
              "description": "The identifier for a broadcast."
            },
            "sending_state": {
              "enum": [
                "automatic",
                "draft",
                "off"
              ],
              "type": "string",
              "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
            },
            "deduplicate_id": {
              "type": "string",
              "example": "15:1492548073",
              "readOnly": true,
              "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
            }
          }
        }
      ]
    }
  }
}
object CampaignsGetActionInfoResponse
{
  "type": "object",
  "properties": {
    "action": {
      "oneOf": [
        {
          "type": "object",
          "title": "Email / message",
          "properties": {
            "id": {
              "type": "integer",
              "example": 96,
              "nullable": true,
              "readOnly": true,
              "description": "The identifier for an action."
            },
            "bcc": {
              "type": "string",
              "readOnly": true,
              "description": "The blind-copy address(es) for this action."
            },
            "body": {
              "type": "string",
              "description": "The body of the action. For emails, this is the HTML-body of a message. You cannot modify the body if you created it with our drag-and-drop editor."
            },
            "from": {
              "type": "string",
              "example": "sentFrom@example.com",
              "readOnly": true,
              "description": "The address that the message is from, relevant if the action `type` is `email`."
            },
            "name": {
              "type": "string",
              "example": "Opening Message",
              "readOnly": true,
              "description": "The name of the action, if it exists."
            },
            "type": {
              "enum": [
                "email",
                "in_app",
                "push",
                "twilio",
                "slack"
              ],
              "type": "string",
              "readOnly": true,
              "description": "The type of action."
            },
            "layout": {
              "type": "string",
              "readOnly": true,
              "description": "The layout used for the action, if it exists."
            },
            "created": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1552341937,
              "readOnly": true,
              "description": "The date time when the referenced ID was created."
            },
            "from_id": {
              "type": "integer",
              "example": 1,
              "description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
            },
            "headers": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "example": "X-Mailgun-Tag",
                    "description": "name of header"
                  },
                  "value": {
                    "type": "string",
                    "example": "tag-name-for-tracking",
                    "description": "value of header"
                  }
                }
              },
              "description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
            },
            "subject": {
              "type": "string",
              "example": "Did you get that thing I sent you?",
              "description": "The subject line for an `email` action."
            },
            "updated": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1552341937,
              "readOnly": true,
              "description": "The date time when the referenced ID was last updated."
            },
            "body_amp": {
              "type": "string",
              "description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
            },
            "fake_bcc": {
              "type": "boolean",
              "readOnly": true,
              "description": "If true, rather than sending true copies to BCC addresses, Customer.io sends a copy of the message with the subject line containing the recipient address(es).\n"
            },
            "language": {
              "type": "string",
              "example": "fr",
              "readOnly": true,
              "description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
            },
            "reply_to": {
              "type": "string",
              "example": "replyto@example.com",
              "readOnly": true,
              "description": "The address that receives replies for the message, if applicable."
            },
            "recipient": {
              "type": "string",
              "example": "{{customer.email}}",
              "description": "The recipient address for an action."
            },
            "campaign_id": {
              "type": "integer",
              "example": 5,
              "readOnly": true,
              "description": "The identifier for a campaign."
            },
            "reply_to_id": {
              "type": "integer",
              "example": 38,
              "nullable": true,
              "description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
            },
            "preprocessor": {
              "enum": [
                "premailer"
              ],
              "type": "string",
              "readOnly": true,
              "description": "By default, we process CSS before emails leave Customer.io using Premailer. If your message included CSS and pre-processing is not disabled, this key indicates the pre-processor."
            },
            "sending_state": {
              "enum": [
                "automatic",
                "draft",
                "off"
              ],
              "type": "string",
              "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
            },
            "deduplicate_id": {
              "type": "string",
              "example": "15:1492548073",
              "readOnly": true,
              "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
            },
            "preheader_text": {
              "type": "string",
              "description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
            },
            "parent_action_id": {
              "type": "integer",
              "example": 1,
              "readOnly": true,
              "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
            }
          }
        },
        {
          "type": "object",
          "title": "Webhook",
          "properties": {
            "id": {
              "type": "integer",
              "example": 96,
              "nullable": true,
              "readOnly": true,
              "description": "The identifier for an action."
            },
            "url": {
              "type": "string",
              "example": "https://my.example.com/webhook",
              "description": "The URL to send a webhook to, applies to `webhook` type actions."
            },
            "body": {
              "type": "string",
              "example": "{\"attribute\":\"cool-webhook\"}",
              "description": "The payload for your webhook."
            },
            "name": {
              "type": "string",
              "example": "Set attribute",
              "readOnly": true,
              "description": "The name of the action, if it exists."
            },
            "type": {
              "enum": [
                "webhook"
              ],
              "type": "string",
              "readOnly": true,
              "description": "The type of action."
            },
            "layout": {
              "type": "string",
              "readOnly": true,
              "description": "The layout used for the action, if it exists."
            },
            "method": {
              "enum": [
                "get",
                "post",
                "put",
                "delete",
                "patch"
              ],
              "type": "string",
              "example": "post",
              "description": "The HTTP method for your webhook."
            },
            "created": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1552341937,
              "readOnly": true,
              "description": "The date time when the referenced ID was created."
            },
            "headers": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "example": "X-Mailgun-Tag",
                    "description": "name of header"
                  },
                  "value": {
                    "type": "string",
                    "example": "tag-name-for-tracking",
                    "description": "value of header"
                  }
                }
              },
              "description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
            },
            "updated": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1552341937,
              "readOnly": true,
              "description": "The date time when the referenced ID was last updated."
            },
            "campaign_id": {
              "type": "integer",
              "example": 5,
              "description": "The identifier for a campaign."
            },
            "sending_state": {
              "enum": [
                "automatic",
                "draft",
                "off"
              ],
              "type": "string",
              "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
            },
            "deduplicate_id": {
              "type": "string",
              "example": "15:1492548073",
              "readOnly": true,
              "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
            },
            "parent_action_id": {
              "type": "integer",
              "example": 1,
              "readOnly": true,
              "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
            }
          }
        }
      ]
    }
  }
}
object CampaignsGetActionMetricsResponse
{
  "type": "object",
  "properties": {
    "metric": {
      "type": "object",
      "properties": {
        "series": {
          "allOf": [
            {
              "type": "object",
              "properties": {
                "2xx": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "2xx responses by period, representative of webhook performance."
                },
                "3xx": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "3xx responses by period, representative of webhook performance."
                },
                "4xx": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "4xx responses by period, representative of webhook performance."
                },
                "5xx": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "5xx responses by period, representative of webhook performance."
                }
              },
              "description": "Returns metrics in accordance with the `period` you requested. Each property in this object is an array and each entry in the array represents a metric period, i.e. if your `period` is days `[0, 1]` would represent 0 metrics for the first day, 1 for the second, etc."
            },
            {
              "type": "object",
              "properties": {
                "sent": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of sent messages."
                },
                "failed": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `failed` messages."
                },
                "opened": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `opened` messages."
                },
                "bounced": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `bounced` messages."
                },
                "clicked": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `clicked` messages."
                },
                "created": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `created` messages."
                },
                "drafted": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `drafted` messages."
                },
                "spammed": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of spam complaints."
                },
                "deferred": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `deferred` messages."
                },
                "attempted": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `attempted` messages."
                },
                "converted": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `converted` messages."
                },
                "delivered": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `delivered` messages."
                },
                "suppressed": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `suppressed` messages."
                },
                "unsubscribed": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of unsubscribes attributed to the campaign or message."
                },
                "undeliverable": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `undeliverable` messages."
                },
                "topic_unsubscribed": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of topic unsubscribes in a given period."
                }
              },
              "description": "Returns metrics in accordance with the `period` you requested. Each property in this object is an array and each entry in the array represents a metric period, i.e. if your `period` is days `[0, 1]` would represent 0 metrics for the first day, 1 for the second, etc."
            }
          ]
        }
      }
    }
  }
}
object CampaignsGetJourneyMetricsResponse
{
  "type": "object",
  "properties": {
    "journey_metric": {
      "type": "object",
      "properties": {
        "started": {
          "type": "array",
          "items": {
            "type": "integer"
          },
          "description": "The total number of people who meet the trigger criteria for a journey. This count occurs before filters are applied."
        },
        "finished": {
          "type": "array",
          "items": {
            "type": "integer"
          },
          "description": "People who finished the journey."
        },
        "messaged": {
          "type": "array",
          "items": {
            "type": "integer"
          },
          "description": "People who experienced at least one non-delay action in the journey. This metric typically represents journeys in progress."
        },
        "activated": {
          "type": "array",
          "items": {
            "type": "integer"
          },
          "description": "People who started a journey and were not filtered out before they experienced an action."
        },
        "converted": {
          "type": "array",
          "items": {
            "type": "integer"
          },
          "description": "People who met the conversion goal (entered a segment) for the campaign."
        },
        "exited_early": {
          "type": "array",
          "items": {
            "type": "integer"
          },
          "description": "People who started a journey but stopped meeting the campaign trigger/filter criteria following a delay or grace period."
        },
        "never_activated": {
          "type": "array",
          "items": {
            "type": "integer"
          },
          "description": "People who started a journey but were filtered out before they could experience any of the actions in the journey."
        }
      }
    }
  }
}
object CampaignsGetLinkMetricsForActionResponse
{
  "type": "object",
  "properties": {
    "links": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "link": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "example": 1234,
                "description": "The ID of the link."
              },
              "href": {
                "type": "string",
                "example": "https://customer.io/docs",
                "description": "The link destination—a URL, mailto, etc."
              }
            }
          },
          "metric": {
            "type": "object",
            "properties": {
              "series": {
                "type": "object",
                "properties": {
                  "clicked": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "example": [
                      1,
                      3,
                      5,
                      7
                    ],
                    "description": "An array of results from oldest to newest, where each result indicates a period."
                  }
                }
              }
            },
            "description": "Contains metrics for the link."
          }
        }
      },
      "description": "Each object in the array represents a link in your action."
    }
  }
}
object CampaignsGetLinkMetricsResponse
{
  "type": "object",
  "properties": {
    "links": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "link": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "example": 1234,
                "description": "The ID of the link."
              },
              "href": {
                "type": "string",
                "example": "https://customer.io/docs",
                "description": "The link destination—a URL, mailto, etc."
              }
            }
          },
          "metric": {
            "type": "object",
            "properties": {
              "series": {
                "type": "object",
                "properties": {
                  "clicked": {
                    "type": "array",
                    "items": {
                      "type": "integer"
                    },
                    "example": [
                      1,
                      3,
                      5,
                      7
                    ],
                    "description": "An array of results from oldest to newest, where each result indicates a period."
                  }
                }
              }
            },
            "description": "Contains metrics for the link."
          }
        }
      }
    }
  }
}
object CampaignsGetListResponse
{
  "type": "object",
  "properties": {
    "campaigns": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "example": 5,
            "description": "The identifier for a campaign."
          },
          "name": {
            "type": "string",
            "readOnly": true,
            "description": "The name of the campaign."
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "example": [
              "new",
              "welcome"
            ],
            "description": "An array of tags you set on this campaign."
          },
          "type": {
            "enum": [
              "segment"
            ],
            "type": "string",
            "description": "The type of campaign."
          },
          "active": {
            "type": "boolean",
            "description": "If true, the campaign is active and can still send messages."
          },
          "actions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "The identifier for the action."
                },
                "type": {
                  "enum": [
                    "email",
                    "sms",
                    "push",
                    "slack",
                    "webhook"
                  ],
                  "type": "string",
                  "description": "The message type actions resulting from the campaign."
                }
              }
            },
            "description": "An array of actions contained within the campaign."
          },
          "created": {
            "type": "integer",
            "format": "unix timestamp",
            "example": 1552341937,
            "readOnly": true,
            "description": "The date time when the referenced ID was created."
          },
          "updated": {
            "type": "integer",
            "format": "unix timestamp",
            "example": 1552341937,
            "readOnly": true,
            "description": "The date time when the referenced ID was last updated."
          },
          "created_by": {
            "type": "string",
            "format": "email",
            "example": "hugh.mann@example.com",
            "description": "The email address of the person who created the campaign."
          },
          "first_started": {
            "type": "integer",
            "format": "unix timestamp",
            "example": 1552341937,
            "description": "The date and time when you first started the campaign and it first became eligible to be triggered."
          },
          "msg_templates": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "The identifier for the template."
                },
                "type": {
                  "enum": [
                    "email",
                    "sms",
                    "push",
                    "slack"
                  ],
                  "type": "string",
                  "description": "The message type the template represents."
                }
              }
            },
            "deprecated": true,
            "description": "Indicates the message templates used in this campaign."
          },
          "deduplicate_id": {
            "type": "string",
            "example": "15:1492548073",
            "readOnly": true,
            "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
          },
          "filter_segment_ids": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "example": [
              21,
              42
            ],
            "description": "A list of segments used in the campaign filter, returned if the campaign audience was filtered on one or more segments."
          },
          "trigger_segment_ids": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "example": [
              90
            ],
            "description": "A list of segments used in the campaign trigger, returned if the campaign trigger included one or more segment conditions."
          }
        }
      }
    }
  }
}
object CampaignsGetMessageMetadataResponse
{
  "type": "object",
  "properties": {
    "messages": {
      "type": "array",
      "items": {
        "type": "object",
        "example": {
          "id": "ag1q6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=X",
          "type": "email",
          "created": 1619137767,
          "metrics": {
            "sent": 1619137768,
            "delivered": 1619137768
          },
          "subject": "Did you get that thing I sent you?",
          "action_id": 215,
          "forgotten": false,
          "recipient": "person@example.com",
          "content_id": null,
          "campaign_id": 23,
          "customer_id": null,
          "broadcast_id": null,
          "newsletter_id": null,
          "deduplicate_id": "ag1q6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=:1619137768",
          "failure_message": null,
          "msg_template_id": 43,
          "parent_action_id": null,
          "trigger_event_id": null
        },
        "properties": {
          "id": {
            "type": "string",
            "example": "dgOq6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=",
            "readOnly": true,
            "description": "The identifier for a delivery—the instance of a message intended for an individual recipient."
          },
          "type": {
            "enum": [
              "email",
              "webhook",
              "twilio",
              "slack",
              "push"
            ],
            "type": "string",
            "example": "email",
            "readOnly": true,
            "description": "The type of message/action."
          },
          "created": {
            "type": "integer",
            "format": "unix timestamp",
            "example": 1552341937,
            "readOnly": true,
            "description": "The date time when the referenced ID was created."
          },
          "metrics": {
            "type": "object",
            "properties": {
              "sent": {
                "type": "integer",
                "description": "The timestamp when the message was `sent`."
              },
              "failed": {
                "type": "integer",
                "description": "The timestamp when the message `failed`."
              },
              "opened": {
                "type": "integer",
                "description": "The timestamp when the message was `opened`."
              },
              "bounced": {
                "type": "integer",
                "description": "The timestamp when the message `bounced`."
              },
              "clicked": {
                "type": "integer",
                "description": "The timestamp when the message was `clicked`."
              },
              "created": {
                "type": "integer",
                "description": "The timestamp when the message was `created`."
              },
              "drafted": {
                "type": "integer",
                "description": "The timestamp when the message was `drafted`."
              },
              "dropped": {
                "type": "integer",
                "description": "The timestamp when the message was `dropped`."
              },
              "spammed": {
                "type": "integer",
                "description": "The timestamp when the message was marked as spam."
              },
              "converted": {
                "type": "integer",
                "description": "The timestamp when the message was `converted`."
              },
              "delivered": {
                "type": "integer",
                "description": "The timestamp when the message was `delivered`."
              },
              "unsubscribed": {
                "type": "integer",
                "description": "The timestamp when a person unsubscribed based on this message."
              },
              "undeliverable": {
                "type": "integer",
                "description": "The timestamp when the message became `undeliverable`."
              }
            },
            "description": "Metrics for an individual instance of a message; each item in the object represents the timestamp when a message achieved a particular metric. This object only contains metrics that have been recorded."
          },
          "subject": {
            "type": "string",
            "example": "Did you get that thing I sent you?",
            "description": "The subject line for an `email` action."
          },
          "action_id": {
            "type": "integer",
            "example": 96,
            "nullable": true,
            "readOnly": true,
            "description": "The identifier for an action."
          },
          "forgotten": {
            "type": "boolean",
            "description": "If true message contents are not retained by Customer.io."
          },
          "recipient": {
            "type": "string",
            "example": "{{customer.email}}",
            "description": "The recipient address for an action."
          },
          "content_id": {
            "type": "integer",
            "example": 1,
            "nullable": true,
            "readOnly": true,
            "description": "The identifier for a newsletter variant."
          },
          "campaign_id": {
            "type": "integer",
            "example": 5,
            "nullable": true,
            "description": "The identifier for a campaign."
          },
          "customer_id": {
            "type": "string",
            "example": "42",
            "nullable": true,
            "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
          },
          "broadcast_id": {
            "type": "integer",
            "example": 2,
            "nullable": true,
            "description": "The identifier for a broadcast."
          },
          "newsletter_id": {
            "type": "integer",
            "example": 10,
            "nullable": true,
            "description": "The identifier for a newsletter."
          },
          "deduplicate_id": {
            "type": "string",
            "example": "15:1492548073",
            "readOnly": true,
            "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
          },
          "failure_message": {
            "type": "string",
            "nullable": true,
            "description": "Explains why a message failed, if applicable."
          },
          "parent_action_id": {
            "type": "integer",
            "example": 1,
            "readOnly": true,
            "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
          },
          "trigger_event_id": {
            "type": "string",
            "example": "21E4C3CT6YDC7Y4N7FE1GWWABC",
            "nullable": true,
            "description": "The id of the event that triggered an event-triggered campaign (not an API-triggered broadcast)."
          },
          "message_template_id": {
            "type": "integer",
            "readOnly": true,
            "deprecated": true,
            "description": "The identifier of the message template used to create a message."
          },
          "customer_identifiers": {
            "type": "object",
            "required": [
              "email",
              "id",
              "cio_id"
            ],
            "properties": {
              "id": {
                "type": "string",
                "example": 2,
                "nullable": true,
                "description": "A person's unique ID, if set. This is the same as the `customer_id` if present."
              },
              "email": {
                "type": "string",
                "format": "email",
                "example": "test@example.com",
                "nullable": true,
                "description": "A person's email address, if set."
              },
              "cio_id": {
                "type": "string",
                "example": "a3000001",
                "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
              }
            },
            "description": "Contains identifiers for the person represented in a response—`id`, `cio_id`, and `email` (if your workspace uses the *Email or ID* setting). If the person's `id` or `email` is not set, the value will be null.\n\nWe recommend that you use this object rather than the less descriptive `customer_id`.\n"
          }
        },
        "description": "Describes an individual message delivery. The object contains keys for all possible parents of the message (`newsletter_id`, `broadcast_id`, etc) but only the parents of the delivery are populated. Other parent IDs are null."
      },
      "example": [
        {
          "id": "dgOq6QWq6QUDAAF22PaOyFVqVxHY3rI5fsg=X",
          "type": "email",
          "created": 1609957805,
          "metrics": {
            "sent": 1609957832,
            "delivered": 1609957872
          },
          "subject": "Did you get that thing I sent you?",
          "action_id": 196,
          "forgotten": false,
          "recipient": "person@email.com",
          "content_id": null,
          "campaign_id": 89,
          "customer_id": "1a55d8d1-b13d-4f1f-858f-a93ef21e3a7d",
          "broadcast_id": null,
          "newsletter_id": null,
          "deduplicate_id": "dgOq6QWq6QUDAAF22PaOyFVqVxHY3rI5fsg=:1609957872",
          "failure_message": null,
          "msg_template_id": 0,
          "customer_identifiers": {
            "id": "1a55d8d1-b13d-4f1f-858f-a93ef21e3a7dX",
            "email": "person@example.com",
            "cio_id": 786433
          }
        }
      ]
    }
  }
}
object CampaignsGetMessageTranslationResponse
{
  "type": "object",
  "properties": {
    "action": {
      "oneOf": [
        {
          "type": "object",
          "title": "Email / message",
          "properties": {
            "id": {
              "type": "integer",
              "example": 96,
              "nullable": true,
              "readOnly": true,
              "description": "The identifier for an action."
            },
            "bcc": {
              "type": "string",
              "readOnly": true,
              "description": "The blind-copy address(es) for this action."
            },
            "body": {
              "type": "string",
              "description": "The body of the action. For emails, this is the HTML-body of a message. You cannot modify the body if you created it with our drag-and-drop editor."
            },
            "from": {
              "type": "string",
              "example": "sentFrom@example.com",
              "readOnly": true,
              "description": "The address that the message is from, relevant if the action `type` is `email`."
            },
            "name": {
              "type": "string",
              "example": "Opening Message",
              "readOnly": true,
              "description": "The name of the action, if it exists."
            },
            "type": {
              "enum": [
                "email",
                "in_app",
                "push",
                "twilio",
                "slack"
              ],
              "type": "string",
              "readOnly": true,
              "description": "The type of action."
            },
            "layout": {
              "type": "string",
              "readOnly": true,
              "description": "The layout used for the action, if it exists."
            },
            "created": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1552341937,
              "readOnly": true,
              "description": "The date time when the referenced ID was created."
            },
            "from_id": {
              "type": "integer",
              "example": 1,
              "description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
            },
            "headers": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "example": "X-Mailgun-Tag",
                    "description": "name of header"
                  },
                  "value": {
                    "type": "string",
                    "example": "tag-name-for-tracking",
                    "description": "value of header"
                  }
                }
              },
              "description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
            },
            "subject": {
              "type": "string",
              "example": "Did you get that thing I sent you?",
              "description": "The subject line for an `email` action."
            },
            "updated": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1552341937,
              "readOnly": true,
              "description": "The date time when the referenced ID was last updated."
            },
            "body_amp": {
              "type": "string",
              "description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
            },
            "fake_bcc": {
              "type": "boolean",
              "readOnly": true,
              "description": "If true, rather than sending true copies to BCC addresses, Customer.io sends a copy of the message with the subject line containing the recipient address(es).\n"
            },
            "language": {
              "type": "string",
              "example": "fr",
              "readOnly": true,
              "description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
            },
            "reply_to": {
              "type": "string",
              "example": "replyto@example.com",
              "readOnly": true,
              "description": "The address that receives replies for the message, if applicable."
            },
            "recipient": {
              "type": "string",
              "example": "{{customer.email}}",
              "description": "The recipient address for an action."
            },
            "campaign_id": {
              "type": "integer",
              "example": 5,
              "readOnly": true,
              "description": "The identifier for a campaign."
            },
            "reply_to_id": {
              "type": "integer",
              "example": 38,
              "nullable": true,
              "description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
            },
            "preprocessor": {
              "enum": [
                "premailer"
              ],
              "type": "string",
              "readOnly": true,
              "description": "By default, we process CSS before emails leave Customer.io using Premailer. If your message included CSS and pre-processing is not disabled, this key indicates the pre-processor."
            },
            "sending_state": {
              "enum": [
                "automatic",
                "draft",
                "off"
              ],
              "type": "string",
              "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
            },
            "deduplicate_id": {
              "type": "string",
              "example": "15:1492548073",
              "readOnly": true,
              "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
            },
            "preheader_text": {
              "type": "string",
              "description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
            },
            "parent_action_id": {
              "type": "integer",
              "example": 1,
              "readOnly": true,
              "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
            }
          }
        },
        {
          "type": "object",
          "title": "Webhook",
          "properties": {
            "id": {
              "type": "integer",
              "example": 96,
              "nullable": true,
              "readOnly": true,
              "description": "The identifier for an action."
            },
            "url": {
              "type": "string",
              "example": "https://my.example.com/webhook",
              "description": "The URL to send a webhook to, applies to `webhook` type actions."
            },
            "body": {
              "type": "string",
              "example": "{\"attribute\":\"cool-webhook\"}",
              "description": "The payload for your webhook."
            },
            "name": {
              "type": "string",
              "example": "Set attribute",
              "readOnly": true,
              "description": "The name of the action, if it exists."
            },
            "type": {
              "enum": [
                "webhook"
              ],
              "type": "string",
              "readOnly": true,
              "description": "The type of action."
            },
            "layout": {
              "type": "string",
              "readOnly": true,
              "description": "The layout used for the action, if it exists."
            },
            "method": {
              "enum": [
                "get",
                "post",
                "put",
                "delete",
                "patch"
              ],
              "type": "string",
              "example": "post",
              "description": "The HTTP method for your webhook."
            },
            "created": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1552341937,
              "readOnly": true,
              "description": "The date time when the referenced ID was created."
            },
            "headers": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "example": "X-Mailgun-Tag",
                    "description": "name of header"
                  },
                  "value": {
                    "type": "string",
                    "example": "tag-name-for-tracking",
                    "description": "value of header"
                  }
                }
              },
              "description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
            },
            "updated": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1552341937,
              "readOnly": true,
              "description": "The date time when the referenced ID was last updated."
            },
            "campaign_id": {
              "type": "integer",
              "example": 5,
              "description": "The identifier for a campaign."
            },
            "sending_state": {
              "enum": [
                "automatic",
                "draft",
                "off"
              ],
              "type": "string",
              "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
            },
            "deduplicate_id": {
              "type": "string",
              "example": "15:1492548073",
              "readOnly": true,
              "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
            },
            "parent_action_id": {
              "type": "integer",
              "example": 1,
              "readOnly": true,
              "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
            }
          }
        }
      ]
    }
  }
}
object CampaignsGetMetadataResponse
{
  "type": "object",
  "properties": {
    "campaign": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "example": 5,
          "description": "The identifier for a campaign."
        },
        "name": {
          "type": "string",
          "readOnly": true,
          "description": "The name of the campaign."
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [
            "new",
            "welcome"
          ],
          "description": "An array of tags you set on this campaign."
        },
        "type": {
          "enum": [
            "segment"
          ],
          "type": "string",
          "description": "The type of campaign."
        },
        "active": {
          "type": "boolean",
          "description": "If true, the campaign is active and can still send messages."
        },
        "actions": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "The identifier for the action."
              },
              "type": {
                "enum": [
                  "email",
                  "sms",
                  "push",
                  "slack",
                  "webhook"
                ],
                "type": "string",
                "description": "The message type actions resulting from the campaign."
              }
            }
          },
          "description": "An array of actions contained within the campaign."
        },
        "created": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1552341937,
          "readOnly": true,
          "description": "The date time when the referenced ID was created."
        },
        "updated": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1552341937,
          "readOnly": true,
          "description": "The date time when the referenced ID was last updated."
        },
        "created_by": {
          "type": "string",
          "format": "email",
          "example": "hugh.mann@example.com",
          "description": "The email address of the person who created the campaign."
        },
        "first_started": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1552341937,
          "description": "The date and time when you first started the campaign and it first became eligible to be triggered."
        },
        "msg_templates": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "The identifier for the template."
              },
              "type": {
                "enum": [
                  "email",
                  "sms",
                  "push",
                  "slack"
                ],
                "type": "string",
                "description": "The message type the template represents."
              }
            }
          },
          "deprecated": true,
          "description": "Indicates the message templates used in this campaign."
        },
        "deduplicate_id": {
          "type": "string",
          "example": "15:1492548073",
          "readOnly": true,
          "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
        },
        "filter_segment_ids": {
          "type": "array",
          "items": {
            "type": "integer"
          },
          "example": [
            21,
            42
          ],
          "description": "A list of segments used in the campaign filter, returned if the campaign audience was filtered on one or more segments."
        },
        "trigger_segment_ids": {
          "type": "array",
          "items": {
            "type": "integer"
          },
          "example": [
            90
          ],
          "description": "A list of segments used in the campaign trigger, returned if the campaign trigger included one or more segment conditions."
        }
      }
    }
  }
}
object CampaignsGetMetricsResponse
{
  "type": "object",
  "properties": {
    "metric": {
      "type": "object",
      "properties": {
        "series": {
          "allOf": [
            {
              "type": "object",
              "properties": {
                "2xx": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "2xx responses by period, representative of webhook performance."
                },
                "3xx": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "3xx responses by period, representative of webhook performance."
                },
                "4xx": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "4xx responses by period, representative of webhook performance."
                },
                "5xx": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "5xx responses by period, representative of webhook performance."
                }
              },
              "description": "Returns metrics in accordance with the `period` you requested. Each property in this object is an array and each entry in the array represents a metric period, i.e. if your `period` is days `[0, 1]` would represent 0 metrics for the first day, 1 for the second, etc."
            },
            {
              "type": "object",
              "properties": {
                "sent": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of sent messages."
                },
                "failed": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `failed` messages."
                },
                "opened": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `opened` messages."
                },
                "bounced": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `bounced` messages."
                },
                "clicked": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `clicked` messages."
                },
                "created": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `created` messages."
                },
                "drafted": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `drafted` messages."
                },
                "spammed": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of spam complaints."
                },
                "deferred": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `deferred` messages."
                },
                "attempted": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `attempted` messages."
                },
                "converted": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `converted` messages."
                },
                "delivered": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `delivered` messages."
                },
                "suppressed": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `suppressed` messages."
                },
                "unsubscribed": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of unsubscribes attributed to the campaign or message."
                },
                "undeliverable": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `undeliverable` messages."
                },
                "topic_unsubscribed": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of topic unsubscribes in a given period."
                }
              },
              "description": "Returns metrics in accordance with the `period` you requested. Each property in this object is an array and each entry in the array represents a metric period, i.e. if your `period` is days `[0, 1]` would represent 0 metrics for the first day, 1 for the second, etc."
            }
          ]
        }
      }
    }
  }
}
object CampaignsListActionsResponse
{
  "type": "object",
  "properties": {
    "next": {
      "type": "string",
      "description": "Indicates the next page of results. Add `?start=<next_value>` to the request to get the next page of results."
    },
    "actions": {
      "type": "array",
      "items": {
        "oneOf": [
          {
            "type": "object",
            "title": "Email / message",
            "properties": {
              "id": {
                "type": "integer",
                "example": 96,
                "nullable": true,
                "readOnly": true,
                "description": "The identifier for an action."
              },
              "bcc": {
                "type": "string",
                "readOnly": true,
                "description": "The blind-copy address(es) for this action."
              },
              "body": {
                "type": "string",
                "description": "The body of the action. For emails, this is the HTML-body of a message. You cannot modify the body if you created it with our drag-and-drop editor."
              },
              "from": {
                "type": "string",
                "example": "sentFrom@example.com",
                "readOnly": true,
                "description": "The address that the message is from, relevant if the action `type` is `email`."
              },
              "name": {
                "type": "string",
                "example": "Opening Message",
                "readOnly": true,
                "description": "The name of the action, if it exists."
              },
              "type": {
                "enum": [
                  "email",
                  "in_app",
                  "push",
                  "twilio",
                  "slack"
                ],
                "type": "string",
                "readOnly": true,
                "description": "The type of action."
              },
              "layout": {
                "type": "string",
                "readOnly": true,
                "description": "The layout used for the action, if it exists."
              },
              "created": {
                "type": "integer",
                "format": "unix timestamp",
                "example": 1552341937,
                "readOnly": true,
                "description": "The date time when the referenced ID was created."
              },
              "from_id": {
                "type": "integer",
                "example": 1,
                "description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
              },
              "headers": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "example": "X-Mailgun-Tag",
                      "description": "name of header"
                    },
                    "value": {
                      "type": "string",
                      "example": "tag-name-for-tracking",
                      "description": "value of header"
                    }
                  }
                },
                "description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
              },
              "subject": {
                "type": "string",
                "example": "Did you get that thing I sent you?",
                "description": "The subject line for an `email` action."
              },
              "updated": {
                "type": "integer",
                "format": "unix timestamp",
                "example": 1552341937,
                "readOnly": true,
                "description": "The date time when the referenced ID was last updated."
              },
              "body_amp": {
                "type": "string",
                "description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
              },
              "fake_bcc": {
                "type": "boolean",
                "readOnly": true,
                "description": "If true, rather than sending true copies to BCC addresses, Customer.io sends a copy of the message with the subject line containing the recipient address(es).\n"
              },
              "language": {
                "type": "string",
                "example": "fr",
                "readOnly": true,
                "description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
              },
              "reply_to": {
                "type": "string",
                "example": "replyto@example.com",
                "readOnly": true,
                "description": "The address that receives replies for the message, if applicable."
              },
              "recipient": {
                "type": "string",
                "example": "{{customer.email}}",
                "description": "The recipient address for an action."
              },
              "campaign_id": {
                "type": "integer",
                "example": 5,
                "readOnly": true,
                "description": "The identifier for a campaign."
              },
              "reply_to_id": {
                "type": "integer",
                "example": 38,
                "nullable": true,
                "description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
              },
              "preprocessor": {
                "enum": [
                  "premailer"
                ],
                "type": "string",
                "readOnly": true,
                "description": "By default, we process CSS before emails leave Customer.io using Premailer. If your message included CSS and pre-processing is not disabled, this key indicates the pre-processor."
              },
              "sending_state": {
                "enum": [
                  "automatic",
                  "draft",
                  "off"
                ],
                "type": "string",
                "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
              },
              "deduplicate_id": {
                "type": "string",
                "example": "15:1492548073",
                "readOnly": true,
                "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
              },
              "preheader_text": {
                "type": "string",
                "description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
              },
              "parent_action_id": {
                "type": "integer",
                "example": 1,
                "readOnly": true,
                "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
              }
            }
          },
          {
            "type": "object",
            "title": "Webhook",
            "properties": {
              "id": {
                "type": "integer",
                "example": 96,
                "nullable": true,
                "readOnly": true,
                "description": "The identifier for an action."
              },
              "url": {
                "type": "string",
                "example": "https://my.example.com/webhook",
                "description": "The URL to send a webhook to, applies to `webhook` type actions."
              },
              "body": {
                "type": "string",
                "example": "{\"attribute\":\"cool-webhook\"}",
                "description": "The payload for your webhook."
              },
              "name": {
                "type": "string",
                "example": "Set attribute",
                "readOnly": true,
                "description": "The name of the action, if it exists."
              },
              "type": {
                "enum": [
                  "webhook"
                ],
                "type": "string",
                "readOnly": true,
                "description": "The type of action."
              },
              "layout": {
                "type": "string",
                "readOnly": true,
                "description": "The layout used for the action, if it exists."
              },
              "method": {
                "enum": [
                  "get",
                  "post",
                  "put",
                  "delete",
                  "patch"
                ],
                "type": "string",
                "example": "post",
                "description": "The HTTP method for your webhook."
              },
              "created": {
                "type": "integer",
                "format": "unix timestamp",
                "example": 1552341937,
                "readOnly": true,
                "description": "The date time when the referenced ID was created."
              },
              "headers": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "example": "X-Mailgun-Tag",
                      "description": "name of header"
                    },
                    "value": {
                      "type": "string",
                      "example": "tag-name-for-tracking",
                      "description": "value of header"
                    }
                  }
                },
                "description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
              },
              "updated": {
                "type": "integer",
                "format": "unix timestamp",
                "example": 1552341937,
                "readOnly": true,
                "description": "The date time when the referenced ID was last updated."
              },
              "campaign_id": {
                "type": "integer",
                "example": 5,
                "description": "The identifier for a campaign."
              },
              "sending_state": {
                "enum": [
                  "automatic",
                  "draft",
                  "off"
                ],
                "type": "string",
                "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
              },
              "deduplicate_id": {
                "type": "string",
                "example": "15:1492548073",
                "readOnly": true,
                "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
              },
              "parent_action_id": {
                "type": "integer",
                "example": 1,
                "readOnly": true,
                "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
              }
            }
          }
        ]
      },
      "maxItems": 10,
      "description": "Each object in the array represents an action in your campaign."
    }
  }
}
object CampaignsUpdateActionContentsRequest
{
  "oneOf": [
    {
      "type": "object",
      "title": "Email / message",
      "properties": {
        "id": {
          "type": "integer",
          "example": 96,
          "nullable": true,
          "readOnly": true,
          "description": "The identifier for an action."
        },
        "bcc": {
          "type": "string",
          "readOnly": true,
          "description": "The blind-copy address(es) for this action."
        },
        "body": {
          "type": "string",
          "description": "The body of the action. For emails, this is the HTML-body of a message. You cannot modify the body if you created it with our drag-and-drop editor."
        },
        "from": {
          "type": "string",
          "example": "sentFrom@example.com",
          "readOnly": true,
          "description": "The address that the message is from, relevant if the action `type` is `email`."
        },
        "name": {
          "type": "string",
          "example": "Opening Message",
          "readOnly": true,
          "description": "The name of the action, if it exists."
        },
        "type": {
          "enum": [
            "email",
            "in_app",
            "push",
            "twilio",
            "slack"
          ],
          "type": "string",
          "readOnly": true,
          "description": "The type of action."
        },
        "layout": {
          "type": "string",
          "readOnly": true,
          "description": "The layout used for the action, if it exists."
        },
        "created": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1552341937,
          "readOnly": true,
          "description": "The date time when the referenced ID was created."
        },
        "from_id": {
          "type": "integer",
          "example": 1,
          "description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
        },
        "headers": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "example": "X-Mailgun-Tag",
                "description": "name of header"
              },
              "value": {
                "type": "string",
                "example": "tag-name-for-tracking",
                "description": "value of header"
              }
            }
          },
          "description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
        },
        "subject": {
          "type": "string",
          "example": "Did you get that thing I sent you?",
          "description": "The subject line for an `email` action."
        },
        "updated": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1552341937,
          "readOnly": true,
          "description": "The date time when the referenced ID was last updated."
        },
        "body_amp": {
          "type": "string",
          "description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
        },
        "fake_bcc": {
          "type": "boolean",
          "readOnly": true,
          "description": "If true, rather than sending true copies to BCC addresses, Customer.io sends a copy of the message with the subject line containing the recipient address(es).\n"
        },
        "language": {
          "type": "string",
          "example": "fr",
          "readOnly": true,
          "description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
        },
        "reply_to": {
          "type": "string",
          "example": "replyto@example.com",
          "readOnly": true,
          "description": "The address that receives replies for the message, if applicable."
        },
        "recipient": {
          "type": "string",
          "example": "{{customer.email}}",
          "description": "The recipient address for an action."
        },
        "campaign_id": {
          "type": "integer",
          "example": 5,
          "readOnly": true,
          "description": "The identifier for a campaign."
        },
        "reply_to_id": {
          "type": "integer",
          "example": 38,
          "nullable": true,
          "description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
        },
        "preprocessor": {
          "enum": [
            "premailer"
          ],
          "type": "string",
          "readOnly": true,
          "description": "By default, we process CSS before emails leave Customer.io using Premailer. If your message included CSS and pre-processing is not disabled, this key indicates the pre-processor."
        },
        "sending_state": {
          "enum": [
            "automatic",
            "draft",
            "off"
          ],
          "type": "string",
          "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
        },
        "deduplicate_id": {
          "type": "string",
          "example": "15:1492548073",
          "readOnly": true,
          "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
        },
        "preheader_text": {
          "type": "string",
          "description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
        },
        "parent_action_id": {
          "type": "integer",
          "example": 1,
          "readOnly": true,
          "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
        }
      }
    },
    {
      "type": "object",
      "title": "Webhook",
      "properties": {
        "id": {
          "type": "integer",
          "example": 96,
          "nullable": true,
          "readOnly": true,
          "description": "The identifier for an action."
        },
        "url": {
          "type": "string",
          "example": "https://my.example.com/webhook",
          "description": "The URL to send a webhook to, applies to `webhook` type actions."
        },
        "body": {
          "type": "string",
          "example": "{\"attribute\":\"cool-webhook\"}",
          "description": "The payload for your webhook."
        },
        "name": {
          "type": "string",
          "example": "Set attribute",
          "readOnly": true,
          "description": "The name of the action, if it exists."
        },
        "type": {
          "enum": [
            "webhook"
          ],
          "type": "string",
          "readOnly": true,
          "description": "The type of action."
        },
        "layout": {
          "type": "string",
          "readOnly": true,
          "description": "The layout used for the action, if it exists."
        },
        "method": {
          "enum": [
            "get",
            "post",
            "put",
            "delete",
            "patch"
          ],
          "type": "string",
          "example": "post",
          "description": "The HTTP method for your webhook."
        },
        "created": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1552341937,
          "readOnly": true,
          "description": "The date time when the referenced ID was created."
        },
        "headers": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "example": "X-Mailgun-Tag",
                "description": "name of header"
              },
              "value": {
                "type": "string",
                "example": "tag-name-for-tracking",
                "description": "value of header"
              }
            }
          },
          "description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
        },
        "updated": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1552341937,
          "readOnly": true,
          "description": "The date time when the referenced ID was last updated."
        },
        "campaign_id": {
          "type": "integer",
          "example": 5,
          "description": "The identifier for a campaign."
        },
        "sending_state": {
          "enum": [
            "automatic",
            "draft",
            "off"
          ],
          "type": "string",
          "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
        },
        "deduplicate_id": {
          "type": "string",
          "example": "15:1492548073",
          "readOnly": true,
          "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
        },
        "parent_action_id": {
          "type": "integer",
          "example": 1,
          "readOnly": true,
          "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
        }
      }
    }
  ]
}
object CampaignsUpdateActionContentsResponse
{
  "type": "object",
  "properties": {
    "action": {
      "oneOf": [
        {
          "type": "object",
          "title": "Email / message",
          "properties": {
            "id": {
              "type": "integer",
              "example": 96,
              "nullable": true,
              "readOnly": true,
              "description": "The identifier for an action."
            },
            "bcc": {
              "type": "string",
              "readOnly": true,
              "description": "The blind-copy address(es) for this action."
            },
            "body": {
              "type": "string",
              "description": "The body of the action. For emails, this is the HTML-body of a message. You cannot modify the body if you created it with our drag-and-drop editor."
            },
            "from": {
              "type": "string",
              "example": "sentFrom@example.com",
              "readOnly": true,
              "description": "The address that the message is from, relevant if the action `type` is `email`."
            },
            "name": {
              "type": "string",
              "example": "Opening Message",
              "readOnly": true,
              "description": "The name of the action, if it exists."
            },
            "type": {
              "enum": [
                "email",
                "in_app",
                "push",
                "twilio",
                "slack"
              ],
              "type": "string",
              "readOnly": true,
              "description": "The type of action."
            },
            "layout": {
              "type": "string",
              "readOnly": true,
              "description": "The layout used for the action, if it exists."
            },
            "created": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1552341937,
              "readOnly": true,
              "description": "The date time when the referenced ID was created."
            },
            "from_id": {
              "type": "integer",
              "example": 1,
              "description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
            },
            "headers": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "example": "X-Mailgun-Tag",
                    "description": "name of header"
                  },
                  "value": {
                    "type": "string",
                    "example": "tag-name-for-tracking",
                    "description": "value of header"
                  }
                }
              },
              "description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
            },
            "subject": {
              "type": "string",
              "example": "Did you get that thing I sent you?",
              "description": "The subject line for an `email` action."
            },
            "updated": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1552341937,
              "readOnly": true,
              "description": "The date time when the referenced ID was last updated."
            },
            "body_amp": {
              "type": "string",
              "description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
            },
            "fake_bcc": {
              "type": "boolean",
              "readOnly": true,
              "description": "If true, rather than sending true copies to BCC addresses, Customer.io sends a copy of the message with the subject line containing the recipient address(es).\n"
            },
            "language": {
              "type": "string",
              "example": "fr",
              "readOnly": true,
              "description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
            },
            "reply_to": {
              "type": "string",
              "example": "replyto@example.com",
              "readOnly": true,
              "description": "The address that receives replies for the message, if applicable."
            },
            "recipient": {
              "type": "string",
              "example": "{{customer.email}}",
              "description": "The recipient address for an action."
            },
            "campaign_id": {
              "type": "integer",
              "example": 5,
              "readOnly": true,
              "description": "The identifier for a campaign."
            },
            "reply_to_id": {
              "type": "integer",
              "example": 38,
              "nullable": true,
              "description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
            },
            "preprocessor": {
              "enum": [
                "premailer"
              ],
              "type": "string",
              "readOnly": true,
              "description": "By default, we process CSS before emails leave Customer.io using Premailer. If your message included CSS and pre-processing is not disabled, this key indicates the pre-processor."
            },
            "sending_state": {
              "enum": [
                "automatic",
                "draft",
                "off"
              ],
              "type": "string",
              "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
            },
            "deduplicate_id": {
              "type": "string",
              "example": "15:1492548073",
              "readOnly": true,
              "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
            },
            "preheader_text": {
              "type": "string",
              "description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
            },
            "parent_action_id": {
              "type": "integer",
              "example": 1,
              "readOnly": true,
              "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
            }
          }
        },
        {
          "type": "object",
          "title": "Webhook",
          "properties": {
            "id": {
              "type": "integer",
              "example": 96,
              "nullable": true,
              "readOnly": true,
              "description": "The identifier for an action."
            },
            "url": {
              "type": "string",
              "example": "https://my.example.com/webhook",
              "description": "The URL to send a webhook to, applies to `webhook` type actions."
            },
            "body": {
              "type": "string",
              "example": "{\"attribute\":\"cool-webhook\"}",
              "description": "The payload for your webhook."
            },
            "name": {
              "type": "string",
              "example": "Set attribute",
              "readOnly": true,
              "description": "The name of the action, if it exists."
            },
            "type": {
              "enum": [
                "webhook"
              ],
              "type": "string",
              "readOnly": true,
              "description": "The type of action."
            },
            "layout": {
              "type": "string",
              "readOnly": true,
              "description": "The layout used for the action, if it exists."
            },
            "method": {
              "enum": [
                "get",
                "post",
                "put",
                "delete",
                "patch"
              ],
              "type": "string",
              "example": "post",
              "description": "The HTTP method for your webhook."
            },
            "created": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1552341937,
              "readOnly": true,
              "description": "The date time when the referenced ID was created."
            },
            "headers": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "example": "X-Mailgun-Tag",
                    "description": "name of header"
                  },
                  "value": {
                    "type": "string",
                    "example": "tag-name-for-tracking",
                    "description": "value of header"
                  }
                }
              },
              "description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
            },
            "updated": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1552341937,
              "readOnly": true,
              "description": "The date time when the referenced ID was last updated."
            },
            "campaign_id": {
              "type": "integer",
              "example": 5,
              "description": "The identifier for a campaign."
            },
            "sending_state": {
              "enum": [
                "automatic",
                "draft",
                "off"
              ],
              "type": "string",
              "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
            },
            "deduplicate_id": {
              "type": "string",
              "example": "15:1492548073",
              "readOnly": true,
              "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
            },
            "parent_action_id": {
              "type": "integer",
              "example": 1,
              "readOnly": true,
              "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
            }
          }
        }
      ]
    }
  }
}
object CampaignsUpdateTranslationRequest
{
  "oneOf": [
    {
      "type": "object",
      "title": "Email / message",
      "properties": {
        "id": {
          "type": "integer",
          "example": 96,
          "nullable": true,
          "readOnly": true,
          "description": "The identifier for an action."
        },
        "bcc": {
          "type": "string",
          "readOnly": true,
          "description": "The blind-copy address(es) for this action."
        },
        "body": {
          "type": "string",
          "description": "The body of the action. For emails, this is the HTML-body of a message. You cannot modify the body if you created it with our drag-and-drop editor."
        },
        "from": {
          "type": "string",
          "example": "sentFrom@example.com",
          "readOnly": true,
          "description": "The address that the message is from, relevant if the action `type` is `email`."
        },
        "name": {
          "type": "string",
          "example": "Opening Message",
          "readOnly": true,
          "description": "The name of the action, if it exists."
        },
        "type": {
          "enum": [
            "email",
            "in_app",
            "push",
            "twilio",
            "slack"
          ],
          "type": "string",
          "readOnly": true,
          "description": "The type of action."
        },
        "layout": {
          "type": "string",
          "readOnly": true,
          "description": "The layout used for the action, if it exists."
        },
        "created": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1552341937,
          "readOnly": true,
          "description": "The date time when the referenced ID was created."
        },
        "from_id": {
          "type": "integer",
          "example": 1,
          "description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
        },
        "headers": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "example": "X-Mailgun-Tag",
                "description": "name of header"
              },
              "value": {
                "type": "string",
                "example": "tag-name-for-tracking",
                "description": "value of header"
              }
            }
          },
          "description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
        },
        "subject": {
          "type": "string",
          "example": "Did you get that thing I sent you?",
          "description": "The subject line for an `email` action."
        },
        "updated": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1552341937,
          "readOnly": true,
          "description": "The date time when the referenced ID was last updated."
        },
        "body_amp": {
          "type": "string",
          "description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
        },
        "fake_bcc": {
          "type": "boolean",
          "readOnly": true,
          "description": "If true, rather than sending true copies to BCC addresses, Customer.io sends a copy of the message with the subject line containing the recipient address(es).\n"
        },
        "language": {
          "type": "string",
          "example": "fr",
          "readOnly": true,
          "description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
        },
        "reply_to": {
          "type": "string",
          "example": "replyto@example.com",
          "readOnly": true,
          "description": "The address that receives replies for the message, if applicable."
        },
        "recipient": {
          "type": "string",
          "example": "{{customer.email}}",
          "description": "The recipient address for an action."
        },
        "campaign_id": {
          "type": "integer",
          "example": 5,
          "readOnly": true,
          "description": "The identifier for a campaign."
        },
        "reply_to_id": {
          "type": "integer",
          "example": 38,
          "nullable": true,
          "description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
        },
        "preprocessor": {
          "enum": [
            "premailer"
          ],
          "type": "string",
          "readOnly": true,
          "description": "By default, we process CSS before emails leave Customer.io using Premailer. If your message included CSS and pre-processing is not disabled, this key indicates the pre-processor."
        },
        "sending_state": {
          "enum": [
            "automatic",
            "draft",
            "off"
          ],
          "type": "string",
          "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
        },
        "deduplicate_id": {
          "type": "string",
          "example": "15:1492548073",
          "readOnly": true,
          "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
        },
        "preheader_text": {
          "type": "string",
          "description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
        },
        "parent_action_id": {
          "type": "integer",
          "example": 1,
          "readOnly": true,
          "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
        }
      }
    },
    {
      "type": "object",
      "title": "Webhook",
      "properties": {
        "id": {
          "type": "integer",
          "example": 96,
          "nullable": true,
          "readOnly": true,
          "description": "The identifier for an action."
        },
        "url": {
          "type": "string",
          "example": "https://my.example.com/webhook",
          "description": "The URL to send a webhook to, applies to `webhook` type actions."
        },
        "body": {
          "type": "string",
          "example": "{\"attribute\":\"cool-webhook\"}",
          "description": "The payload for your webhook."
        },
        "name": {
          "type": "string",
          "example": "Set attribute",
          "readOnly": true,
          "description": "The name of the action, if it exists."
        },
        "type": {
          "enum": [
            "webhook"
          ],
          "type": "string",
          "readOnly": true,
          "description": "The type of action."
        },
        "layout": {
          "type": "string",
          "readOnly": true,
          "description": "The layout used for the action, if it exists."
        },
        "method": {
          "enum": [
            "get",
            "post",
            "put",
            "delete",
            "patch"
          ],
          "type": "string",
          "example": "post",
          "description": "The HTTP method for your webhook."
        },
        "created": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1552341937,
          "readOnly": true,
          "description": "The date time when the referenced ID was created."
        },
        "headers": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "example": "X-Mailgun-Tag",
                "description": "name of header"
              },
              "value": {
                "type": "string",
                "example": "tag-name-for-tracking",
                "description": "value of header"
              }
            }
          },
          "description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
        },
        "updated": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1552341937,
          "readOnly": true,
          "description": "The date time when the referenced ID was last updated."
        },
        "campaign_id": {
          "type": "integer",
          "example": 5,
          "description": "The identifier for a campaign."
        },
        "sending_state": {
          "enum": [
            "automatic",
            "draft",
            "off"
          ],
          "type": "string",
          "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
        },
        "deduplicate_id": {
          "type": "string",
          "example": "15:1492548073",
          "readOnly": true,
          "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
        },
        "parent_action_id": {
          "type": "integer",
          "example": 1,
          "readOnly": true,
          "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
        }
      }
    }
  ]
}
object CampaignsUpdateTranslationResponse
{
  "type": "object",
  "properties": {
    "action": {
      "oneOf": [
        {
          "type": "object",
          "title": "Email / message",
          "properties": {
            "id": {
              "type": "integer",
              "example": 96,
              "nullable": true,
              "readOnly": true,
              "description": "The identifier for an action."
            },
            "bcc": {
              "type": "string",
              "readOnly": true,
              "description": "The blind-copy address(es) for this action."
            },
            "body": {
              "type": "string",
              "description": "The body of the action. For emails, this is the HTML-body of a message. You cannot modify the body if you created it with our drag-and-drop editor."
            },
            "from": {
              "type": "string",
              "example": "sentFrom@example.com",
              "readOnly": true,
              "description": "The address that the message is from, relevant if the action `type` is `email`."
            },
            "name": {
              "type": "string",
              "example": "Opening Message",
              "readOnly": true,
              "description": "The name of the action, if it exists."
            },
            "type": {
              "enum": [
                "email",
                "in_app",
                "push",
                "twilio",
                "slack"
              ],
              "type": "string",
              "readOnly": true,
              "description": "The type of action."
            },
            "layout": {
              "type": "string",
              "readOnly": true,
              "description": "The layout used for the action, if it exists."
            },
            "created": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1552341937,
              "readOnly": true,
              "description": "The date time when the referenced ID was created."
            },
            "from_id": {
              "type": "integer",
              "example": 1,
              "description": "The identifier of the `from` address, commonly known as the \"sender\". You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
            },
            "headers": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "example": "X-Mailgun-Tag",
                    "description": "name of header"
                  },
                  "value": {
                    "type": "string",
                    "example": "tag-name-for-tracking",
                    "description": "value of header"
                  }
                }
              },
              "description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
            },
            "subject": {
              "type": "string",
              "example": "Did you get that thing I sent you?",
              "description": "The subject line for an `email` action."
            },
            "updated": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1552341937,
              "readOnly": true,
              "description": "The date time when the referenced ID was last updated."
            },
            "body_amp": {
              "type": "string",
              "description": "If your message is an email, this is the AMP-enabled body of your message. If your recipient's email client doesn't support AMP, the `body` represents your fallback message."
            },
            "fake_bcc": {
              "type": "boolean",
              "readOnly": true,
              "description": "If true, rather than sending true copies to BCC addresses, Customer.io sends a copy of the message with the subject line containing the recipient address(es).\n"
            },
            "language": {
              "type": "string",
              "example": "fr",
              "readOnly": true,
              "description": "The language variant for your message. If you don't use our [localization feature](https://customer.io/docs/api/app/), or this is the default message, this value is an empty string."
            },
            "reply_to": {
              "type": "string",
              "example": "replyto@example.com",
              "readOnly": true,
              "description": "The address that receives replies for the message, if applicable."
            },
            "recipient": {
              "type": "string",
              "example": "{{customer.email}}",
              "description": "The recipient address for an action."
            },
            "campaign_id": {
              "type": "integer",
              "example": 5,
              "readOnly": true,
              "description": "The identifier for a campaign."
            },
            "reply_to_id": {
              "type": "integer",
              "example": 38,
              "nullable": true,
              "description": "The identifier for the `reply_to` address, if applicable. You can [list your sender identities](https://customer.io/docs/api/app/) to match the ID to a specific address."
            },
            "preprocessor": {
              "enum": [
                "premailer"
              ],
              "type": "string",
              "readOnly": true,
              "description": "By default, we process CSS before emails leave Customer.io using Premailer. If your message included CSS and pre-processing is not disabled, this key indicates the pre-processor."
            },
            "sending_state": {
              "enum": [
                "automatic",
                "draft",
                "off"
              ],
              "type": "string",
              "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
            },
            "deduplicate_id": {
              "type": "string",
              "example": "15:1492548073",
              "readOnly": true,
              "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
            },
            "preheader_text": {
              "type": "string",
              "description": "Also known as \"preview text\", this specifies the small block of text shown in an end-user's email inbox, next to, or underneath, the subject line."
            },
            "parent_action_id": {
              "type": "integer",
              "example": 1,
              "readOnly": true,
              "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
            }
          }
        },
        {
          "type": "object",
          "title": "Webhook",
          "properties": {
            "id": {
              "type": "integer",
              "example": 96,
              "nullable": true,
              "readOnly": true,
              "description": "The identifier for an action."
            },
            "url": {
              "type": "string",
              "example": "https://my.example.com/webhook",
              "description": "The URL to send a webhook to, applies to `webhook` type actions."
            },
            "body": {
              "type": "string",
              "example": "{\"attribute\":\"cool-webhook\"}",
              "description": "The payload for your webhook."
            },
            "name": {
              "type": "string",
              "example": "Set attribute",
              "readOnly": true,
              "description": "The name of the action, if it exists."
            },
            "type": {
              "enum": [
                "webhook"
              ],
              "type": "string",
              "readOnly": true,
              "description": "The type of action."
            },
            "layout": {
              "type": "string",
              "readOnly": true,
              "description": "The layout used for the action, if it exists."
            },
            "method": {
              "enum": [
                "get",
                "post",
                "put",
                "delete",
                "patch"
              ],
              "type": "string",
              "example": "post",
              "description": "The HTTP method for your webhook."
            },
            "created": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1552341937,
              "readOnly": true,
              "description": "The date time when the referenced ID was created."
            },
            "headers": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "example": "X-Mailgun-Tag",
                    "description": "name of header"
                  },
                  "value": {
                    "type": "string",
                    "example": "tag-name-for-tracking",
                    "description": "value of header"
                  }
                }
              },
              "description": "Headers must be strings and cannot contain any non-ASCII characters or empty spaces. Some headers are reserved and cannot be overwritten."
            },
            "updated": {
              "type": "integer",
              "format": "unix timestamp",
              "example": 1552341937,
              "readOnly": true,
              "description": "The date time when the referenced ID was last updated."
            },
            "campaign_id": {
              "type": "integer",
              "example": 5,
              "description": "The identifier for a campaign."
            },
            "sending_state": {
              "enum": [
                "automatic",
                "draft",
                "off"
              ],
              "type": "string",
              "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
            },
            "deduplicate_id": {
              "type": "string",
              "example": "15:1492548073",
              "readOnly": true,
              "description": "An identifier in the format `id:timestamp` where the id is the id of the object you are working with (Campaigns, Deliveries, Exports, Identities, Newsletters, Segments, and Templates), and the timestamp is the last time the object was updated."
            },
            "parent_action_id": {
              "type": "integer",
              "example": 1,
              "readOnly": true,
              "description": "The ID of the parent action, if the action occurred within a campaign and has a parent (like a randomized split, etc)."
            }
          }
        }
      ]
    }
  }
}
object CollectionsCreateNewRequest
{
  "oneOf": [
    {
      "type": "object",
      "title": "Local data",
      "required": [
        "name",
        "data"
      ],
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "x-additionalPropertiesName": "collection data"
            }
          },
          "description": "An array of data objects that you want to reference in this collection."
        },
        "name": {
          "type": "string",
          "description": "The name of the collection. This is how you'll reference your collection in messages—`{{collection_name.data-property}}`."
        }
      }
    },
    {
      "type": "object",
      "title": "Data by URL",
      "required": [
        "name",
        "url"
      ],
      "properties": {
        "url": {
          "type": "string",
          "format": "url",
          "description": "The URL for your CSV or JSON data. If your URL does not return a `Content-Type`, we use the file extension; otherwise, Customer.io assumes your data is JSON.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the collection. This is how you'll reference your collection in messages—`{{collection_name.data-property}}`."
        }
      }
    }
  ]
}
object CollectionsCreateNewResponse
{
  "type": "object",
  "properties": {
    "collection": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "example": 1,
          "description": "The identifier for the collection. This is how you'll reference the collection from the API."
        },
        "name": {
          "type": "string",
          "example": "upcoming events",
          "description": "The name of the collection. This is how you'll reference the collection in liquid, e.g. `{{collection_name.data_property}}`."
        },
        "rows": {
          "type": "integer",
          "example": 2,
          "description": "Represents the number of objects in the `data` array or CSV rows in your collection schema."
        },
        "bytes": {
          "type": "integer",
          "example": 296,
          "description": "The size of the collection in bytes."
        },
        "schema": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [
            "eventDate",
            "eventName",
            "presents"
          ],
          "description": "Lists the top-level keys that you can reference within this collection. Customer.io does not enforce any of these keys as required from your `data`."
        },
        "created_at": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1552341937,
          "readOnly": true,
          "description": "The date time when the referenced ID was created."
        },
        "updated_at": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1552341937,
          "readOnly": true,
          "description": "The date time when the referenced ID was last updated."
        }
      }
    }
  }
}
object CollectionsGetContentsResponse
{
  "type": "object",
  "additionalProperties": {
    "x-additionalPropertiesName": "collection data"
  }
}
object CollectionsGetDetailsResponse
{
  "type": "object",
  "properties": {
    "collection": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "example": 1,
          "description": "The identifier for the collection. This is how you'll reference the collection from the API."
        },
        "name": {
          "type": "string",
          "example": "upcoming events",
          "description": "The name of the collection. This is how you'll reference the collection in liquid, e.g. `{{collection_name.data_property}}`."
        },
        "rows": {
          "type": "integer",
          "example": 2,
          "description": "Represents the number of objects in the `data` array or CSV rows in your collection schema."
        },
        "bytes": {
          "type": "integer",
          "example": 296,
          "description": "The size of the collection in bytes."
        },
        "schema": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [
            "eventDate",
            "eventName",
            "presents"
          ],
          "description": "Lists the top-level keys that you can reference within this collection. Customer.io does not enforce any of these keys as required from your `data`."
        },
        "created_at": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1552341937,
          "readOnly": true,
          "description": "The date time when the referenced ID was created."
        },
        "updated_at": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1552341937,
          "readOnly": true,
          "description": "The date time when the referenced ID was last updated."
        }
      }
    }
  }
}
object CollectionsListResponse
{
  "type": "object",
  "properties": {
    "collections": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "example": 1,
            "description": "The identifier for the collection. This is how you'll reference the collection from the API."
          },
          "name": {
            "type": "string",
            "example": "upcoming events",
            "description": "The name of the collection. This is how you'll reference the collection in liquid, e.g. `{{collection_name.data_property}}`."
          },
          "rows": {
            "type": "integer",
            "example": 2,
            "description": "Represents the number of objects in the `data` array or CSV rows in your collection schema."
          },
          "bytes": {
            "type": "integer",
            "example": 296,
            "description": "The size of the collection in bytes."
          },
          "schema": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "example": [
              "eventDate",
              "eventName",
              "presents"
            ],
            "description": "Lists the top-level keys that you can reference within this collection. Customer.io does not enforce any of these keys as required from your `data`."
          },
          "created_at": {
            "type": "integer",
            "format": "unix timestamp",
            "example": 1552341937,
            "readOnly": true,
            "description": "The date time when the referenced ID was created."
          },
          "updated_at": {
            "type": "integer",
            "format": "unix timestamp",
            "example": 1552341937,
            "readOnly": true,
            "description": "The date time when the referenced ID was last updated."
          }
        }
      }
    }
  }
}
object CollectionsUpdateCollectionRequest
{
  "oneOf": [
    {
      "type": "object",
      "title": "Local data",
      "properties": {
        "data": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "x-additionalPropertiesName": "collection data"
            }
          },
          "description": "An array of data objects that you want to reference in this collection."
        },
        "name": {
          "type": "string",
          "description": "The name of the collection. This is how you'll reference your collection in messages—`{{collection_name.data-property}}`."
        }
      }
    },
    {
      "type": "object",
      "title": "Data by URL",
      "properties": {
        "url": {
          "type": "string",
          "format": "url",
          "description": "The URL for your CSV or JSON data. If your URL does not return a `Content-Type`, we use the file extension; otherwise, Customer.io assumes your data is JSON.\n"
        },
        "name": {
          "type": "string",
          "description": "The name of the collection. This is how you'll reference your collection in messages—`{{collection_name.data-property}}`."
        }
      }
    }
  ]
}
object CollectionsUpdateCollectionResponse
{
  "type": "object",
  "properties": {
    "collection": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "example": 1,
          "description": "The identifier for the collection. This is how you'll reference the collection from the API."
        },
        "name": {
          "type": "string",
          "example": "upcoming events",
          "description": "The name of the collection. This is how you'll reference the collection in liquid, e.g. `{{collection_name.data_property}}`."
        },
        "rows": {
          "type": "integer",
          "example": 2,
          "description": "Represents the number of objects in the `data` array or CSV rows in your collection schema."
        },
        "bytes": {
          "type": "integer",
          "example": 296,
          "description": "The size of the collection in bytes."
        },
        "schema": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [
            "eventDate",
            "eventName",
            "presents"
          ],
          "description": "Lists the top-level keys that you can reference within this collection. Customer.io does not enforce any of these keys as required from your `data`."
        },
        "created_at": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1552341937,
          "readOnly": true,
          "description": "The date time when the referenced ID was created."
        },
        "updated_at": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1552341937,
          "readOnly": true,
          "description": "The date time when the referenced ID was last updated."
        }
      }
    }
  }
}
object CollectionsUpdateContentsRequest
{
  "type": "object",
  "additionalProperties": {
    "x-additionalPropertiesName": "collection contents"
  }
}
object CollectionsUpdateContentsResponse
{
  "type": "object",
  "properties": {
    "collection": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer",
          "example": 1,
          "description": "The identifier for the collection. This is how you'll reference the collection from the API."
        },
        "name": {
          "type": "string",
          "example": "upcoming events",
          "description": "The name of the collection. This is how you'll reference the collection in liquid, e.g. `{{collection_name.data_property}}`."
        },
        "rows": {
          "type": "integer",
          "example": 2,
          "description": "Represents the number of objects in the `data` array or CSV rows in your collection schema."
        },
        "bytes": {
          "type": "integer",
          "example": 296,
          "description": "The size of the collection in bytes."
        },
        "schema": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [
            "eventDate",
            "eventName",
            "presents"
          ],
          "description": "Lists the top-level keys that you can reference within this collection. Customer.io does not enforce any of these keys as required from your `data`."
        },
        "created_at": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1552341937,
          "readOnly": true,
          "description": "The date time when the referenced ID was created."
        },
        "updated_at": {
          "type": "integer",
          "format": "unix timestamp",
          "example": 1552341937,
          "readOnly": true,
          "description": "The date time when the referenced ID was last updated."
        }
      }
    }
  }
}
object CustomersFindByEmailResponse
{
  "type": "object",
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "cio_id",
          "id",
          "email"
        ],
        "properties": {
          "id": {
            "type": "string",
            "example": 2,
            "nullable": true,
            "description": "A person's unique ID, if set."
          },
          "email": {
            "type": "string",
            "format": "email",
            "example": "hugh.mann@example.com",
            "nullable": true,
            "description": "A person's email address, if set."
          },
          "cio_id": {
            "type": "string",
            "example": "a3000001",
            "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
          }
        }
      },
      "description": "A list of customers matching the email address in your query."
    }
  }
}
object CustomersGetActivitiesResponse
{
  "type": "object",
  "properties": {
    "activities": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "example": "01AK4N8V8G8KVA4HN8Y50CCZ59",
            "description": "The identifier for the action."
          },
          "data": {
            "oneOf": [
              {
                "type": "object",
                "title": "Message delivery",
                "example": {
                  "opened": null,
                  "delivered": null,
                  "delivery_id": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ=="
                },
                "properties": {
                  "opened": {
                    "type": "boolean",
                    "nullable": true,
                    "description": "Indicates whether or not a customer opened a message, if the message was delivered."
                  },
                  "delivered": {
                    "type": "integer",
                    "format": "unix timestamp",
                    "nullable": true,
                    "description": "The date-time when the message was delivered, if applicable."
                  },
                  "delivery_id": {
                    "type": "string",
                    "description": "The message ID."
                  }
                }
              },
              {
                "type": "object",
                "title": "Attribute change",
                "example": {
                  "email": {
                    "to": "newPerson@customer.io",
                    "from": "newPerson@example.com"
                  }
                },
                "description": "The name of the object is the attribute that changed.",
                "additionalProperties": {
                  "type": "object",
                  "properties": {
                    "to": {
                      "type": "string",
                      "description": "The new attribute value."
                    },
                    "from": {
                      "type": "string",
                      "description": "The old attribute value. If empty, the customer probably didn't bear the attribute before this action."
                    }
                  },
                  "x-additionalPropertyName": "Attribute Name"
                }
              }
            ]
          },
          "type": {
            "enum": [
              "attempted_action",
              "attribute_change",
              "failed_attribute_change",
              "failed_batch_update",
              "skipped_update",
              "failed_query_collection",
              "event",
              "failed_event",
              "page",
              "drafted_email",
              "attempted_email",
              "sent_email",
              "delivered_email",
              "opened_email",
              "clicked_email",
              "converted_email",
              "bounced_email",
              "failed_email",
              "unsubscribed_email",
              "topic_unsubscribed_email",
              "spammed_email",
              "dropped_email",
              "undeliverable_email",
              "drafted_action",
              "delivered_action",
              "bounced_action",
              "sent_action",
              "opened_action",
              "clicked_action",
              "failed_action",
              "converted_action",
              "device_change",
              "deferred_email",
              "unsubscribed_action",
              "dropped_action",
              "undeliverable_action",
              "deferred_action",
              "profile_create",
              "profile_delete",
              "profile_merge",
              "anon_merge",
              "screen",
              "webhook_event",
              "add_relationship",
              "delete_relationship",
              "_o:<object_type_id>:create",
              "_o:<object_type_id>:attribute_change",
              "_o:<object_type_id>:failed_attribute_change",
              "_o:<object_type_id>:delete",
              "_o:<object_type_id>:add_relationship",
              "_o:<object_type_id>:delete_relationship",
              "_r:<object_type_id>:attribute_change",
              "_r:<object_type_id>:failed_attribute_change",
              "failed_object_journeys"
            ],
            "type": "string",
            "example": "sent_email",
            "description": "The type of activity. Types with `_o:<object_type_id>` are for objects and types with `_r:<object_type_id>` are for relationships."
          },
          "timestamp": {
            "type": "integer",
            "format": "unix timestamp",
            "example": 1397566226,
            "description": "The date and time when the action occurred."
          },
          "customer_id": {
            "type": "string",
            "example": "42",
            "nullable": true,
            "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
          },
          "delivery_id": {
            "type": "string",
            "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
            "description": "The message ID."
          },
          "delivery_type": {
            "enum": [
              "ios",
              "android",
              "email",
              "phone"
            ],
            "type": "string",
            "example": "email",
            "description": "The recipient device, if applicable."
          },
          "customer_identifiers": {
            "type": "object",
            "required": [
              "email",
              "id",
              "cio_id"
            ],
            "properties": {
              "id": {
                "type": "string",
                "example": 2,
                "nullable": true,
                "description": "A person's unique ID, if set. This is the same as the `customer_id` if present."
              },
              "email": {
                "type": "string",
                "format": "email",
                "example": "test@example.com",
                "nullable": true,
                "description": "A person's email address, if set."
              },
              "cio_id": {
                "type": "string",
                "example": "a3000001",
                "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
              }
            },
            "description": "Contains identifiers for the person represented in a response—`id`, `cio_id`, and `email` (if your workspace uses the *Email or ID* setting). If the person's `id` or `email` is not set, the value will be null.\n\nWe recommend that you use this object rather than the less descriptive `customer_id`.\n"
          }
        }
      }
    }
  }
}
object CustomersGetAttributesResponse
{
  "type": "object",
  "example": {
    "customer": {
      "id": "1X",
      "devices": [
        {
          "id": "my_android_device_idX",
          "platform": "android",
          "last_used": 1514764800
        },
        {
          "id": "my_ios_device_idX",
          "platform": "ios",
          "last_used": 1514764800
        }
      ],
      "attributes": {
        "id": "1X",
        "email": "test@example.com",
        "title": "tester",
        "cio_id": "03000001",
        "created_at": "1489014595",
        "department": "qa",
        "_last_emailed": "1528932553",
        "cio_subscription_preferences": "{\"topics\":{\"topic_7\":false,\"topic_8\":false}}",
        "_cio_subscription_preferences_computed": "{\"topics\":{\"topic_6\":false,\"topic_7\":false,\"topic_8\":false}}"
      },
      "timestamps": {
        "id": 1489014595,
        "email": 1508932553,
        "title": 1508932553,
        "cio_id": 1489014595,
        "created_at": 1489014595,
        "department": 1508932553,
        "_last_emailed": 1528932553,
        "cio_subscription_preferences": 1673987303,
        "_cio_subscription_preferences_computed": 0
      },
      "unsubscribed": false
    }
  },
  "properties": {
    "customer": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The customer ID referenced in the request."
        },
        "devices": {
          "type": "array",
          "items": {
            "allOf": [
              {
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The device token."
                  }
                }
              },
              {
                "type": "object",
                "required": [
                  "platform"
                ],
                "properties": {
                  "platform": {
                    "enum": [
                      "ios",
                      "android"
                    ],
                    "type": "string",
                    "description": "The device/messaging platform."
                  },
                  "last_used": {
                    "type": "integer",
                    "format": "unix timestamp",
                    "description": "The `timestamp` when you last identified this device. If you don't pass a timestamp when you add or update a device, we use the time of the request itself. Our SDKs identify a device when a person launches their app."
                  },
                  "attributes": {
                    "type": "object",
                    "properties": {
                      "device_os": {
                        "type": "string",
                        "description": "The operating system, including the version, on the device."
                      },
                      "app_version": {
                        "type": "string",
                        "description": "The version of your app that a customer uses. You might target app versions to let people know when they need to update, or expose them to new features when they do."
                      },
                      "_last_status": {
                        "enum": [
                          "",
                          "bounced",
                          "sent",
                          "suppressed"
                        ],
                        "type": "string",
                        "readOnly": true,
                        "description": "The delivery status of the last message sent to the device—sent, bounced, or suppressed. An empty string indicates that that the device hasn't received a push yet."
                      },
                      "device_model": {
                        "type": "string",
                        "description": "The model of the device a person uses."
                      },
                      "push_enabled": {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string",
                        "description": "If `\"true\"`, the device is opted-in and can receive push notifications."
                      },
                      "device_locale": {
                        "type": "string",
                        "description": "The four-letter [IETF language code](https://customer.io/docs/api/app/) for the device. For example, `en-MX` (indicating an app in Spanish formatted for a user in Mexico) or `es-ES` (indicating an app in Spanish formatted for a user in Spain)."
                      },
                      "cio_sdk_version": {
                        "type": "string",
                        "description": "The version of the Customer.io SDK in the app."
                      }
                    },
                    "description": "Attributes that you can reference to segment your audience—like a person's attributes, but specific to a device. These can be either the attributes defined below or custom key-value attributes.",
                    "additionalProperties": {
                      "type": "string",
                      "description": "Custom properties that you want to associate with the device.",
                      "x-additionalPropertiesName": "Custom Device Attributes"
                    }
                  }
                },
                "description": "Device information common to the v1 and v2 APIs."
              }
            ],
            "description": "The properties representing an individual device. [Our SDK's](https://customer.io/docs/api/app/) gather all the properties defined below automatically, unless you disable the `autoTrackDeviceAttributes` setting. You can reference the properties outside the `attributes` object in segments or in Liquid."
          },
          "description": "Lists the devices associated with the customer profile."
        },
        "attributes": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "example": "42",
              "nullable": true,
              "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
            },
            "email": {
              "type": "string",
              "example": "test@example.com",
              "nullable": true,
              "description": "The email address of the customer."
            },
            "cio_id": {
              "type": "string",
              "example": "a3000001",
              "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
            },
            "cio_subscription_preferences": {
              "type": "string",
              "description": "A person's stringified subscription preferences. These are preferences that a person set through the subscription center or attributes that you set on a person. A person who hasn't set their subscription preferences has computed preferences based on the nature of your topics (opt-in or opt-out). See the `_cio_subscription_preferences_computed` attribute for computed preferences.\n"
            },
            "_cio_subscription_preferences_computed": {
              "type": "string",
              "description": "Returns the computed subscription preferences for a person—any subscription preferences set on a person and the defaults for any subscription preferences _not_ set on a person—as stringified JSON. For example, if you have an \"opt-in\" topic that a person hasn't set a preference for, that topic would show `false`—even though a person doesn't have that attribute on their profile. [Learn more about topics](https://customer.io/docs/api/app/).  \n"
            }
          },
          "description": "Contains attributes assigned to this profile, including your workspace's people-identifiers (by default, these are `id`, `email`, and `cio_id`). Attributes are all stored as strings.",
          "additionalProperties": {
            "type": "string",
            "description": "Non-identifier attributes assigned to this person.",
            "x-additionalPropertiesName": "additional attributes"
          }
        },
        "timestamps": {
          "type": "object",
          "properties": {
            "id": {
              "type": "integer",
              "format": "unix timestamp",
              "description": "The date-time when the person's ID was generated."
            },
            "email": {
              "type": "integer",
              "format": "unix timestamp",
              "description": "The date-time when the person's email address was added."
            },
            "cio_id": {
              "type": "integer",
              "format": "unix timestamp",
              "description": "The date-time when `cio_id` was assigned."
            },
            "unsubscribed": {
              "type": "integer",
              "format": "unix timestamp",
              "description": "The date-time when the person unsubscribed."
            },
            "_last_emailed": {
              "type": "integer",
              "format": "unix timestamp",
              "description": "The date-time when you last emailed a person."
            },
            "additionalProperties": {
              "format": "unix timestamp",
              "description": "Timestamps when attributes assigned to the person were set.",
              "x-additionalPropertiesName": "additional attribute timestamps"
            },
            "cio_subscription_preferences": {
              "type": "integer",
              "format": "unix timestamp",
              "description": "The datetime when a person's subscription preferences were last updated."
            },
            "_cio_subscription_preferences_computed": {
              "type": "integer",
              "description": "Because this value is computed and not actually set on a person, this value is always 0"
            }
          },
          "description": "The epoch timestamps when corresponding attributes were set on the customer profile."
        },
        "identifiers": {
          "type": "object",
          "required": [
            "email",
            "id",
            "cio_id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "example": 2,
              "nullable": true,
              "description": "A person's unique ID, if set. This is the same as the `customer_id` if present."
            },
            "email": {
              "type": "string",
              "format": "email",
              "example": "test@example.com",
              "nullable": true,
              "description": "A person's email address, if set."
            },
            "cio_id": {
              "type": "string",
              "example": "a3000001",
              "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
            }
          },
          "description": "Contains identifiers for the person represented in a response—`id`, `cio_id`, and `email` (if your workspace uses the *Email or ID* setting). If the person's `id` or `email` is not set, the value will be null.\n\nWe recommend that you use this object rather than the less descriptive `customer_id`.\n"
        },
        "unsubscribed": {
          "type": "boolean",
          "description": "If true, the person is unsubscribed from messages."
        }
      },
      "description": "The profile you referenced by ID in the request."
    }
  }
}
object CustomersGetMessagesResponse
{
  "type": "object",
  "properties": {
    "messages": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The message identifier."
          },
          "type": {
            "enum": [
              "email",
              "webhook",
              "twilio",
              "slack",
              "push"
            ],
            "type": "string",
            "description": "The type of message."
          },
          "created": {
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date and time when the message was created."
          },
          "metrics": {
            "type": "object",
            "properties": {
              "sent": {
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date and time when the message was sent."
              },
              "delivered": {
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date and time when the customer received the message."
              }
            },
            "description": "Contains information about the send and delivery time of the message."
          },
          "subject": {
            "type": "string",
            "description": "The subject line of the message."
          },
          "action_id": {
            "type": "integer",
            "description": "The identifier for the message action within the campaign or broadcast the message belonged to."
          },
          "forgotten": {
            "type": "boolean",
            "description": "If true, the message content was forgotten."
          },
          "recipient": {
            "type": "string",
            "description": "The address of the recipient. May be an email address, MSISDN, or a device UUID."
          },
          "content_id": {
            "type": "integer",
            "nullable": true,
            "description": "The newsletter variant for the message, if applicable."
          },
          "campaign_id": {
            "type": "integer",
            "description": "The campaign the message belongs to."
          },
          "customer_id": {
            "type": "string",
            "description": "The customer the message was sent to."
          },
          "broadcast_id": {
            "type": "integer",
            "nullable": true,
            "description": "The broadcast the message was sent as a part of, if applicable."
          },
          "newsletter_id": {
            "type": "integer",
            "nullable": true,
            "description": "The newsletter that the message was sent as a part of, if applicable."
          },
          "deduplicate_id": {
            "type": "string",
            "description": "A group identifier to deduplicate messages (useful if a customer may have received multiple messages of the same type)."
          },
          "failure_message": {
            "type": "string",
            "nullable": true,
            "description": "An error, if the message did not make it to the customer."
          },
          "msg_template_id": {
            "type": "string",
            "deprecated": true,
            "description": "The message template the message was created from."
          }
        }
      }
    }
  }
}
object CustomersGetSubscriptionPreferences400Response
{
  "type": "object",
  "properties": {
    "meta": {
      "type": "object",
      "properties": {
        "errors": {
          "type": "array",
          "items": {
            "type": "string",
            "description": "Error descriptions."
          },
          "description": "An array of errors."
        }
      }
    }
  }
}
object CustomersGetSubscriptionPreferencesResponse
{
  "type": "object",
  "properties": {
    "customer": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "example": "42",
          "nullable": true,
          "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
        },
        "header": {
          "type": "object",
          "properties": {
            "title": {
              "type": "string",
              "description": "The header of the subscription preferences page."
            },
            "subtitle": {
              "type": "string",
              "description": "The subtitle or headline beneath the header of the subscription preferences page."
            }
          }
        },
        "topics": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "System-generated ID of the topic."
              },
              "name": {
                "type": "string",
                "description": "The name of the subscription topic."
              },
              "subscribed": {
                "type": "boolean",
                "description": "If true, the customer is subscribed to the topic. If false, the customer is unsubscribed from the topic."
              },
              "description": {
                "type": "string",
                "description": "The (optional) description of the topic."
              }
            }
          },
          "description": "A list of all subscription preferences for the customer."
        },
        "identifiers": {
          "type": "object",
          "required": [
            "email",
            "id",
            "cio_id"
          ],
          "properties": {
            "id": {
              "type": "string",
              "example": 2,
              "nullable": true,
              "description": "A person's unique ID, if set. This is the same as the `customer_id` if present."
            },
            "email": {
              "type": "string",
              "format": "email",
              "example": "test@example.com",
              "nullable": true,
              "description": "A person's email address, if set."
            },
            "cio_id": {
              "type": "string",
              "example": "a3000001",
              "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
            }
          },
          "description": "Contains identifiers for the person represented in a response—`id`, `cio_id`, and `email` (if your workspace uses the *Email or ID* setting). If the person's `id` or `email` is not set, the value will be null.\n\nWe recommend that you use this object rather than the less descriptive `customer_id`.\n"
        },
        "unsubscribed": {
          "type": "boolean",
          "description": "If true, the customer is unsubscribed from all messaging. If false, the customer is subscribed according to their topic preferences."
        }
      },
      "description": "The profile you referenced by ID in the request."
    }
  }
}
object CustomersListAttributesDevicesRequest
{
  "type": "object",
  "required": [
    "ids"
  ],
  "properties": {
    "ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 100,
      "minItems": 1,
      "description": "An array of up to 100 customer IDs."
    }
  }
}
object CustomersListAttributesDevicesResponse
{
  "type": "object",
  "properties": {
    "customers": {
      "type": "array",
      "items": {
        "type": "object",
        "example": {
          "customer": {
            "id": "1X",
            "devices": [
              {
                "id": "my_android_device_idX",
                "platform": "android",
                "last_used": 1514764800
              },
              {
                "id": "my_ios_device_idX",
                "platform": "ios",
                "last_used": 1514764800
              }
            ],
            "attributes": {
              "id": "1X",
              "email": "test@example.com",
              "title": "tester",
              "cio_id": "03000001",
              "created_at": "1489014595",
              "department": "qa",
              "_last_emailed": "1528932553",
              "cio_subscription_preferences": "{\"topics\":{\"topic_7\":false,\"topic_8\":false}}",
              "_cio_subscription_preferences_computed": "{\"topics\":{\"topic_6\":false,\"topic_7\":false,\"topic_8\":false}}"
            },
            "timestamps": {
              "id": 1489014595,
              "email": 1508932553,
              "title": 1508932553,
              "cio_id": 1489014595,
              "created_at": 1489014595,
              "department": 1508932553,
              "_last_emailed": 1528932553,
              "cio_subscription_preferences": 1673987303,
              "_cio_subscription_preferences_computed": 0
            },
            "unsubscribed": false
          }
        },
        "properties": {
          "customer": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The customer ID referenced in the request."
              },
              "devices": {
                "type": "array",
                "items": {
                  "allOf": [
                    {
                      "type": "object",
                      "required": [
                        "id"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "description": "The device token."
                        }
                      }
                    },
                    {
                      "type": "object",
                      "required": [
                        "platform"
                      ],
                      "properties": {
                        "platform": {
                          "enum": [
                            "ios",
                            "android"
                          ],
                          "type": "string",
                          "description": "The device/messaging platform."
                        },
                        "last_used": {
                          "type": "integer",
                          "format": "unix timestamp",
                          "description": "The `timestamp` when you last identified this device. If you don't pass a timestamp when you add or update a device, we use the time of the request itself. Our SDKs identify a device when a person launches their app."
                        },
                        "attributes": {
                          "type": "object",
                          "properties": {
                            "device_os": {
                              "type": "string",
                              "description": "The operating system, including the version, on the device."
                            },
                            "app_version": {
                              "type": "string",
                              "description": "The version of your app that a customer uses. You might target app versions to let people know when they need to update, or expose them to new features when they do."
                            },
                            "_last_status": {
                              "enum": [
                                "",
                                "bounced",
                                "sent",
                                "suppressed"
                              ],
                              "type": "string",
                              "readOnly": true,
                              "description": "The delivery status of the last message sent to the device—sent, bounced, or suppressed. An empty string indicates that that the device hasn't received a push yet."
                            },
                            "device_model": {
                              "type": "string",
                              "description": "The model of the device a person uses."
                            },
                            "push_enabled": {
                              "enum": [
                                "true",
                                "false"
                              ],
                              "type": "string",
                              "description": "If `\"true\"`, the device is opted-in and can receive push notifications."
                            },
                            "device_locale": {
                              "type": "string",
                              "description": "The four-letter [IETF language code](https://customer.io/docs/api/app/) for the device. For example, `en-MX` (indicating an app in Spanish formatted for a user in Mexico) or `es-ES` (indicating an app in Spanish formatted for a user in Spain)."
                            },
                            "cio_sdk_version": {
                              "type": "string",
                              "description": "The version of the Customer.io SDK in the app."
                            }
                          },
                          "description": "Attributes that you can reference to segment your audience—like a person's attributes, but specific to a device. These can be either the attributes defined below or custom key-value attributes.",
                          "additionalProperties": {
                            "type": "string",
                            "description": "Custom properties that you want to associate with the device.",
                            "x-additionalPropertiesName": "Custom Device Attributes"
                          }
                        }
                      },
                      "description": "Device information common to the v1 and v2 APIs."
                    }
                  ],
                  "description": "The properties representing an individual device. [Our SDK's](https://customer.io/docs/api/app/) gather all the properties defined below automatically, unless you disable the `autoTrackDeviceAttributes` setting. You can reference the properties outside the `attributes` object in segments or in Liquid."
                },
                "description": "Lists the devices associated with the customer profile."
              },
              "attributes": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "example": "42",
                    "nullable": true,
                    "description": "The ID of a customer profile, analogous to a \"person\" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null."
                  },
                  "email": {
                    "type": "string",
                    "example": "test@example.com",
                    "nullable": true,
                    "description": "The email address of the customer."
                  },
                  "cio_id": {
                    "type": "string",
                    "example": "a3000001",
                    "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
                  },
                  "cio_subscription_preferences": {
                    "type": "string",
                    "description": "A person's stringified subscription preferences. These are preferences that a person set through the subscription center or attributes that you set on a person. A person who hasn't set their subscription preferences has computed preferences based on the nature of your topics (opt-in or opt-out). See the `_cio_subscription_preferences_computed` attribute for computed preferences.\n"
                  },
                  "_cio_subscription_preferences_computed": {
                    "type": "string",
                    "description": "Returns the computed subscription preferences for a person—any subscription preferences set on a person and the defaults for any subscription preferences _not_ set on a person—as stringified JSON. For example, if you have an \"opt-in\" topic that a person hasn't set a preference for, that topic would show `false`—even though a person doesn't have that attribute on their profile. [Learn more about topics](https://customer.io/docs/api/app/).  \n"
                  }
                },
                "description": "Contains attributes assigned to this profile, including your workspace's people-identifiers (by default, these are `id`, `email`, and `cio_id`). Attributes are all stored as strings.",
                "additionalProperties": {
                  "type": "string",
                  "description": "Non-identifier attributes assigned to this person.",
                  "x-additionalPropertiesName": "additional attributes"
                }
              },
              "timestamps": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "integer",
                    "format": "unix timestamp",
                    "description": "The date-time when the person's ID was generated."
                  },
                  "email": {
                    "type": "integer",
                    "format": "unix timestamp",
                    "description": "The date-time when the person's email address was added."
                  },
                  "cio_id": {
                    "type": "integer",
                    "format": "unix timestamp",
                    "description": "The date-time when `cio_id` was assigned."
                  },
                  "unsubscribed": {
                    "type": "integer",
                    "format": "unix timestamp",
                    "description": "The date-time when the person unsubscribed."
                  },
                  "_last_emailed": {
                    "type": "integer",
                    "format": "unix timestamp",
                    "description": "The date-time when you last emailed a person."
                  },
                  "additionalProperties": {
                    "format": "unix timestamp",
                    "description": "Timestamps when attributes assigned to the person were set.",
                    "x-additionalPropertiesName": "additional attribute timestamps"
                  },
                  "cio_subscription_preferences": {
                    "type": "integer",
                    "format": "unix timestamp",
                    "description": "The datetime when a person's subscription preferences were last updated."
                  },
                  "_cio_subscription_preferences_computed": {
                    "type": "integer",
                    "description": "Because this value is computed and not actually set on a person, this value is always 0"
                  }
                },
                "description": "The epoch timestamps when corresponding attributes were set on the customer profile."
              },
              "identifiers": {
                "type": "object",
                "required": [
                  "email",
                  "id",
                  "cio_id"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "example": 2,
                    "nullable": true,
                    "description": "A person's unique ID, if set. This is the same as the `customer_id` if present."
                  },
                  "email": {
                    "type": "string",
                    "format": "email",
                    "example": "test@example.com",
                    "nullable": true,
                    "description": "A person's email address, if set."
                  },
                  "cio_id": {
                    "type": "string",
                    "example": "a3000001",
                    "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers."
                  }
                },
                "description": "Contains identifiers for the person represented in a response—`id`, `cio_id`, and `email` (if your workspace uses the *Email or ID* setting). If the person's `id` or `email` is not set, the value will be null.\n\nWe recommend that you use this object rather than the less descriptive `customer_id`.\n"
              },
              "unsubscribed": {
                "type": "boolean",
                "description": "If true, the person is unsubscribed from messages."
              }
            },
            "description": "The profile you referenced by ID in the request."
          }
        }
      }
    }
  }
}

Versions

Version Endpoints Schemas Ingested Status
1.0.0 111 440 2026-05-11 current
1.0.0 111 440 2026-04-16