CustomersLookupRelationshipsResponse
{
"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."
},
"cio_relationships": {
"type": "array",
"items": {
"type": "object",
"properties": {
"attributes": {
"type": "object",
"description": "Attributes for the relationship between the person and the object.",
"additionalProperties": {
"x-additionalPropertiesName": "Object Attributes"
}
},
"timestamps": {
"type": "object",
"description": "Unix timestamps when the object's attributes were last updated.",
"additionalProperties": {
"type": "integer",
"format": "unix timestamp",
"x-additionalPropertiesName": "Object Attribute Timestamps"
}
},
"identifiers": {
"type": "object",
"properties": {
"object_id": {
"type": "string",
"description": "The ID of the object that the customer is related to."
},
"cio_object_id": {
"type": "string",
"description": "The canonical, immutable identifier for the object that the customer is related to."
}
},
"description": "The `object_id` and `cio_object_id` that a person is related to."
},
"object_type_id": {
"type": "integer",
"description": "The type of object that the customer is related to."
}
}
},
"description": "A list of \"objects\" that the customer is related to; each JSON object in the array represents an \"object\" in Customer.io."
}
}
}
CustomersLookupSegmentsResponse
{
"type": "object",
"properties": {
"segments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The segment identifier."
},
"name": {
"type": "string",
"description": "The name of the segment."
},
"description": {
"type": "string",
"description": "The description of the segment, as entered in the UI."
}
}
}
}
}
}
CustomersSearchFilterRequest
{
"type": "object",
"required": [
"filter"
],
"properties": {
"filter": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"type": "object",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *any* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
},
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *all* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
},
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
},
"description": "Match *any* condition to return results."
}
}
},
{
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"type": "object",
"title": "People Filter",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *any* conditions."
},
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *all* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
},
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "When filtering for people, you can use `and` and `or` arrays to determine the logic for a group of filter conditions. `not` reverses the filter condition and matches when the condition is false. `segment` and `attribute` represent the individual conditions you can filter a group of people for."
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"title": "People Filter",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *any* conditions."
},
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *all* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
},
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "When filtering for people, you can use `and` and `or` arrays to determine the logic for a group of filter conditions. `not` reverses the filter condition and matches when the condition is false. `segment` and `attribute` represent the individual conditions you can filter a group of people for."
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"title": "not",
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
],
"title": "Audience Filter",
"description": "Describe the customers you want to return. Use `and`, `or`, and `not` arrays to group and determine the logic for filter criteria. You can nest and, or, and not arrays to produce complex filters."
}
}
}
CustomersSearchFilterResponse
{
"type": "object",
"example": {
"ids": [
1,
2
],
"next": "MDox",
"identifiers": [
{
"id": 1,
"email": "person@example.com",
"cio_id": 3000001
},
{
"id": 2,
"email": "second.person@exapmle.com",
"cio_id": 3000002
}
]
},
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "In general, you should use the `identifiers` array. This array contains identifiers for people captured in your filter. However, as of June 2021, some workspaces let you add people without an `id`. Entries without an `id` are empty strings in this array, where the `identifiers` array contains more complete information for each person captured in the filter.\n"
},
"next": {
"type": "string",
"description": "The `start` value for the next page of results."
},
"identifiers": {
"type": "array",
"items": {
"type": "object",
"required": [
"email",
"id",
"cio_id"
],
"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": "An array of objects, where each object represents a customer. Each object contains identifiers for a customer."
}
}
}
EspSuppressionEmailAddressResponse
{
"type": "object",
"example": {},
"properties": {}
}
EspSuppressionGetEmailsByTypeResponse
{
"type": "object",
"properties": {
"category": {
"enum": [
"bounces",
"blocks",
"spam",
"invalid"
],
"type": "string",
"example": "bounces",
"description": "The reason the addresses are suppressed."
},
"suppressions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"email": {
"type": "string",
"example": "bounced.person@example.com",
"description": "The email address that the ESP suppressed."
},
"reason": {
"type": "string",
"example": "Uploaded manually via api.customer.io",
"description": "The reason for the suppression, as [recorded by Mailgun](https://documentation.mailgun.com/en/latest/api-suppressions.html)."
},
"status": {
"type": "string",
"example": "550",
"description": "The status code for the suppression, as [recorded by mailgun](https://documentation.mailgun.com/en/latest/api-suppressions.html). This is normally `550`."
},
"created": {
"type": "integer",
"format": "Unix timestamp",
"example": 1650895738,
"description": "The timestamp (in seconds), when the ESP suppressed the address."
}
}
},
"description": "The addresses suppressed in this category."
}
}
}
EspSuppressionLookupAddressResponse
{
"type": "object",
"properties": {
"category": {
"enum": [
"bounces",
"blocks",
"spam",
"invalid"
],
"type": "string",
"example": "bounces",
"description": "The reason the addresses are suppressed."
},
"suppressions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"email": {
"type": "string",
"example": "bounced.person@example.com",
"description": "The email address that the ESP suppressed."
},
"reason": {
"type": "string",
"example": "Uploaded manually via api.customer.io",
"description": "The reason for the suppression, as [recorded by Mailgun](https://documentation.mailgun.com/en/latest/api-suppressions.html)."
},
"status": {
"type": "string",
"example": "550",
"description": "The status code for the suppression, as [recorded by mailgun](https://documentation.mailgun.com/en/latest/api-suppressions.html). This is normally `550`."
},
"created": {
"type": "integer",
"format": "Unix timestamp",
"example": 1650895738,
"description": "The timestamp (in seconds), when the ESP suppressed the address."
}
}
},
"description": "The addresses suppressed in this category."
}
}
}
ExportsCreateCustomerExportRequest
{
"type": "object",
"required": [
"filters"
],
"properties": {
"filters": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"type": "object",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *any* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
},
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *all* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
},
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
},
"description": "Match *any* condition to return results."
}
}
},
{
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"type": "object",
"title": "People Filter",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *any* conditions."
},
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *all* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
},
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "When filtering for people, you can use `and` and `or` arrays to determine the logic for a group of filter conditions. `not` reverses the filter condition and matches when the condition is false. `segment` and `attribute` represent the individual conditions you can filter a group of people for."
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"title": "People Filter",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *any* conditions."
},
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Returns results matching *all* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
]
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
},
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "When filtering for people, you can use `and` and `or` arrays to determine the logic for a group of filter conditions. `not` reverses the filter condition and matches when the condition is false. `segment` and `attribute` represent the individual conditions you can filter a group of people for."
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
}
},
{
"type": "object",
"title": "attribute",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
}
}
],
"title": "not",
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
{
"type": "object",
"title": "segment",
"properties": {
"segment": {
"type": "object",
"title": "segment",
"properties": {
"id": {
"type": "integer",
"example": 4,
"description": "The ID of the segment you want to return people from."
}
},
"description": "Provide the `id` of a segment containing people you want to search for."
}
},
"description": "Filter for people who belong to a segment."
},
{
"type": "object",
"title": "audience",
"properties": {
"attribute": {
"type": "object",
"title": "attribute",
"example": {
"field": "unsubscribed",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "first_name",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if a person in the audience has the attribute; `eq` returns results if the audience has the attribute and the attribute has the `value` you specify."
}
},
"description": "Filter your audience by attribute."
}
},
"description": "filter for people who have an attribute or an attribute value."
}
],
"title": "Audience Filter",
"description": "When filtering for people, you can use `and` and `or` arrays to determine the logic for a group of filter conditions. `not` reverses the filter condition and matches when the condition is false. `segment` and `attribute` represent the individual conditions you can filter a group of people for.\n\nThe top level of this object can only contain a single property, but you can nest `and` and `or` properties to produce complex filters.\n"
}
}
}
ExportsCreateCustomerExportResponse
{
"type": "object",
"properties": {
"export": {
"type": "object",
"example": {
"id": 110,
"type": "customers",
"total": 1234,
"failed": false,
"status": "done",
"user_id": 0,
"downloads": 2,
"created_at": 1530296738,
"updated_at": 1530296738,
"user_email": "person@email.com",
"description": "Customers with segment filters—in \\Purchased Flowers\\",
"deduplicate_id": "110:1530296738"
},
"properties": {
"id": {
"type": "integer",
"example": 110,
"description": "The identifier for the export."
},
"type": {
"enum": [
"customers",
"deliveries"
],
"type": "string",
"example": "customers",
"description": "The type of information contained in the export."
},
"total": {
"type": "integer",
"description": "The number of entries in the export. Exports report 0 until done."
},
"failed": {
"type": "boolean",
"example": false,
"description": "If true, the export was unsuccessful."
},
"status": {
"enum": [
"done",
"pending",
"failed"
],
"type": "string",
"description": "The state of your export where `done` indicates an export that you can download, `pending`, indicates that your export is not ready to download, and `failed` indicates an export that has failed and will not be downloadable."
},
"user_id": {
"type": "integer",
"description": "The user who created the export."
},
"downloads": {
"type": "integer",
"example": 2,
"description": "Counts the total number of times the export has been downloaded."
},
"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."
},
"user_email": {
"type": "string",
"description": "The email of the user who created the export."
},
"description": {
"type": "string",
"example": "Customers with segment filters—in Purchased Flowers",
"description": "A description of the export."
},
"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."
}
},
"description": "Metadata about an export."
}
}
}
ExportsDownloadExportSignedLinkResponse
{
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "url",
"description": "A link to download your export. Expires after 15 minutes."
}
}
}
ExportsExportDeliveriesInfoRequest
{
"oneOf": [
{
"allOf": [
{
"type": "object",
"required": [
"newsletter_id"
],
"properties": {
"newsletter_id": {
"type": "integer",
"example": 999,
"description": "The ID of a newsletter you want to export information from."
}
}
},
{
"type": "object",
"properties": {
"end": {
"type": "integer",
"format": "unix timestamp",
"example": 1517702400,
"description": "The unix timestamp representing the end of the export."
},
"start": {
"type": "integer",
"format": "unix timestamp",
"example": 1517529600,
"description": "The unix timestamp representing the beginning of the export."
},
"drafts": {
"type": "boolean",
"description": "If true, your request returns both drafts and active/sent messages."
},
"metric": {
"enum": [
"created",
"attempted",
"sent",
"delivered",
"opened",
"clicked",
"converted",
"bounced",
"spammed",
"unsubscribed",
"dropped",
"failed",
"undeliverable"
],
"type": "string",
"description": "Determines the metric(s) you want to return."
},
"attributes": {
"type": "array",
"items": {
"type": "string"
},
"description": "The names of attributes you want to include in your export; each attribute name is an additional column in the export. If your message included liquid, you may add the attribute names used in your message so you can see the values populated for each delivery."
}
},
"description": "Contains properties shared by export filters."
}
],
"title": "Newsletter"
},
{
"allOf": [
{
"type": "object",
"required": [
"campaign_id"
],
"properties": {
"campaign_id": {
"type": "integer",
"example": 46,
"description": "The ID of a campaign you want to export information from."
}
}
},
{
"type": "object",
"properties": {
"end": {
"type": "integer",
"format": "unix timestamp",
"example": 1517702400,
"description": "The unix timestamp representing the end of the export."
},
"start": {
"type": "integer",
"format": "unix timestamp",
"example": 1517529600,
"description": "The unix timestamp representing the beginning of the export."
},
"drafts": {
"type": "boolean",
"description": "If true, your request returns both drafts and active/sent messages."
},
"metric": {
"enum": [
"created",
"attempted",
"sent",
"delivered",
"opened",
"clicked",
"converted",
"bounced",
"spammed",
"unsubscribed",
"dropped",
"failed",
"undeliverable"
],
"type": "string",
"description": "Determines the metric(s) you want to return."
},
"attributes": {
"type": "array",
"items": {
"type": "string"
},
"description": "The names of attributes you want to include in your export; each attribute name is an additional column in the export. If your message included liquid, you may add the attribute names used in your message so you can see the values populated for each delivery."
}
},
"description": "Contains properties shared by export filters."
}
],
"title": "Campaign"
},
{
"allOf": [
{
"type": "object",
"required": [
"transactional_message_id"
],
"properties": {
"transactional_message_id": {
"type": "integer",
"example": 22,
"description": "The ID of the transactional message you want to export information for."
}
}
},
{
"type": "object",
"properties": {
"end": {
"type": "integer",
"format": "unix timestamp",
"example": 1517702400,
"description": "The unix timestamp representing the end of the export."
},
"start": {
"type": "integer",
"format": "unix timestamp",
"example": 1517529600,
"description": "The unix timestamp representing the beginning of the export."
},
"drafts": {
"type": "boolean",
"description": "If true, your request returns both drafts and active/sent messages."
},
"metric": {
"enum": [
"created",
"attempted",
"sent",
"delivered",
"opened",
"clicked",
"converted",
"bounced",
"spammed",
"unsubscribed",
"dropped",
"failed",
"undeliverable"
],
"type": "string",
"description": "Determines the metric(s) you want to return."
},
"attributes": {
"type": "array",
"items": {
"type": "string"
},
"description": "The names of attributes you want to include in your export; each attribute name is an additional column in the export. If your message included liquid, you may add the attribute names used in your message so you can see the values populated for each delivery."
}
},
"description": "Contains properties shared by export filters."
}
],
"title": "Transactional Message"
},
{
"allOf": [
{
"type": "object",
"required": [
"action_id"
],
"properties": {
"action_id": {
"type": "integer",
"example": 77,
"description": "The ID of an action you want to export information from."
}
}
},
{
"type": "object",
"properties": {
"end": {
"type": "integer",
"format": "unix timestamp",
"example": 1517702400,
"description": "The unix timestamp representing the end of the export."
},
"start": {
"type": "integer",
"format": "unix timestamp",
"example": 1517529600,
"description": "The unix timestamp representing the beginning of the export."
},
"drafts": {
"type": "boolean",
"description": "If true, your request returns both drafts and active/sent messages."
},
"metric": {
"enum": [
"created",
"attempted",
"sent",
"delivered",
"opened",
"clicked",
"converted",
"bounced",
"spammed",
"unsubscribed",
"dropped",
"failed",
"undeliverable"
],
"type": "string",
"description": "Determines the metric(s) you want to return."
},
"attributes": {
"type": "array",
"items": {
"type": "string"
},
"description": "The names of attributes you want to include in your export; each attribute name is an additional column in the export. If your message included liquid, you may add the attribute names used in your message so you can see the values populated for each delivery."
}
},
"description": "Contains properties shared by export filters."
}
],
"title": "Action"
}
]
}
ExportsExportDeliveriesInfoResponse
{
"type": "object",
"example": {
"export": {
"id": "111,",
"type": "deliveries",
"failed": false,
"downloads": 0,
"created_at": 1530296742,
"updated_at": 1530296742,
"description": "Full deliveries export (created via the api)",
"deduplicate_id": "110:1530296738"
}
},
"properties": {
"export": {
"type": "object",
"example": {
"id": 110,
"type": "customers",
"total": 1234,
"failed": false,
"status": "done",
"user_id": 0,
"downloads": 2,
"created_at": 1530296738,
"updated_at": 1530296738,
"user_email": "person@email.com",
"description": "Customers with segment filters—in \\Purchased Flowers\\",
"deduplicate_id": "110:1530296738"
},
"properties": {
"id": {
"type": "integer",
"example": 110,
"description": "The identifier for the export."
},
"type": {
"enum": [
"customers",
"deliveries"
],
"type": "string",
"example": "customers",
"description": "The type of information contained in the export."
},
"total": {
"type": "integer",
"description": "The number of entries in the export. Exports report 0 until done."
},
"failed": {
"type": "boolean",
"example": false,
"description": "If true, the export was unsuccessful."
},
"status": {
"enum": [
"done",
"pending",
"failed"
],
"type": "string",
"description": "The state of your export where `done` indicates an export that you can download, `pending`, indicates that your export is not ready to download, and `failed` indicates an export that has failed and will not be downloadable."
},
"user_id": {
"type": "integer",
"description": "The user who created the export."
},
"downloads": {
"type": "integer",
"example": 2,
"description": "Counts the total number of times the export has been downloaded."
},
"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."
},
"user_email": {
"type": "string",
"description": "The email of the user who created the export."
},
"description": {
"type": "string",
"example": "Customers with segment filters—in Purchased Flowers",
"description": "A description of the export."
},
"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."
}
},
"description": "Metadata about an export."
}
}
}
ExportsGetExportInfoResponse
{
"type": "object",
"properties": {
"export": {
"type": "object",
"example": {
"id": 110,
"type": "customers",
"total": 1234,
"failed": false,
"status": "done",
"user_id": 0,
"downloads": 2,
"created_at": 1530296738,
"updated_at": 1530296738,
"user_email": "person@email.com",
"description": "Customers with segment filters—in \\Purchased Flowers\\",
"deduplicate_id": "110:1530296738"
},
"properties": {
"id": {
"type": "integer",
"example": 110,
"description": "The identifier for the export."
},
"type": {
"enum": [
"customers",
"deliveries"
],
"type": "string",
"example": "customers",
"description": "The type of information contained in the export."
},
"total": {
"type": "integer",
"description": "The number of entries in the export. Exports report 0 until done."
},
"failed": {
"type": "boolean",
"example": false,
"description": "If true, the export was unsuccessful."
},
"status": {
"enum": [
"done",
"pending",
"failed"
],
"type": "string",
"description": "The state of your export where `done` indicates an export that you can download, `pending`, indicates that your export is not ready to download, and `failed` indicates an export that has failed and will not be downloadable."
},
"user_id": {
"type": "integer",
"description": "The user who created the export."
},
"downloads": {
"type": "integer",
"example": 2,
"description": "Counts the total number of times the export has been downloaded."
},
"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."
},
"user_email": {
"type": "string",
"description": "The email of the user who created the export."
},
"description": {
"type": "string",
"example": "Customers with segment filters—in Purchased Flowers",
"description": "A description of the export."
},
"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."
}
},
"description": "Metadata about an export."
}
}
}
ExportsListMetricsResponse
{
"type": "object",
"properties": {
"exports": {
"type": "array",
"items": {
"type": "object",
"example": {
"id": 110,
"type": "customers",
"total": 1234,
"failed": false,
"status": "done",
"user_id": 0,
"downloads": 2,
"created_at": 1530296738,
"updated_at": 1530296738,
"user_email": "person@email.com",
"description": "Customers with segment filters—in \\Purchased Flowers\\",
"deduplicate_id": "110:1530296738"
},
"properties": {
"id": {
"type": "integer",
"example": 110,
"description": "The identifier for the export."
},
"type": {
"enum": [
"customers",
"deliveries"
],
"type": "string",
"example": "customers",
"description": "The type of information contained in the export."
},
"total": {
"type": "integer",
"description": "The number of entries in the export. Exports report 0 until done."
},
"failed": {
"type": "boolean",
"example": false,
"description": "If true, the export was unsuccessful."
},
"status": {
"enum": [
"done",
"pending",
"failed"
],
"type": "string",
"description": "The state of your export where `done` indicates an export that you can download, `pending`, indicates that your export is not ready to download, and `failed` indicates an export that has failed and will not be downloadable."
},
"user_id": {
"type": "integer",
"description": "The user who created the export."
},
"downloads": {
"type": "integer",
"example": 2,
"description": "Counts the total number of times the export has been downloaded."
},
"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."
},
"user_email": {
"type": "string",
"description": "The email of the user who created the export."
},
"description": {
"type": "string",
"example": "Customers with segment filters—in Purchased Flowers",
"description": "A description of the export."
},
"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."
}
},
"description": "Metadata about an export."
}
}
}
}
ImportsBulkUploadCsvRequest
{
"type": "object",
"required": [
"import"
],
"properties": {
"import": {
"oneOf": [
{
"type": "object",
"title": "people",
"required": [
"data_file_url",
"name",
"type",
"identifier"
],
"properties": {
"name": {
"type": "string",
"description": "A friendly name for your import. This helps you identify your import."
},
"type": {
"enum": [
"people"
],
"type": "string",
"description": "The type of import."
},
"identifier": {
"enum": [
"id",
"email"
],
"type": "string",
"description": "The type of identifier you want to use to identify people in your sheet—`id` or `email`. At least one column in the CSV must contain an identifier."
},
"description": {
"type": "string",
"description": "A helpful description that can help you find and recognize your import operation."
},
"data_file_url": {
"type": "string",
"description": "The URL or path to the CSV file you want to import."
},
"data_to_process": {
"enum": [
"all",
"only_new",
"only_existing"
],
"type": "string",
"description": "Determines whether your import operation performs `all` add/update operations, only adds items (`only_new`), or only updates existing items (`only_existing`). Defaults to `all`. If `import_type` is `event`, you can only use `all` or `only_existing`. \n\nThis field was previously called `people_to_process` - we still support it but will deprecate it soon.\n"
}
},
"description": "Contains your import parameters."
},
{
"type": "object",
"title": "event",
"required": [
"data_file_url",
"name",
"type",
"identifier"
],
"properties": {
"name": {
"type": "string",
"description": "A friendly name for your import. This helps you identify your import."
},
"type": {
"enum": [
"event"
],
"type": "string",
"description": "The type of import."
},
"identifier": {
"enum": [
"id",
"email"
],
"type": "string",
"description": "The type of identifier you want to use to identify people in your sheet—`id` or `email`. At least one column in the CSV must contain an identifier."
},
"description": {
"type": "string",
"description": "A helpful description that can help you find and recognize your import operation."
},
"data_file_url": {
"type": "string",
"description": "The URL or path to the CSV file you want to import."
},
"data_to_process": {
"enum": [
"all",
"only_new",
"only_existing"
],
"type": "string",
"description": "Determines whether your import operation performs `all` add/update operations, only adds items (`only_new`), or only updates existing items (`only_existing`). Defaults to `all`. If `import_type` is `event`, you can only use `all` or `only_existing`. \n\nThis field was previously called `people_to_process` - we still support it but will deprecate it soon.\n"
}
},
"description": "Contains your import parameters."
},
{
"type": "object",
"title": "relationship",
"required": [
"data_file_url",
"name",
"type",
"identifier",
"object_type_id"
],
"properties": {
"name": {
"type": "string",
"description": "A friendly name for your import. This helps you identify your import."
},
"type": {
"enum": [
"relationship"
],
"type": "string",
"description": "The type of import."
},
"identifier": {
"enum": [
"id",
"email"
],
"type": "string",
"description": "The type of identifier you want to use to identify people in your sheet—`id` or `email`. At least one column in the CSV must contain an identifier."
},
"description": {
"type": "string",
"description": "A helpful description that can help you find and recognize your import operation."
},
"data_file_url": {
"type": "string",
"description": "The URL or path to the CSV file you want to import."
},
"data_to_process": {
"enum": [
"all",
"only_new",
"only_existing"
],
"type": "string",
"description": "Determines whether your import operation performs `all` add/update operations, only adds items (`only_new`), or only updates existing items (`only_existing`). Defaults to `all`. If `import_type` is `event`, you can only use `all` or `only_existing`. \n\nThis field was previously called `people_to_process` - we still support it but will deprecate it soon.\n"
}
},
"description": "Contains your import parameters."
},
{
"type": "object",
"title": "object",
"required": [
"data_file_url",
"name",
"type",
"object_type_id"
],
"properties": {
"name": {
"type": "string",
"description": "A friendly name for your import. This helps you identify your import."
},
"type": {
"enum": [
"object"
],
"type": "string",
"description": "The type of import."
},
"description": {
"type": "string",
"description": "A helpful description that can help you find and recognize your import operation."
},
"data_file_url": {
"type": "string",
"description": "The URL or path to the CSV file you want to import."
},
"object_type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
},
"data_to_process": {
"enum": [
"all",
"only_new",
"only_existing"
],
"type": "string",
"description": "Determines whether your import operation performs `all` add/update operations, only adds items (`only_new`), or only updates existing items (`only_existing`). Defaults to `all`. If `import_type` is `event`, you can only use `all` or `only_existing`. \n\nThis field was previously called `people_to_process` - we still support it but will deprecate it soon.\n"
}
},
"description": "Contains your import parameters."
}
]
}
}
}
ImportsBulkUploadCsvResponse
{
"type": "object",
"required": [
"import"
],
"properties": {
"import": {
"type": "object",
"example": {
"id": 30,
"name": "account-object-import",
"type": "object",
"error": "possible error - The specified Object Type does not exist.",
"state": "imported",
"created_at": 1706081641,
"updated_at": 1706081645,
"description": "importing accounts",
"rows_imported": 3,
"object_type_id": 1,
"rows_to_import": 3,
"data_to_process": "all",
"people_to_process": "all"
},
"properties": {
"id": {
"type": "integer",
"description": "This is the `import_id` you'll use if you want to [lookup your import operation](https://customer.io/docs/api/app/)."
},
"name": {
"type": "string",
"description": "A friendly name for your import. This helps you identify your import."
},
"type": {
"enum": [
"people",
"event",
"object",
"relationship"
],
"type": "string",
"description": "The type of import."
},
"error": {
"type": "string",
"description": "If your import fails, this helps you understand why."
},
"state": {
"enum": [
"preprocessing",
"preprocessed",
"validating",
"validated",
"importing",
"imported",
"failed",
"canceled"
],
"type": "string",
"description": "The state of the import—whether your import is being processed, fully completed (`imported`), or if it failed."
},
"created_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"identifier": {
"enum": [
"id",
"email"
],
"type": "string",
"description": "The type of identifier you used to identify people in your CSV. Not applicable for object imports."
},
"updated_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"description": {
"type": "string",
"description": "A helpful description that can help you find and recognize your import operation."
},
"rows_imported": {
"type": "integer",
"description": "The number of rows we imported from the CSV."
},
"object_type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Only applies to object imports."
},
"rows_to_import": {
"type": "integer",
"description": "The total number of importable rows we found in the CSV."
},
"data_to_process": {
"enum": [
"all",
"only_new",
"only_existing"
],
"type": "string",
"description": "Determines whether your import operation performs `all` add/update operations, only adds items (`only_new`), or only updates existing items (`only_existing`). Defaults to `all`. If `import_type` is `event`, you can only use `all` or `only_existing`. \n\nThis field was previously called `people_to_process` - we still support it but will deprecate it soon.\n"
},
"people_to_process": {
"enum": [
"all",
"only_new",
"only_existing"
],
"type": "string",
"description": "Returned for people and event imports, even if you imported using the field `data_to_process`. This field will be deprecated soon.\n"
}
},
"description": "Represents an import operation."
}
}
}
ImportsGetBulkImportResponse
{
"type": "object",
"required": [
"import"
],
"properties": {
"import": {
"allOf": [
{
"type": "object",
"example": {
"id": 30,
"name": "account-object-import",
"type": "object",
"error": "possible error - The specified Object Type does not exist.",
"state": "imported",
"created_at": 1706081641,
"updated_at": 1706081645,
"description": "importing accounts",
"rows_imported": 3,
"object_type_id": 1,
"rows_to_import": 3,
"data_to_process": "all",
"people_to_process": "all"
},
"properties": {
"id": {
"type": "integer",
"description": "This is the `import_id` you'll use if you want to [lookup your import operation](https://customer.io/docs/api/app/)."
},
"name": {
"type": "string",
"description": "A friendly name for your import. This helps you identify your import."
},
"type": {
"enum": [
"people",
"event",
"object",
"relationship"
],
"type": "string",
"description": "The type of import."
},
"error": {
"type": "string",
"description": "If your import fails, this helps you understand why."
},
"state": {
"enum": [
"preprocessing",
"preprocessed",
"validating",
"validated",
"importing",
"imported",
"failed",
"canceled"
],
"type": "string",
"description": "The state of the import—whether your import is being processed, fully completed (`imported`), or if it failed."
},
"created_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"identifier": {
"enum": [
"id",
"email"
],
"type": "string",
"description": "The type of identifier you used to identify people in your CSV. Not applicable for object imports."
},
"updated_at": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"description": {
"type": "string",
"description": "A helpful description that can help you find and recognize your import operation."
},
"rows_imported": {
"type": "integer",
"description": "The number of rows we imported from the CSV."
},
"object_type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Only applies to object imports."
},
"rows_to_import": {
"type": "integer",
"description": "The total number of importable rows we found in the CSV."
},
"data_to_process": {
"enum": [
"all",
"only_new",
"only_existing"
],
"type": "string",
"description": "Determines whether your import operation performs `all` add/update operations, only adds items (`only_new`), or only updates existing items (`only_existing`). Defaults to `all`. If `import_type` is `event`, you can only use `all` or `only_existing`. \n\nThis field was previously called `people_to_process` - we still support it but will deprecate it soon.\n"
},
"people_to_process": {
"enum": [
"all",
"only_new",
"only_existing"
],
"type": "string",
"description": "Returned for people and event imports, even if you imported using the field `data_to_process`. This field will be deprecated soon.\n"
}
},
"description": "Represents an import operation."
}
]
}
}
}
InfoListIpAddressesResponse
{
"type": "object",
"properties": {
"ip_addresses": {
"type": "array",
"items": {
"type": "string",
"format": "ip address"
},
"example": [
"35.188.196.183",
"104.198.177.219",
"104.154.232.87",
"130.211.229.195",
"104.198.221.24",
"104.197.27.15",
"35.194.9.154",
"104.154.144.51",
"104.197.210.12",
"35.225.6.73"
]
}
}
}
MessagesGetArchivedMessageResponse
{
"type": "object",
"properties": {
"archived_message": {
"type": "object",
"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."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"url": {
"type": "string",
"example": "http://example.com/webhook",
"description": "The URL of a webhook or action."
},
"body": {
"type": "string",
"example": "<!DOCTYPE html><html><head>\\n<meta http-equiv=\\\"Content-Type\\\" content=\\\"text/html; charset=UTF-8\\\"/><h1>Hello World</h1>\\n\\n</body></html>",
"description": "The body of the variant. 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`."
},
"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."
},
"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"
},
"reply_to": {
"type": "string",
"example": "replyto@example.com",
"readOnly": true,
"description": "The address that receives replies for the message, if applicable."
},
"forgotten": {
"type": "boolean",
"example": false,
"description": "If true, Customer.io does not retain the message content."
},
"recipient": {
"type": "string",
"example": "person@example.com",
"description": "The recipient address for an action."
},
"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."
},
"request_method": {
"enum": [
"GET",
"POST",
"PUT",
"DELETE",
"PATCH"
],
"type": "string",
"example": "POST",
"description": "The method used in conjunction with a webhook `url`."
}
},
"description": "An archived message, including a complete message body.\n"
}
},
"description": "Describes an archived message delivery."
}
MessagesGetMessageMetricsResponse
{
"type": "object",
"properties": {
"message": {
"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."
}
},
"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."
}
MessagesListDeliveriesResponse
{
"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."
},
"description": "Each object in the array 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."
}
}
}
NewslettersGetLinkMetricsResponse
{
"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."
}
}
}
}
}
}
NewslettersGetMessageMetadataResponse
{
"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": null,
"forgotten": false,
"recipient": "person@email.com",
"content_id": 178,
"campaign_id": null,
"customer_id": "1a55d8d1-b13d-4f1f-858f-a93ef21e3a7d",
"broadcast_id": null,
"newsletter_id": 72,
"deduplicate_id": "dgOq6QWq6QUDAAF22PaOyFVqVxHY3rI5fsg=:1609957872",
"failure_message": null,
"msg_template_id": 178
}
]
}
}
}
NewslettersGetMetadataResponse
{
"type": "object",
"properties": {
"newsletter": {
"type": "object",
"example": {
"id": 128275,
"name": "Example Newsletter",
"tags": [
"Example Tag"
],
"type": "email",
"created": 1481653929,
"sent_at": null,
"updated": 1484870424,
"content_ids": [
45,
90
],
"deduplicate_id": "128275:1484870424",
"recipient_segment_ids": [
10
],
"subscription_topic_id": 1
},
"properties": {
"id": {
"type": "integer",
"example": 10,
"description": "The identifier for a newsletter."
},
"name": {
"type": "string",
"readOnly": true,
"description": "The name of the newsletter."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of tags you set on this newsletter."
},
"type": {
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push",
"in_app"
],
"type": "string",
"description": "The type of newsletter—`email`, `twilio`, etc."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"sent_at": {
"type": "integer",
"format": "unix timestamp",
"description": "The last time the newsletter was sent."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"content_ids": {
"type": "array",
"items": {
"type": "integer"
},
"description": "A list of languages in a multi-language newsletter and/or A/B test variants for this message. [Look up a newsletter variant](https://customer.io/docs/api/app/) to get more information about an individual content ID."
},
"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."
},
"recipient_segment_ids": {
"type": "array",
"items": {
"type": "integer"
},
"description": "A list of segments used in a newsletter's recipient filter, returned if newsletter recipients were filtered by one or more segments."
},
"subscription_topic_id": {
"type": "integer",
"example": 1,
"description": "The identifier of a subscription topic. Remember, subscription topics are assigned an incrementing number, starting at 1."
}
}
}
}
}
NewslettersGetMetricsResponse
{
"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."
}
]
}
}
}
}
}
NewslettersGetNewsletterVariantLinkMetricsResponse
{
"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 newsletter variant."
}
}
}
NewslettersGetTranslationInfoResponse
{
"type": "object",
"properties": {
"content": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true,
"description": "The identifier of a newsletter variant—a language in a multi-language newsletter or a test in an A/B test."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"example": "<strong>Hello from the API</strong>",
"description": "The body of the variant. 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": "newsletter variant A",
"readOnly": true,
"description": "The name of the variant, if it exists."
},
"type": {
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push"
],
"type": "string",
"example": "email",
"readOnly": true,
"description": "The type of message/action."
},
"layout": {
"type": "string",
"example": "<html><body>{{ content }}</body></html>",
"readOnly": true,
"description": "The layout used for the variant, if it exists."
},
"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."
},
"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."
},
"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."
},
"newsletter_id": {
"type": "integer",
"example": 10,
"readOnly": 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."
},
"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."
}
}
}
}
}
NewslettersGetTranslationResponse
{
"type": "object",
"properties": {
"content": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true,
"description": "The identifier of a newsletter variant—a language in a multi-language newsletter or a test in an A/B test."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"example": "<strong>Hello from the API</strong>",
"description": "The body of the variant. 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": "newsletter variant A",
"readOnly": true,
"description": "The name of the variant, if it exists."
},
"type": {
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push"
],
"type": "string",
"example": "email",
"readOnly": true,
"description": "The type of message/action."
},
"layout": {
"type": "string",
"example": "<html><body>{{ content }}</body></html>",
"readOnly": true,
"description": "The layout used for the variant, if it exists."
},
"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."
},
"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."
},
"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."
},
"newsletter_id": {
"type": "integer",
"example": 10,
"readOnly": 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."
},
"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."
}
}
}
}
}
NewslettersGetVariantInfoResponse
{
"type": "object",
"properties": {
"content": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true,
"description": "The identifier of a newsletter variant—a language in a multi-language newsletter or a test in an A/B test."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"example": "<strong>Hello from the API</strong>",
"description": "The body of the variant. 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": "newsletter variant A",
"readOnly": true,
"description": "The name of the variant, if it exists."
},
"type": {
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push"
],
"type": "string",
"example": "email",
"readOnly": true,
"description": "The type of message/action."
},
"layout": {
"type": "string",
"example": "<html><body>{{ content }}</body></html>",
"readOnly": true,
"description": "The layout used for the variant, if it exists."
},
"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."
},
"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."
},
"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."
},
"newsletter_id": {
"type": "integer",
"example": 10,
"readOnly": 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."
},
"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."
}
}
}
}
}
NewslettersGetVariantMetricsResponse
{
"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."
}
]
}
}
}
}
}
NewslettersListNewslettersResponse
{
"type": "object",
"properties": {
"newsletters": {
"type": "array",
"items": {
"type": "object",
"example": {
"id": 128275,
"name": "Example Newsletter",
"tags": [
"Example Tag"
],
"type": "email",
"created": 1481653929,
"sent_at": null,
"updated": 1484870424,
"content_ids": [
45,
90
],
"deduplicate_id": "128275:1484870424",
"recipient_segment_ids": [
10
],
"subscription_topic_id": 1
},
"properties": {
"id": {
"type": "integer",
"example": 10,
"description": "The identifier for a newsletter."
},
"name": {
"type": "string",
"readOnly": true,
"description": "The name of the newsletter."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "An array of tags you set on this newsletter."
},
"type": {
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push",
"in_app"
],
"type": "string",
"description": "The type of newsletter—`email`, `twilio`, etc."
},
"created": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was created."
},
"sent_at": {
"type": "integer",
"format": "unix timestamp",
"description": "The last time the newsletter was sent."
},
"updated": {
"type": "integer",
"format": "unix timestamp",
"example": 1552341937,
"readOnly": true,
"description": "The date time when the referenced ID was last updated."
},
"content_ids": {
"type": "array",
"items": {
"type": "integer"
},
"description": "A list of languages in a multi-language newsletter and/or A/B test variants for this message. [Look up a newsletter variant](https://customer.io/docs/api/app/) to get more information about an individual content ID."
},
"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."
},
"recipient_segment_ids": {
"type": "array",
"items": {
"type": "integer"
},
"description": "A list of segments used in a newsletter's recipient filter, returned if newsletter recipients were filtered by one or more segments."
},
"subscription_topic_id": {
"type": "integer",
"example": 1,
"description": "The identifier of a subscription topic. Remember, subscription topics are assigned an incrementing number, starting at 1."
}
}
}
}
}
}
NewslettersListTestGroupsResponse
{
"type": "object",
"example": {
"test_groups": [
{
"id": 0,
"name": "A",
"label": "test 1",
"winner": false,
"content_ids": [
25,
26
]
},
{
"id": 2,
"name": "B",
"label": "test 2",
"winner": false,
"content_ids": [
27,
28
]
}
]
},
"properties": {
"test_groups": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "The ID of the A/B test group."
},
"name": {
"type": "string",
"description": "The name of the A/B test group."
},
"label": {
"type": "string",
"description": "The name of the variant."
},
"winner": {
"type": "boolean",
"description": "Whether this variant is the winner of the test."
},
"content_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of content_ids for each variant in the test group."
}
}
},
"description": "Each object represents one of the test groups."
}
}
}
NewslettersListVariantsResponse
{
"type": "object",
"properties": {
"contents": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true,
"description": "The identifier of a newsletter variant—a language in a multi-language newsletter or a test in an A/B test."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"example": "<strong>Hello from the API</strong>",
"description": "The body of the variant. 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": "newsletter variant A",
"readOnly": true,
"description": "The name of the variant, if it exists."
},
"type": {
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push"
],
"type": "string",
"example": "email",
"readOnly": true,
"description": "The type of message/action."
},
"layout": {
"type": "string",
"example": "<html><body>{{ content }}</body></html>",
"readOnly": true,
"description": "The layout used for the variant, if it exists."
},
"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."
},
"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."
},
"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."
},
"newsletter_id": {
"type": "integer",
"example": 10,
"readOnly": 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."
},
"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."
}
}
}
}
}
}
NewslettersUpdateTranslation200Response
{
"type": "object",
"properties": {
"content": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true,
"description": "The identifier of a newsletter variant—a language in a multi-language newsletter or a test in an A/B test."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"example": "<strong>Hello from the API</strong>",
"description": "The body of the variant. 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": "newsletter variant A",
"readOnly": true,
"description": "The name of the variant, if it exists."
},
"type": {
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push"
],
"type": "string",
"example": "email",
"readOnly": true,
"description": "The type of message/action."
},
"layout": {
"type": "string",
"example": "<html><body>{{ content }}</body></html>",
"readOnly": true,
"description": "The layout used for the variant, if it exists."
},
"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."
},
"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."
},
"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."
},
"newsletter_id": {
"type": "integer",
"example": 10,
"readOnly": 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."
},
"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."
}
}
}
}
}
NewslettersUpdateTranslationRequest
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true,
"description": "The identifier of a newsletter variant—a language in a multi-language newsletter or a test in an A/B test."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"example": "<strong>Hello from the API</strong>",
"description": "The body of the variant. 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": "newsletter variant A",
"readOnly": true,
"description": "The name of the variant, if it exists."
},
"type": {
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push"
],
"type": "string",
"example": "email",
"readOnly": true,
"description": "The type of message/action."
},
"layout": {
"type": "string",
"example": "<html><body>{{ content }}</body></html>",
"readOnly": true,
"description": "The layout used for the variant, if it exists."
},
"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."
},
"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."
},
"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."
},
"newsletter_id": {
"type": "integer",
"example": 10,
"readOnly": 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."
},
"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."
}
}
}
NewslettersUpdateTranslationRequest1
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true,
"description": "The identifier of a newsletter variant—a language in a multi-language newsletter or a test in an A/B test."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"example": "<strong>Hello from the API</strong>",
"description": "The body of the variant. 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": "newsletter variant A",
"readOnly": true,
"description": "The name of the variant, if it exists."
},
"type": {
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push"
],
"type": "string",
"example": "email",
"readOnly": true,
"description": "The type of message/action."
},
"layout": {
"type": "string",
"example": "<html><body>{{ content }}</body></html>",
"readOnly": true,
"description": "The layout used for the variant, if it exists."
},
"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."
},
"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."
},
"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."
},
"newsletter_id": {
"type": "integer",
"example": 10,
"readOnly": 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."
},
"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."
}
}
}
NewslettersUpdateTranslationResponse
{
"type": "object",
"properties": {
"content": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true,
"description": "The identifier of a newsletter variant—a language in a multi-language newsletter or a test in an A/B test."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"example": "<strong>Hello from the API</strong>",
"description": "The body of the variant. 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": "newsletter variant A",
"readOnly": true,
"description": "The name of the variant, if it exists."
},
"type": {
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push"
],
"type": "string",
"example": "email",
"readOnly": true,
"description": "The type of message/action."
},
"layout": {
"type": "string",
"example": "<html><body>{{ content }}</body></html>",
"readOnly": true,
"description": "The layout used for the variant, if it exists."
},
"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."
},
"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."
},
"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."
},
"newsletter_id": {
"type": "integer",
"example": 10,
"readOnly": 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."
},
"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."
}
}
}
}
}
NewslettersUpdateVariantContentsRequest
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true,
"description": "The identifier of a newsletter variant—a language in a multi-language newsletter or a test in an A/B test."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"example": "<strong>Hello from the API</strong>",
"description": "The body of the variant. 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": "newsletter variant A",
"readOnly": true,
"description": "The name of the variant, if it exists."
},
"type": {
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push"
],
"type": "string",
"example": "email",
"readOnly": true,
"description": "The type of message/action."
},
"layout": {
"type": "string",
"example": "<html><body>{{ content }}</body></html>",
"readOnly": true,
"description": "The layout used for the variant, if it exists."
},
"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."
},
"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."
},
"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."
},
"newsletter_id": {
"type": "integer",
"example": 10,
"readOnly": 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."
},
"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."
}
}
}
NewslettersUpdateVariantContentsResponse
{
"type": "object",
"properties": {
"content": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"readOnly": true,
"description": "The identifier of a newsletter variant—a language in a multi-language newsletter or a test in an A/B test."
},
"bcc": {
"type": "string",
"readOnly": true,
"description": "The blind-copy address(es) for this action."
},
"body": {
"type": "string",
"example": "<strong>Hello from the API</strong>",
"description": "The body of the variant. 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": "newsletter variant A",
"readOnly": true,
"description": "The name of the variant, if it exists."
},
"type": {
"enum": [
"email",
"webhook",
"twilio",
"slack",
"push"
],
"type": "string",
"example": "email",
"readOnly": true,
"description": "The type of message/action."
},
"layout": {
"type": "string",
"example": "<html><body>{{ content }}</body></html>",
"readOnly": true,
"description": "The layout used for the variant, if it exists."
},
"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."
},
"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."
},
"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."
},
"newsletter_id": {
"type": "integer",
"example": 10,
"readOnly": 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."
},
"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."
}
}
}
}
}
ObjectsFindObjectsFilterRequest
{
"type": "object",
"required": [
"object_type_id",
"filter"
],
"properties": {
"filter": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"type": "object",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Returns results matching *any* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "object attribute",
"properties": {
"object_attribute": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"type_id": 1,
"operator": "eq"
},
"required": [
"field",
"operator",
"type_id"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"object_attribute": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"type_id": 1,
"operator": "eq"
},
"required": [
"field",
"operator",
"type_id"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
}
}
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"properties": {
"and": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Returns results matching *all* conditions."
},
"not": {
"oneOf": [
{
"type": "object",
"title": "and",
"properties": {
"and": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Match *all* conditions to return results."
}
}
},
{
"type": "object",
"title": "or",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "object attribute",
"properties": {
"object_attribute": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"type_id": 1,
"operator": "eq"
},
"required": [
"field",
"operator",
"type_id"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
}
}
}
],
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
},
"object_attribute": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"type_id": 1,
"operator": "eq"
},
"required": [
"field",
"operator",
"type_id"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
}
}
},
"description": "Match *any* condition to return results."
}
}
},
{
"type": "object",
"title": "not",
"properties": {
"not": {
"type": "array",
"items": {
"type": "object",
"properties": {
"or": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Returns results matching *any* conditions."
},
"and": {
"type": "array",
"items": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"operator": "eq"
},
"required": [
"field",
"operator"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
},
"description": "Returns results matching *all* conditions."
},
"object_attribute": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"type_id": 1,
"operator": "eq"
},
"required": [
"field",
"operator",
"type_id"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
}
}
},
"description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object."
}
},
"description": null
},
{
"type": "object",
"title": "object attribute",
"properties": {
"object_attribute": {
"type": "object",
"title": "object attribute",
"example": {
"field": "cancelled",
"value": true,
"type_id": 1,
"operator": "eq"
},
"required": [
"field",
"operator",
"type_id"
],
"properties": {
"field": {
"type": "string",
"example": "location",
"description": "The name of the attribute you want to filter against."
},
"value": {
"type": "string",
"description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
},
"type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
},
"operator": {
"enum": [
"eq",
"exists"
],
"type": "string",
"description": "Determine how to evaluate criteria against the field—`exists` returns results if an object has the attribute; `eq` returns results an object's attribute exists and the attribute has the `value` you specify."
}
},
"description": "Filter your objects by their attributes."
}
},
"description": "A simple filter to find objects matching an attribute condition."
}
],
"title": "Object Filter",
"description": "When filtering for objects, you can use `and` and `or` arrays to determine the logic for a group of filter conditions. `not` reverses the filter condition and matches when the condition is false. `object_attribute` represents the individual conditions you can filter a group of people for.\n\nThe top level of this object can only contain a single property, but you can nest `and` and `or` properties to produce complex filters.\n"
},
"object_type_id": {
"type": "string",
"example": "1",
"description": "The type of object you want to search in. Object type IDs are integers passed as strings."
}
}
}
ObjectsFindObjectsFilterResponse
{
"type": "object",
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"acmeInc"
],
"description": "A list of object IDs matching the object_type_id and filter in the request. Items are the same as the `object_id` values under `identifiers`, but this array may be easier to search/sort through if you have a large number of objects and don't need to to use the `cio_object_id`."
},
"next": {
"$ref": "#/components/schemas/next"
},
"identifiers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"object_id": {
"type": "string",
"example": "acmeInc",
"description": "The ID of the object, assigned by you or your systems."
},
"cio_object_id": {
"type": "string",
"example": "ob020101",
"description": "The canonical, immutable identifier for the object, assigned by Customer.io."
}
}
}
}
}
}
ObjectsGetAllObjectTypesResponse
{
"type": "object",
"properties": {
"types": {
"type": "array",
"items": {
"type": "object",
"example": {
"id": "1X",
"icon": "calendar",
"name": "Concerts",
"slug": "concerts",
"enabled": true,
"singular_name": "Concert",
"singular_slug": "concert"
},
"properties": {
"id": {
"type": "string",
"description": "The `object_type_id` that you'll use with the Journeys Track API to create or modify objects. Object type IDs are integers passed as strings."
},
"icon": {
"type": "string",
"description": "The name of the icon or emoji that represents the object type in the Customer.io UI. Most commonly, you'll see this in the left-side navigation panel in Journeys."
},
"name": {
"type": "string",
"description": "The name of the object type."
},
"slug": {
"type": "string",
"description": "The slug of the page in the Customer.io UI for the object type."
},
"enabled": {
"type": "boolean",
"description": "If true, the object type is enabled."
},
"singular_name": {
"type": "string",
"description": "The singular name of the object type."
},
"singular_slug": {
"type": "string",
"description": "The singular slug of the page in the Customer.io UI for the object type."
}
}
}
}
}
}
ObjectsGetAttributesResponse
{
"type": "object",
"properties": {
"object": {
"type": "object",
"properties": {
"attributes": {
"type": "object",
"description": "Attributes assigned to this object.",
"additionalProperties": {
"x-additionalPropertiesName": "Object Attributes"
}
},
"timestamps": {
"type": "object",
"description": "The epoch timestamps when corresponding attributes were set on the object.",
"additionalProperties": {
"type": "integer",
"format": "unix timestamp",
"x-additionalPropertiesName": "Object Attribute Timestamps"
}
},
"identifiers": {
"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_object_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": "Identifies an object."
},
"object_type_id": {
"type": "string",
"example": "1",
"nullable": false,
"description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs are string-formatted integers that begin at `1` and increment for each new type."
}
},
"description": "The object specified in the endpoint path"
}
}
}
ObjectsGetObjectRelationshipsResponse
{
"type": "object",
"properties": {
"next": {
"$ref": "#/components/schemas/next"
},
"cio_relationships": {
"type": "array",
"items": {
"identifiers": {
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/customer_id"
},
"email": {
"$ref": "#/components/schemas/email_address"
},
"cio_id": {
"$ref": "#/components/schemas/cio_id"
}
},
"description": "Identifies an individual person."
},
"object_type_id": {
"$ref": "#/components/schemas/object_type_id"
},
"object_type_disabled": {
"type": "boolean",
"description": "If true, the object is disabled."
}
},
"example": [
{
"identifiers": {
"id": "acmeInc",
"cio_id": "ob020101"
},
"object_type_id": "1",
"object_type_disabled": false
}
],
"description": "A list of people related to the object specified in the endpoint path."
}
}
}
ReportingWebhooksCreateWebhookConfigRequest
{
"type": "object",
"required": [
"name",
"endpoint",
"events"
],
"properties": {
"id": {
"type": "integer",
"example": 4,
"readOnly": true,
"description": "The identifier for the webhook."
},
"name": {
"type": "string",
"example": "my cool webhook",
"description": "The name of your webhook."
},
"events": {
"type": "array",
"items": {
"enum": [
"customer_subscribed",
"customer_unsubscribed",
"cio_subscription_preferences_changed",
"email_drafted",
"email_attempted",
"email_sent",
"email_delivered",
"email_opened",
"email_clicked",
"email_converted",
"email_bounced",
"email_dropped",
"email_deferred",
"email_spammed",
"email_failed",
"email_unsubscribed",
"email_undeliverable",
"push_drafted",
"push_attempted",
"push_sent",
"push_delivered",
"push_opened",
"push_clicked",
"push_converted",
"push_bounced",
"push_dropped",
"push_failed",
"push_undeliverable",
"slack_drafted",
"slack_attempted",
"slack_sent",
"slack_clicked",
"slack_converted",
"slack_failed",
"sms_drafted",
"sms_attempted",
"sms_sent",
"sms_delivered",
"sms_clicked",
"sms_converted",
"sms_bounced",
"sms_failed",
"sms_undeliverable",
"webhook_drafted",
"webhook_attempted",
"webhook_sent",
"webhook_clicked",
"webhook_converted",
"webhook_failed",
"webhook_undeliverable"
],
"type": "string"
},
"example": [
"email_failed",
"webhook_failed"
],
"minItems": 1,
"description": "Specifies the types of events you want to report to your webhook. See our [reporting webhooks reference](https://customer.io/docs/api/app/) for more information about event types and the information they return."
},
"disabled": {
"type": "boolean",
"example": false,
"description": "Set to `true` to quit sending events to the webhook URL. Set to `false` to enable the webhook."
},
"endpoint": {
"type": "string",
"format": "url",
"example": "http://example.com/webhook",
"description": "The webhook URL."
},
"with_content": {
"type": "boolean",
"example": false,
"description": "Set to `true` to include the message `body` in `_sent` events."
},
"full_resolution": {
"type": "boolean",
"default": false,
"example": true,
"description": "Set to `false` to send unique open and click events to the webhook. Set to `true` to send all events."
}
}
}
ReportingWebhooksCreateWebhookConfigResponse
{
"type": "object",
"required": [
"name",
"endpoint",
"events"
],
"properties": {
"id": {
"type": "integer",
"example": 4,
"readOnly": true,
"description": "The identifier for the webhook."
},
"name": {
"type": "string",
"example": "my cool webhook",
"description": "The name of your webhook."
},
"events": {
"type": "array",
"items": {
"enum": [
"customer_subscribed",
"customer_unsubscribed",
"cio_subscription_preferences_changed",
"email_drafted",
"email_attempted",
"email_sent",
"email_delivered",
"email_opened",
"email_clicked",
"email_converted",
"email_bounced",
"email_dropped",
"email_deferred",
"email_spammed",
"email_failed",
"email_unsubscribed",
"email_undeliverable",
"push_drafted",
"push_attempted",
"push_sent",
"push_delivered",
"push_opened",
"push_clicked",
"push_converted",
"push_bounced",
"push_dropped",
"push_failed",
"push_undeliverable",
"slack_drafted",
"slack_attempted",
"slack_sent",
"slack_clicked",
"slack_converted",
"slack_failed",
"sms_drafted",
"sms_attempted",
"sms_sent",
"sms_delivered",
"sms_clicked",
"sms_converted",
"sms_bounced",
"sms_failed",
"sms_undeliverable",
"webhook_drafted",
"webhook_attempted",
"webhook_sent",
"webhook_clicked",
"webhook_converted",
"webhook_failed",
"webhook_undeliverable"
],
"type": "string"
},
"example": [
"email_failed",
"webhook_failed"
],
"minItems": 1,
"description": "Specifies the types of events you want to report to your webhook. See our [reporting webhooks reference](https://customer.io/docs/api/app/) for more information about event types and the information they return."
},
"disabled": {
"type": "boolean",
"example": false,
"description": "Set to `true` to quit sending events to the webhook URL. Set to `false` to enable the webhook."
},
"endpoint": {
"type": "string",
"format": "url",
"example": "http://example.com/webhook",
"description": "The webhook URL."
},
"with_content": {
"type": "boolean",
"example": false,
"description": "Set to `true` to include the message `body` in `_sent` events."
},
"full_resolution": {
"type": "boolean",
"default": false,
"example": true,
"description": "Set to `false` to send unique open and click events to the webhook. Set to `true` to send all events."
}
}
}
ReportingWebhooksGetWebhookInfoResponse
{
"type": "object",
"required": [
"name",
"endpoint",
"events"
],
"properties": {
"id": {
"type": "integer",
"example": 4,
"readOnly": true,
"description": "The identifier for the webhook."
},
"name": {
"type": "string",
"example": "my cool webhook",
"description": "The name of your webhook."
},
"events": {
"type": "array",
"items": {
"enum": [
"customer_subscribed",
"customer_unsubscribed",
"cio_subscription_preferences_changed",
"email_drafted",
"email_attempted",
"email_sent",
"email_delivered",
"email_opened",
"email_clicked",
"email_converted",
"email_bounced",
"email_dropped",
"email_deferred",
"email_spammed",
"email_failed",
"email_unsubscribed",
"email_undeliverable",
"push_drafted",
"push_attempted",
"push_sent",
"push_delivered",
"push_opened",
"push_clicked",
"push_converted",
"push_bounced",
"push_dropped",
"push_failed",
"push_undeliverable",
"slack_drafted",
"slack_attempted",
"slack_sent",
"slack_clicked",
"slack_converted",
"slack_failed",
"sms_drafted",
"sms_attempted",
"sms_sent",
"sms_delivered",
"sms_clicked",
"sms_converted",
"sms_bounced",
"sms_failed",
"sms_undeliverable",
"webhook_drafted",
"webhook_attempted",
"webhook_sent",
"webhook_clicked",
"webhook_converted",
"webhook_failed",
"webhook_undeliverable"
],
"type": "string"
},
"example": [
"email_failed",
"webhook_failed"
],
"minItems": 1,
"description": "Specifies the types of events you want to report to your webhook. See our [reporting webhooks reference](https://customer.io/docs/api/app/) for more information about event types and the information they return."
},
"disabled": {
"type": "boolean",
"example": false,
"description": "Set to `true` to quit sending events to the webhook URL. Set to `false` to enable the webhook."
},
"endpoint": {
"type": "string",
"format": "url",
"example": "http://example.com/webhook",
"description": "The webhook URL."
},
"with_content": {
"type": "boolean",
"example": false,
"description": "Set to `true` to include the message `body` in `_sent` events."
},
"full_resolution": {
"type": "boolean",
"default": false,
"example": true,
"description": "Set to `false` to send unique open and click events to the webhook. Set to `true` to send all events."
}
}
}
ReportingWebhooksListReportingWebhooksResponse
{
"type": "object",
"properties": {
"reporting_webhooks": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"endpoint",
"events"
],
"properties": {
"id": {
"type": "integer",
"example": 4,
"readOnly": true,
"description": "The identifier for the webhook."
},
"name": {
"type": "string",
"example": "my cool webhook",
"description": "The name of your webhook."
},
"events": {
"type": "array",
"items": {
"enum": [
"customer_subscribed",
"customer_unsubscribed",
"cio_subscription_preferences_changed",
"email_drafted",
"email_attempted",
"email_sent",
"email_delivered",
"email_opened",
"email_clicked",
"email_converted",
"email_bounced",
"email_dropped",
"email_deferred",
"email_spammed",
"email_failed",
"email_unsubscribed",
"email_undeliverable",
"push_drafted",
"push_attempted",
"push_sent",
"push_delivered",
"push_opened",
"push_clicked",
"push_converted",
"push_bounced",
"push_dropped",
"push_failed",
"push_undeliverable",
"slack_drafted",
"slack_attempted",
"slack_sent",
"slack_clicked",
"slack_converted",
"slack_failed",
"sms_drafted",
"sms_attempted",
"sms_sent",
"sms_delivered",
"sms_clicked",
"sms_converted",
"sms_bounced",
"sms_failed",
"sms_undeliverable",
"webhook_drafted",
"webhook_attempted",
"webhook_sent",
"webhook_clicked",
"webhook_converted",
"webhook_failed",
"webhook_undeliverable"
],
"type": "string"
},
"example": [
"email_failed",
"webhook_failed"
],
"minItems": 1,
"description": "Specifies the types of events you want to report to your webhook. See our [reporting webhooks reference](https://customer.io/docs/api/app/) for more information about event types and the information they return."
},
"disabled": {
"type": "boolean",
"example": false,
"description": "Set to `true` to quit sending events to the webhook URL. Set to `false` to enable the webhook."
},
"endpoint": {
"type": "string",
"format": "url",
"example": "http://example.com/webhook",
"description": "The webhook URL."
},
"with_content": {
"type": "boolean",
"example": false,
"description": "Set to `true` to include the message `body` in `_sent` events."
},
"full_resolution": {
"type": "boolean",
"default": false,
"example": true,
"description": "Set to `false` to send unique open and click events to the webhook. Set to `true` to send all events."
}
}
}
}
}
}
ReportingWebhooksUpdateConfigurationRequest
{
"type": "object",
"required": [
"name",
"endpoint",
"events"
],
"properties": {
"id": {
"type": "integer",
"example": 4,
"readOnly": true,
"description": "The identifier for the webhook."
},
"name": {
"type": "string",
"example": "my cool webhook",
"description": "The name of your webhook."
},
"events": {
"type": "array",
"items": {
"enum": [
"customer_subscribed",
"customer_unsubscribed",
"cio_subscription_preferences_changed",
"email_drafted",
"email_attempted",
"email_sent",
"email_delivered",
"email_opened",
"email_clicked",
"email_converted",
"email_bounced",
"email_dropped",
"email_deferred",
"email_spammed",
"email_failed",
"email_unsubscribed",
"email_undeliverable",
"push_drafted",
"push_attempted",
"push_sent",
"push_delivered",
"push_opened",
"push_clicked",
"push_converted",
"push_bounced",
"push_dropped",
"push_failed",
"push_undeliverable",
"slack_drafted",
"slack_attempted",
"slack_sent",
"slack_clicked",
"slack_converted",
"slack_failed",
"sms_drafted",
"sms_attempted",
"sms_sent",
"sms_delivered",
"sms_clicked",
"sms_converted",
"sms_bounced",
"sms_failed",
"sms_undeliverable",
"webhook_drafted",
"webhook_attempted",
"webhook_sent",
"webhook_clicked",
"webhook_converted",
"webhook_failed",
"webhook_undeliverable"
],
"type": "string"
},
"example": [
"email_failed",
"webhook_failed"
],
"minItems": 1,
"description": "Specifies the types of events you want to report to your webhook. See our [reporting webhooks reference](https://customer.io/docs/api/app/) for more information about event types and the information they return."
},
"disabled": {
"type": "boolean",
"example": false,
"description": "Set to `true` to quit sending events to the webhook URL. Set to `false` to enable the webhook."
},
"endpoint": {
"type": "string",
"format": "url",
"example": "http://example.com/webhook",
"description": "The webhook URL."
},
"with_content": {
"type": "boolean",
"example": false,
"description": "Set to `true` to include the message `body` in `_sent` events."
},
"full_resolution": {
"type": "boolean",
"default": false,
"example": true,
"description": "Set to `false` to send unique open and click events to the webhook. Set to `true` to send all events."
}
}
}
ReportingWebhooksUpdateConfigurationResponse
{
"type": "object",
"required": [
"name",
"endpoint",
"events"
],
"properties": {
"id": {
"type": "integer",
"example": 4,
"readOnly": true,
"description": "The identifier for the webhook."
},
"name": {
"type": "string",
"example": "my cool webhook",
"description": "The name of your webhook."
},
"events": {
"type": "array",
"items": {
"enum": [
"customer_subscribed",
"customer_unsubscribed",
"cio_subscription_preferences_changed",
"email_drafted",
"email_attempted",
"email_sent",
"email_delivered",
"email_opened",
"email_clicked",
"email_converted",
"email_bounced",
"email_dropped",
"email_deferred",
"email_spammed",
"email_failed",
"email_unsubscribed",
"email_undeliverable",
"push_drafted",
"push_attempted",
"push_sent",
"push_delivered",
"push_opened",
"push_clicked",
"push_converted",
"push_bounced",
"push_dropped",
"push_failed",
"push_undeliverable",
"slack_drafted",
"slack_attempted",
"slack_sent",
"slack_clicked",
"slack_converted",
"slack_failed",
"sms_drafted",
"sms_attempted",
"sms_sent",
"sms_delivered",
"sms_clicked",
"sms_converted",
"sms_bounced",
"sms_failed",
"sms_undeliverable",
"webhook_drafted",
"webhook_attempted",
"webhook_sent",
"webhook_clicked",
"webhook_converted",
"webhook_failed",
"webhook_undeliverable"
],
"type": "string"
},
"example": [
"email_failed",
"webhook_failed"
],
"minItems": 1,
"description": "Specifies the types of events you want to report to your webhook. See our [reporting webhooks reference](https://customer.io/docs/api/app/) for more information about event types and the information they return."
},
"disabled": {
"type": "boolean",
"example": false,
"description": "Set to `true` to quit sending events to the webhook URL. Set to `false` to enable the webhook."
},
"endpoint": {
"type": "string",
"format": "url",
"example": "http://example.com/webhook",
"description": "The webhook URL."
},
"with_content": {
"type": "boolean",
"example": false,
"description": "Set to `true` to include the message `body` in `_sent` events."
},
"full_resolution": {
"type": "boolean",
"default": false,
"example": true,
"description": "Set to `false` to send unique open and click events to the webhook. Set to `true` to send all events."
}
}
}