{
  "components": {
    "parameters": {
      "workspace_id_header": {
        "x-scalar-ignore": true,
        "name": "X-Workspace-Id",
        "in": "header",
        "required": false,
        "description": "The numeric ID of the workspace you want to send a message in. This header is only needed when you authenticate with a service-account bearer token (`sa_live_…`). Service accounts work across workspaces, so you must supply this header so we know which workspace to send from. You can omit this header when you authenticate with a standard App API key, which is always scoped to one workspace.\n",
        "schema": {
          "type": "integer",
          "example": 100
        }
      },
      "object_type_id": {
        "name": "object_type_id",
        "description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Object type IDs begin at `1` and increment for each new type.",
        "in": "path",
        "required": true,
        "schema": {
          "type": "integer",
          "example": 1
        }
      },
      "object_id": {
        "name": "object_id",
        "description": "The `object_id` or `cio_object_id` of an object, depending on the `id_type` specified in query params. `id_type` defaults to `object_id`.",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string",
          "example": "abc123"
        }
      },
      "suppression_type": {
        "name": "suppression_type",
        "description": "The reason a person's email address was suppressed by the email service provider (ESP).",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string",
          "enum": [
            "blocks",
            "bounces",
            "spam_reports",
            "invalid_emails"
          ]
        }
      },
      "transactional_id": {
        "name": "transactional_id",
        "description": "The identifier of your transactional message. You'll find this in the UI or URL of your transactional message. For example, if this is the path of a transactional message URL - `/transactional/3/templates/139` - the `transactional_id` is 3.",
        "in": "path",
        "required": true,
        "schema": {
          "type": "integer"
        }
      },
      "collection_id": {
        "name": "collection_id",
        "description": "The identifier for a collection.",
        "in": "path",
        "required": true,
        "schema": {
          "type": "integer"
        }
      },
      "delivery_id": {
        "name": "delivery_id",
        "description": "The delivery resulting in a request to unsubscribe.",
        "in": "path",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "activityTypes": {
        "name": "type",
        "description": "The type of activity you want to search for. Types with `_o:<object_type_id>` are for objects and types with `_r:<object_type_id>` are for relationships.",
        "in": "query",
        "required": false,
        "schema": {
          "x-scalar-ignore": true,
          "description": "The type of activity. Types with `_o:<object_type_id>` are for objects and types with `_r:<object_type_id>` are for relationships.",
          "type": "string",
          "enum": [
            "add_relationship",
            "anon_merge",
            "attempted_action",
            "attempted_email",
            "attempted_in_app",
            "attempted_push",
            "attempted_slack",
            "attempted_twilio",
            "attempted_webhook",
            "attempted_whatsapp",
            "attribute_change",
            "bounced_action",
            "bounced_email",
            "bounced_push",
            "bounced_twilio",
            "bounced_whatsapp",
            "clicked_action",
            "clicked_content",
            "clicked_email",
            "clicked_in_app",
            "clicked_push",
            "clicked_twilio",
            "clicked_webhook",
            "converted_action",
            "converted_content",
            "converted_email",
            "converted_in_app",
            "converted_slack",
            "converted_twilio",
            "converted_webhook",
            "converted_whatsapp",
            "deferred_action",
            "deferred_email",
            "deferred_in_app",
            "deferred_push",
            "deferred_slack",
            "deferred_twilio",
            "deferred_webhook",
            "deferred_whatsapp",
            "delete_relationship",
            "delivered_action",
            "delivered_email",
            "delivered_push",
            "delivered_twilio",
            "delivered_whatsapp",
            "device_change",
            "drafted_action",
            "drafted_email",
            "drafted_in_app",
            "drafted_push",
            "drafted_slack",
            "drafted_twilio",
            "drafted_webhook",
            "dropped_action",
            "dropped_email",
            "dropped_push",
            "dropped_twilio",
            "dropped_webhook",
            "dropped_whatasapp",
            "event",
            "failed_action",
            "failed_attribute_change",
            "failed_batch_update",
            "failed_email",
            "failed_event",
            "failed_in_app",
            "failed_object_journeys",
            "failed_push",
            "failed_query_collection",
            "failed_slack",
            "failed_twilio",
            "failed_webhook",
            "failed_whatsapp",
            "opened_action",
            "opened_email",
            "opened_in_app",
            "opened_push",
            "page",
            "profile_create",
            "profile_delete",
            "profile_merge",
            "relationship_attribute_change",
            "relationship_failed_attribute_change",
            "screen",
            "sent_action",
            "sent_email",
            "sent_in_app",
            "sent_push",
            "sent_slack",
            "sent_twilio",
            "sent_webhook",
            "sent_whatsapp",
            "skipped_update",
            "spammed_email",
            "suppressed_twilio",
            "suppressed_whatsapp",
            "topic_unsubscribed_email",
            "undeliverable_action",
            "undeliverable_email",
            "undeliverable_in_app",
            "undeliverable_push",
            "undeliverable_slack",
            "undeliverable_twilio",
            "undeliverable_webhook",
            "undeliverable_whatsapp",
            "unsubscribed_action",
            "unsubscribed_email",
            "viewed_content",
            "webhook_event",
            "_o:<object_type_id>:add_relationship",
            "_o:<object_type_id>:attribute_change",
            "_o:<object_type_id>:create",
            "_o:<object_type_id>:delete",
            "_o:<object_type_id>:delete_relationship",
            "_o:<object_type_id>:failed_attribute_change",
            "_r:<object_type_id>:attribute_change",
            "_r:<object_type_id>:failed_attribute_change"
          ],
          "example": "sent_email"
        }
      },
      "sender_id": {
        "name": "sender_id",
        "in": "path",
        "required": true,
        "description": "The identifier of a sender.",
        "schema": {
          "type": "integer"
        }
      },
      "sort": {
        "name": "sort",
        "in": "query",
        "description": "Determine how you want to sort results, `asc` for chronological order and `desc` for reverse chronological order.",
        "required": false,
        "schema": {
          "type": "string",
          "enum": [
            "asc",
            "desc"
          ]
        }
      },
      "activityName": {
        "name": "name",
        "in": "query",
        "description": "The name of the event or attribute you want to return.",
        "required": false,
        "schema": {
          "type": "string",
          "example": "something_happened"
        }
      },
      "deleted": {
        "name": "deleted",
        "in": "query",
        "description": "If true, return results for deleted people.",
        "required": false,
        "schema": {
          "type": "boolean",
          "default": false
        }
      },
      "customer_id_query": {
        "name": "customer_id",
        "required": false,
        "in": "query",
        "description": "The `identifier` of the person you want to look up. By default, this is a person's `id`. You can use the `id_type` parameter to look up a person by `email`, `phone`, or `cio_id`.\n\nIf you use a person's `cio_id`, you must prefix the value with `cio_` when using it to find or reference a person (i.e. `cio_03000010` for a `cio_id` value of 03000010).\n",
        "schema": {
          "type": "string"
        }
      },
      "object_id_type": {
        "name": "id_type",
        "required": false,
        "in": "query",
        "schema": {
          "type": "string",
          "enum": [
            "object_id",
            "cio_object_id"
          ],
          "default": "object_id"
        }
      },
      "id_type": {
        "name": "id_type",
        "required": false,
        "in": "query",
        "description": "The type of `customer_id` you want to use to reference a person. If you don't provide this parameter, we assume that the `customer_id` in your request is a person's `id`. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace); otherwise the request returns `400`. Reference `phone` values in [E.164 format](https://en.wikipedia.org/wiki/E.164), like `+14155552671`, and URL-encode the leading `+` as `%2B`.",
        "schema": {
          "type": "string",
          "enum": [
            "id",
            "email",
            "phone",
            "cio_id"
          ]
        }
      },
      "export_id": {
        "name": "export_id",
        "in": "path",
        "required": true,
        "description": "The export_id you want to access.",
        "schema": {
          "type": "integer"
        }
      },
      "language-1": {
        "name": "language",
        "required": false,
        "in": "query",
        "description": "A [language tag](/journeys/channels/subscriptions/unsubscribe-faqs/#currently-supported-languages) you want the content translated in. If none is provided, the content will be sent in the default language of your subscription center.",
        "schema": {
          "type": "string"
        }
      },
      "language-2": {
        "name": "language",
        "in": "path",
        "required": true,
        "description": "A [language tag](/journeys/channels/subscriptions/unsubscribe-faqs/#currently-supported-languages) of a language variant. If you don't provide a language (an empty string), we'll use your default language. If the language variant does not exist, we'll return an error.",
        "schema": {
          "type": "string"
        }
      },
      "newsletter_id": {
        "name": "newsletter_id",
        "in": "path",
        "required": true,
        "description": "The identifier of a one-time send.",
        "schema": {
          "type": "integer"
        }
      },
      "content_id": {
        "name": "content_id",
        "in": "path",
        "required": true,
        "description": "The identifier of a message in a one-time send. If your one-time send has an A/B test group or includes multiple languages, each variant has its own `content_id`, separate from the `newsletter_id`.\n\nUse [List variants of a one-time send](/integrations/api/app/tag/newsletter-variants/listNewsletterVariants/) to find the `content_id` associated with the right variant.\n",
        "schema": {
          "type": "integer"
        }
      },
      "webhook_id": {
        "name": "webhook_id",
        "in": "path",
        "required": true,
        "description": "The identifier of a webhook.",
        "schema": {
          "type": "integer"
        }
      },
      "message_id": {
        "name": "message_id",
        "in": "path",
        "required": true,
        "description": "The identifier of a message.",
        "schema": {
          "type": "string"
        }
      },
      "campaign_id_query": {
        "name": "campaign_id",
        "in": "query",
        "required": false,
        "description": "The automation you want to filter for.",
        "schema": {
          "type": "integer"
        }
      },
      "newsletter_id_query": {
        "name": "newsletter_id",
        "in": "query",
        "required": false,
        "description": "The one-time send you want to filter for.",
        "schema": {
          "type": "integer"
        }
      },
      "action_id_query": {
        "name": "action_id",
        "in": "query",
        "required": false,
        "description": "The action you want to filter for.",
        "schema": {
          "type": "integer"
        }
      },
      "campaign_id": {
        "name": "campaign_id",
        "in": "path",
        "required": true,
        "description": "The ID of the automation that you want to trigger or return information about.",
        "schema": {
          "type": "integer",
          "example": 3
        }
      },
      "trigger_id": {
        "name": "trigger_id",
        "in": "path",
        "required": true,
        "description": "The ID of the automation trigger that you want to return information for.",
        "schema": {
          "type": "integer",
          "example": 3
        }
      },
      "track_customer_id": {
        "name": "identifier",
        "required": true,
        "in": "path",
        "description": "The unique value representing a person. The values you use to identify a person may be an `id`, `email` address, or the `cio_id` (when updating people), depending on your workspace settings. When you reference people by `cio_id`, you must prefix the value with `cio_`.\n\nYou can't reference a person by their `phone` number here. We determine the identifier type from the shape of the value, so a phone number in the path is treated as an `id`. To identify people by phone number, use the [Track v2 API](/integrations/api/track/tag/track_v2/).\n",
        "schema": {
          "oneOf": [
            {
              "title": "id",
              "type": "string",
              "example": 12345,
              "description": "The unique identifier for a person that you want to create or modify."
            },
            {
              "title": "email",
              "type": "string",
              "example": "person@example.com",
              "description": "A person's email address. If adding a new person in an email-based workspace, you must use this value."
            },
            {
              "title": "cio_id",
              "type": "string",
              "format": "cio_[a-zA-Z0-9]*",
              "description": "A canonical identifier assigned by Customer.io when you add a person. When referencing a person by this value, you must prefix the value with `cio_`. You can [look up a person using the App API](/integrations/api/app/tag/customers/) to find their `cio_id`.\n\nYou must use this value to update a person's other identifiers—their `id` or `email`, unless you enable your workspace's [Allow updates to email using ID](/accounts/workspaces#update-email-with-id) setting.\n",
              "example": "cio_03000001"
            }
          ]
        }
      },
      "trackEvent_customer_id": {
        "name": "identifier",
        "required": true,
        "in": "path",
        "description": "The unique value representing a person. You may identify a person by `id`, `email` address, or the `cio_id` (when updating people), depending on your workspace settings. You can't reference a person by their `phone` number here; a phone number in the path is treated as an `id`. To identify people by phone number, use the [Track v2 API](/integrations/api/track/tag/track_v2/).\n",
        "schema": {
          "oneOf": [
            {
              "title": "id",
              "type": "string",
              "example": 12345,
              "description": "The unique identifier you assigned to a person."
            },
            {
              "title": "email",
              "type": "string",
              "example": "person@example.com",
              "description": "A person's email address."
            },
            {
              "title": "cio_id",
              "type": "string",
              "format": "cio_[a-zA-Z0-9]*",
              "description": "A canonical identifier assigned by Customer.io when you add a person. When referencing a person by this value, you must prefix the value with `cio_`. You can [look up a person using the App API](/integrations/api/app/tag/customers/) to find their `cio_id`, but you must prefix this value with `cio_` when using it to reference a person.\n\nYou can use this value to update a person's other identifiers—their `id` or `email`.\n",
              "example": "cio_03000001"
            }
          ]
        }
      },
      "customer_id": {
        "name": "customer_id",
        "required": true,
        "in": "path",
        "description": "The ID of the customer you want to perform an operation against.",
        "schema": {
          "type": "string",
          "example": 12345
        }
      },
      "device_id": {
        "name": "device_id",
        "in": "path",
        "required": true,
        "description": "The ID of the device you want to perform an operation against.",
        "schema": {
          "type": "string"
        }
      },
      "segment_id": {
        "name": "segment_id",
        "in": "path",
        "required": true,
        "description": "The identifier for a segment. You can find your segment's ID on its page in the dashboard—go to *Segments*, select your segment, and find the ID under *Usage*. Or you can find your segment using the [App API](/integrations/api/app/tag/segments/).",
        "schema": {
          "type": "integer",
          "format": "int32"
        }
      },
      "start": {
        "name": "start",
        "in": "query",
        "required": false,
        "description": "The token for the page of results you want to return. Responses contain a `next` property. Use this property as the `start` value to return the next page of results.",
        "schema": {
          "type": "string"
        }
      },
      "resolution": {
        "name": "res",
        "in": "query",
        "description": "Determines increment for metrics—hourly, daily, weekly, or monthly.",
        "required": true,
        "schema": {
          "type": "string",
          "enum": [
            "hours",
            "hourly",
            "days",
            "daily",
            "weeks",
            "weekly",
            "months",
            "monthly"
          ]
        }
      },
      "journey_resolution": {
        "name": "resolution",
        "in": "query",
        "description": "Determines the increment for journey metrics—hourly, daily, weekly, or monthly.",
        "required": true,
        "schema": {
          "type": "string",
          "enum": [
            "hours",
            "hourly",
            "days",
            "daily",
            "weeks",
            "weekly",
            "months",
            "monthly"
          ]
        }
      },
      "limit": {
        "name": "limit",
        "in": "query",
        "required": false,
        "description": "The maximum number of results you want to retrieve per page.",
        "schema": {
          "type": "integer"
        }
      },
      "limit-10-100": {
        "name": "limit",
        "in": "query",
        "required": false,
        "description": "The maximum number of results you want to retrieve per page.",
        "schema": {
          "type": "integer",
          "default": 10,
          "maximum": 100
        }
      },
      "limit-50-1000": {
        "name": "limit",
        "in": "query",
        "required": false,
        "description": "The maximum number of results you want to retrieve per page.",
        "schema": {
          "type": "integer",
          "default": 50,
          "maximum": 1000
        }
      },
      "limit-100-1000": {
        "name": "limit",
        "in": "query",
        "required": false,
        "description": "The maximum number of results you want to retrieve per page.",
        "schema": {
          "type": "integer",
          "default": 100,
          "maximum": 1000
        }
      },
      "offset": {
        "name": "offset",
        "in": "query",
        "required": false,
        "description": "The number of records to skip before retrieving results.",
        "schema": {
          "type": "integer",
          "default": 0
        }
      },
      "action_id": {
        "name": "action_id",
        "in": "path",
        "required": true,
        "description": "The action you want to lookup or act on.",
        "schema": {
          "type": "integer"
        }
      },
      "period": {
        "name": "period",
        "in": "query",
        "required": false,
        "description": "The unit of time for your report.",
        "schema": {
          "type": "string",
          "default": "days",
          "enum": [
            "hours",
            "days",
            "weeks",
            "months"
          ]
        }
      },
      "steps": {
        "name": "steps",
        "in": "query",
        "required": false,
        "description": "The number of periods you want to return. Defaults to the maximum available, or `12` if the period is in `months`. Maximums are 24 hours, 45 days, 12 weeks, or 121 months. Days start at 00:00 EST. Weeks start at 00:00 EST on Sunday. Months start at 00:00 EST on the 1st of the month.",
        "schema": {
          "type": "integer"
        }
      },
      "metricType": {
        "name": "type",
        "in": "query",
        "required": false,
        "description": "The type of item you want to return metrics for. When empty, the response contains metrics for all possible types.",
        "schema": {
          "type": "string",
          "enum": [
            "email",
            "webhook",
            "twilio",
            "whatsapp",
            "slack",
            "push",
            "in_app",
            "live_notification"
          ]
        }
      },
      "newsletterMetricsType": {
        "name": "type",
        "in": "query",
        "required": false,
        "description": "The type of item you want to return metrics for. When empty, the response contains metrics for all possible types.",
        "schema": {
          "type": "string",
          "enum": [
            "email",
            "webhook",
            "twilio",
            "push",
            "in_app",
            "inbox"
          ]
        }
      },
      "metric": {
        "name": "metric",
        "in": "query",
        "required": false,
        "description": "Determines the metric(s) you want to return.",
        "schema": {
          "type": "string",
          "enum": [
            "attempted",
            "sent",
            "delivered",
            "opened",
            "clicked",
            "converted",
            "bounced",
            "spammed",
            "unsubscribed",
            "dropped",
            "failed",
            "undeliverable"
          ]
        }
      },
      "unique": {
        "name": "unique",
        "in": "query",
        "required": false,
        "description": "If true, the response contains only unique customer results, i.e. a customer who clicks a link twice is only counted once. If false, the response contains the total number of results without regard to uniqueness.",
        "schema": {
          "type": "boolean",
          "default": false
        }
      },
      "drafts": {
        "name": "drafts",
        "in": "query",
        "required": false,
        "description": "If true, your request returns drafts rather than active/sent messages.",
        "schema": {
          "type": "boolean"
        }
      },
      "get_tracked_responses": {
        "name": "get_tracked_responses",
        "in": "query",
        "required": false,
        "description": "If true, the response includes `tracked_responses` for each message—an object containing tracked response option names for in-app survey responses.",
        "schema": {
          "type": "boolean",
          "default": false
        }
      },
      "get_apitb_broadcast_id": {
        "name": "broadcast_id",
        "in": "path",
        "required": true,
        "description": "The ID of the broadcast that you want to return information about.",
        "schema": {
          "type": "integer"
        }
      },
      "broadcast_id": {
        "name": "broadcast_id",
        "in": "path",
        "required": true,
        "description": "The identifier of a broadcast.",
        "schema": {
          "type": "integer"
        }
      },
      "state": {
        "name": "state",
        "in": "query",
        "required": false,
        "description": "The state of a broadcast.",
        "schema": {
          "type": "string",
          "enum": [
            "failed",
            "sent",
            "drafted",
            "attempted"
          ]
        }
      },
      "start_ts": {
        "name": "start_ts",
        "in": "query",
        "required": false,
        "description": "The beginning timestamp for your query.",
        "schema": {
          "type": "integer",
          "format": "unix timestamp"
        }
      },
      "end_ts": {
        "name": "end_ts",
        "in": "query",
        "required": false,
        "description": "The ending timestamp for your query.",
        "schema": {
          "type": "integer",
          "format": "unix timestamp"
        }
      },
      "id_type_segment": {
        "name": "id_type",
        "required": false,
        "in": "query",
        "description": "The type of `ids` you want to use. All of the values in the `ids` array must be of this type. If you don't provide this parameter, we assume that the `ids` array contains `id` values.",
        "schema": {
          "type": "string",
          "enum": [
            "id",
            "email",
            "cio_id"
          ],
          "default": "id"
        }
      }
    },
    "schemas": {
      "anyType": {
        "x-scalar-ignore": true,
        "description": "Can be any type of value."
      },
      "anonymous_id": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "An identifier for an anonymous event, like a cookie. If set as an attribute on a person, any events bearing the same anonymous value are associated with this person. This value must be unique and is not reusable."
      },
      "cio_id": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
        "example": "a3000001"
      },
      "optoutChannels": {
        "x-scalar-ignore": true,
        "type": "array",
        "description": "The senders and channels that the person is opted out of. An entry's presence means the person is opted out of that sender on that channel.",
        "items": {
          "type": "object",
          "properties": {
            "channel": {
              "type": "string",
              "description": "The channel that the person is opted out of.",
              "enum": [
                "sms",
                "whatsapp"
              ],
              "example": "sms"
            },
            "from": {
              "type": "string",
              "description": "The sender that the person is opted out of. For SMS, this is a sender phone number (E.164), an alphanumeric sender ID, or a messaging-service SID; for WhatsApp, it's the sender phone number.",
              "example": "+15551234567"
            }
          }
        }
      },
      "collectionResponse": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "bytes": {
            "type": "integer",
            "description": "The size of the collection in bytes.",
            "example": 296
          },
          "created_at": {
            "x-scalar-ignore": true,
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date time when the referenced ID was created.",
            "example": 1552341937,
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "description": "The identifier for the collection. This is how you'll reference the collection from the API.",
            "example": 1
          },
          "name": {
            "type": "string",
            "description": "The name of the collection. This is how you'll reference the collection in liquid, e.g. `{{collection_name.data_property}}`.",
            "example": "upcoming events"
          },
          "rows": {
            "type": "integer",
            "description": "Represents the number of objects in the `data` array or CSV rows in your collection schema.",
            "example": 2
          },
          "schema": {
            "type": "array",
            "description": "Lists the top-level keys that you can reference within this collection. Customer.io does not enforce any of these keys as required from your `data`.",
            "items": {
              "type": "string"
            },
            "example": [
              "eventDate",
              "eventName",
              "presents"
            ]
          },
          "updated_at": {
            "x-scalar-ignore": true,
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date time when the referenced ID was last updated.",
            "example": 1552341937,
            "readOnly": true
          }
        }
      },
      "exportSharedProps": {
        "x-scalar-ignore": true,
        "description": "Contains properties shared by export filters.",
        "type": "object",
        "properties": {
          "attributes": {
            "description": "Recipient attributes you want to include as extra columns in your export. You can't include event or trigger properties.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "drafts": {
            "x-scalar-ignore": true,
            "description": "If true, your request returns both drafts and active/sent messages.",
            "type": "boolean"
          },
          "end": {
            "x-scalar-ignore": true,
            "description": "The unix timestamp representing the end of the export.",
            "type": "integer",
            "format": "unix timestamp",
            "example": 1517702400
          },
          "metric": {
            "x-scalar-ignore": true,
            "description": "Determines the metric(s) you want to return.",
            "type": "string",
            "enum": [
              "created",
              "attempted",
              "sent",
              "delivered",
              "opened",
              "clicked",
              "converted",
              "bounced",
              "spammed",
              "unsubscribed",
              "dropped",
              "failed",
              "undeliverable"
            ]
          },
          "start": {
            "x-scalar-ignore": true,
            "description": "The unix timestamp representing the beginning of the export.",
            "type": "integer",
            "format": "unix timestamp",
            "example": 1517529600
          },
          "template_id": {
            "type": "integer",
            "description": "Restrict the export to a specific message template (content) within the selected automation, one-time send, or transactional message."
          }
        }
      },
      "next": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "Indicates the next page of results. Add `?start=<next_value>` to the request to get the next page of results."
      },
      "anonymousEventsRequest": {
        "x-scalar-ignore": true,
        "description": "An event attributed to an unknown person. If you provide an `anonymous_id` with the event, you can associate the event with a person later (using the anonymous ID).",
        "oneOf": [
          {
            "title": "Standard anonymous event",
            "type": "object",
            "required": [
              "name"
            ],
            "properties": {
              "name": {
                "type": "string",
                "description": "The name of the event. This is how you'll reference the event in automations or segments."
              },
              "anonymous_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "An identifier for an anonymous event, like a cookie. If set as an attribute on a person, any events bearing the same anonymous value are associated with this person. This value must be unique and is not reusable."
              },
              "data": {
                "type": "object",
                "description": "Additional event data you can reference in Liquid or use to set customer attributes. You can include `from_address` and `reply_to`, but an event only triggers an automation if you associate it with a person within 72 hours.",
                "additionalProperties": {
                  "x-additionalPropertiesName": "liquid merge data",
                  "description": "Insert key-values that you want to reference in messages or convert to attributes if/when you associate this event with a person."
                },
                "properties": {
                  "from_address": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "format": "email",
                    "description": "The address you want to trigger messages from, overriding the `from` field in emails triggered by the event."
                  },
                  "reply_to": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The address that receives replies for the message, if applicable.",
                    "example": "replyto@example.com"
                  }
                }
              },
              "id": {
                "x-scalar-ignore": true,
                "type": "string",
                "format": "ulid",
                "description": "A [ULID](https://github.com/ulid/spec) we use to deduplicate events. If an event repeats a value we've already received, we ignore the duplicate. Our Python and Ruby libraries don't pass this ID."
              },
              "timestamp": {
                "type": "integer",
                "format": "unix timestamp",
                "description": "The unix timestamp when the event took place. If you don't provide this value, we use the date-time when we receive the event.\n"
              },
              "type": {
                "type": "string",
                "description": "Sets the event type. If your event isn't a `page` or `screen` type event, we automatically set this property to `event`.",
                "enum": [
                  "event",
                  "page",
                  "screen"
                ]
              }
            },
            "example": {
              "name": "watched_video",
              "anonymous_id": "abc123",
              "data": {
                "video": "intro-to-platform"
              }
            }
          },
          {
            "title": "Page view",
            "type": "object",
            "required": [
              "name",
              "type"
            ],
            "properties": {
              "name": {
                "type": "string",
                "description": "The name of the event. In general, this should be the URL of the page a person visited, making it easy to segment your audience or trigger automations using this event. Make sure you trim leading and trailing spaces from this field."
              },
              "type": {
                "type": "string",
                "description": "Indicates that the event represents a page view. See [\"page view\" events](/integrations/data-in/connections/javascript/legacy-js/events/#page-view-events), for more information.",
                "enum": [
                  "page"
                ]
              },
              "anonymous_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "An identifier for an anonymous event, like a cookie. If set as an attribute on a person, any events bearing the same anonymous value are associated with this person. This value must be unique and is not reusable."
              },
              "data": {
                "type": "object",
                "description": "Additional information that you might want to reference in a message using liquid or use to set attributes on your customer (referenced by `customer_id`).",
                "additionalProperties": {
                  "x-additionalPropertiesName": "liquid merge data",
                  "description": "Insert key-values that you want to reference in messages or convert to attributes if/when you associate this event with a person."
                }
              },
              "id": {
                "x-scalar-ignore": true,
                "type": "string",
                "format": "ulid",
                "description": "A [ULID](https://github.com/ulid/spec) we use to deduplicate events. If an event repeats a value we've already received, we ignore the duplicate. Our Python and Ruby libraries don't pass this ID."
              },
              "timestamp": {
                "type": "integer",
                "format": "unix timestamp",
                "description": "The unix timestamp when the event took place. If you don't provide this value, we use the date-time when we receive the event.\n"
              }
            },
            "example": {
              "name": "https://mysite.com/page",
              "type": "page",
              "anonymous_id": "abc123",
              "data": {
                "first_name": "Person"
              }
            }
          },
          {
            "title": "Mobile screen view",
            "type": "object",
            "required": [
              "name",
              "type"
            ],
            "properties": {
              "name": {
                "type": "string",
                "description": "The screen or deep link path the person viewed, so you can segment your audience or trigger automations from this event. Trim any leading and trailing spaces."
              },
              "type": {
                "type": "string",
                "description": "Indicates that the event represents a mobile screen view. You can also capture screen events directly with [our iOS SDK](/integrations/sdk/ios/track-events/#screen-view-events).",
                "enum": [
                  "screen"
                ]
              },
              "anonymous_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "An identifier for an anonymous event, like a cookie. If set as an attribute on a person, any events bearing the same anonymous value are associated with this person. This value must be unique and is not reusable."
              },
              "data": {
                "type": "object",
                "description": "Additional information that you might want to reference in a message using liquid or use to set attributes on your customer (referenced by `customer_id`).",
                "additionalProperties": {
                  "x-additionalPropertiesName": "liquid merge data",
                  "description": "Insert key-values that you want to reference in messages or convert to attributes if/when you associate this event with a person."
                }
              },
              "id": {
                "x-scalar-ignore": true,
                "type": "string",
                "format": "ulid",
                "description": "A [ULID](https://github.com/ulid/spec) we use to deduplicate events. If an event repeats a value we've already received, we ignore the duplicate. Our Python and Ruby libraries don't pass this ID."
              },
              "timestamp": {
                "type": "integer",
                "format": "unix timestamp",
                "description": "The unix timestamp when the event took place. If you don't provide this value, we use the date-time when we receive the event.\n"
              }
            },
            "example": {
              "name": "homepage",
              "type": "screen",
              "anonymous_id": "abc123"
            }
          }
        ]
      },
      "dedupe_id": {
        "x-scalar-ignore": true,
        "type": "string",
        "format": "ulid",
        "description": "A [ULID](https://github.com/ulid/spec) we use to deduplicate events. If an event repeats a value we've already received, we ignore the duplicate. Our Python and Ruby libraries don't pass this ID."
      },
      "eventsRequest": {
        "x-scalar-ignore": true,
        "oneOf": [
          {
            "title": "Standard event",
            "type": "object",
            "required": [
              "name"
            ],
            "properties": {
              "name": {
                "type": "string",
                "description": "The name of the event. This is how you'll reference the event in automations or segments."
              },
              "data": {
                "type": "object",
                "description": "Additional information that you might want to reference in a message using liquid or use to set attributes on your customer (referenced by `customer_id`).",
                "additionalProperties": {
                  "x-additionalPropertiesName": "liquid merge data",
                  "description": "Insert key-values that you want to reference in your message here."
                },
                "properties": {
                  "from_address": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "format": "email",
                    "description": "The address you want to trigger messages from, overriding the `from` field in emails triggered by the event."
                  },
                  "recipient": {
                    "x-scalar-ignore": true,
                    "description": "The recipient address for an action.",
                    "type": "string",
                    "example": "{{customer.email}}"
                  },
                  "reply_to": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The address that receives replies for the message, if applicable.",
                    "example": "replyto@example.com"
                  }
                }
              },
              "id": {
                "x-scalar-ignore": true,
                "type": "string",
                "format": "ulid",
                "description": "A [ULID](https://github.com/ulid/spec) we use to deduplicate events. If an event repeats a value we've already received, we ignore the duplicate. Our Python and Ruby libraries don't pass this ID."
              },
              "timestamp": {
                "type": "integer",
                "format": "unix timestamp",
                "description": "The unix timestamp when the event took place. If you don't provide this value, we use the date-time when we receive the event.\n\n**NOTE**: Events with a timestamp in the past 72 hours can trigger automations.\n"
              },
              "type": {
                "type": "string",
                "description": "Sets the event type. If your event isn't a `page` or `screen` type event, we automatically set this property to `event`.",
                "enum": [
                  "event"
                ]
              }
            },
            "example": {
              "name": "purchase",
              "data": {
                "price": 23.45,
                "product": "socks"
              }
            }
          },
          {
            "title": "Page view",
            "type": "object",
            "required": [
              "name",
              "type"
            ],
            "properties": {
              "name": {
                "type": "string",
                "description": "The name of the event. This is how you'll reference the event in automations or segments."
              },
              "type": {
                "type": "string",
                "description": "Indicates that the event represents a page view. See [\"page view\" events](/integrations/data-in/connections/javascript/legacy-js/events/#page-view-events), for more information.",
                "enum": [
                  "page"
                ]
              },
              "data": {
                "type": "object",
                "description": "Additional information that you might want to reference in a message using liquid or use to set attributes on your customer (referenced by `customer_id`).",
                "additionalProperties": {
                  "x-additionalPropertiesName": "liquid merge data",
                  "description": "Insert key-values that you want to reference in messages or convert to attributes if/when you associate this event with a person."
                }
              },
              "id": {
                "x-scalar-ignore": true,
                "type": "string",
                "format": "ulid",
                "description": "A [ULID](https://github.com/ulid/spec) we use to deduplicate events. If an event repeats a value we've already received, we ignore the duplicate. Our Python and Ruby libraries don't pass this ID."
              },
              "timestamp": {
                "type": "integer",
                "format": "unix timestamp",
                "description": "The unix timestamp when the event took place. If you don't provide this value, we use the date-time when we receive the event.\n"
              }
            },
            "example": {
              "name": "https://mysite.com/page",
              "type": "page",
              "data": {
                "first_name": "Cool",
                "last_name": "Person"
              }
            }
          },
          {
            "title": "Mobile screen view",
            "type": "object",
            "required": [
              "anonymous_id",
              "name",
              "type"
            ],
            "properties": {
              "anonymous_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "An identifier for an anonymous event, like a cookie. If set as an attribute on a person, any events bearing the same anonymous value are associated with this person. This value must be unique and is not reusable."
              },
              "name": {
                "type": "string",
                "description": "The screen or deep link path the person viewed, so you can segment your audience or trigger automations from this event. Trim any leading and trailing spaces."
              },
              "type": {
                "type": "string",
                "description": "Indicates that the event represents a mobile screen view. You can also capture screen events directly with [our iOS SDK](/integrations/sdk/ios/track-events/#screen-view-events).",
                "enum": [
                  "screen"
                ]
              },
              "data": {
                "type": "object",
                "description": "Additional information that you might want to reference in a message using liquid or use to set attributes on your customer (referenced by `customer_id`).",
                "additionalProperties": {
                  "x-additionalPropertiesName": "liquid merge data",
                  "description": "Insert key-values that you want to reference in messages or convert to attributes if/when you associate this event with a person."
                }
              },
              "id": {
                "x-scalar-ignore": true,
                "type": "string",
                "format": "ulid",
                "description": "A [ULID](https://github.com/ulid/spec) we use to deduplicate events. If an event repeats a value we've already received, we ignore the duplicate. Our Python and Ruby libraries don't pass this ID."
              },
              "timestamp": {
                "type": "integer",
                "format": "unix timestamp",
                "description": "The unix timestamp when the event took place. If you don't provide this value, we use the date-time when we receive the event.\n"
              }
            },
            "example": {
              "name": "homepage",
              "type": "screen",
              "data": {
                "from": "push-notification"
              }
            }
          }
        ]
      },
      "activityObject": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "customer_id": {
            "x-scalar-ignore": true,
            "type": [
              "string",
              "null"
            ],
            "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.",
            "example": "42"
          },
          "customer_identifiers": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "Identifiers for the person in a response—`id`, `cio_id`, and `email`. Unset `id` or `email` values are `null`. We recommend this object over the less descriptive `customer_id`. This object doesn't include `phone`, even if your workspace uses phone numbers as an identifier; look for the person's `phone` attribute instead.",
            "required": [
              "email",
              "id",
              "cio_id"
            ],
            "properties": {
              "cio_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                "example": "a3000001"
              },
              "email": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "email",
                "description": "A person's email address, if set.",
                "example": "test@example.com"
              },
              "id": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "A person's unique ID, if set. This is the same as the `customer_id` if present.",
                "example": 2
              }
            }
          },
          "data": {
            "oneOf": [
              {
                "title": "Message delivery",
                "type": "object",
                "properties": {
                  "delivered": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "format": "unix timestamp",
                    "description": "The date-time when the message was delivered, if applicable."
                  },
                  "delivery_id": {
                    "type": "string",
                    "description": "The message ID."
                  },
                  "opened": {
                    "type": [
                      "boolean",
                      "null"
                    ],
                    "description": "Indicates whether or not a customer opened a message, if the message was delivered."
                  }
                },
                "example": {
                  "delivered": null,
                  "delivery_id": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ==",
                  "opened": null
                }
              },
              {
                "title": "Attribute change",
                "description": "The name of the object is the attribute that changed.",
                "type": "object",
                "additionalProperties": {
                  "x-scalar-ignore": true,
                  "type": "object",
                  "properties": {
                    "from": {
                      "type": "string",
                      "description": "The old attribute value. If empty, the customer probably didn't bear the attribute before this action."
                    },
                    "to": {
                      "type": "string",
                      "description": "The new attribute value."
                    }
                  }
                },
                "example": {
                  "email": {
                    "from": "newPerson@example.com",
                    "to": "newPerson@customer.io"
                  }
                }
              }
            ]
          },
          "delivery_id": {
            "type": "string",
            "description": "The message ID.",
            "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ=="
          },
          "delivery_type": {
            "type": "string",
            "description": "The recipient device, if applicable.",
            "enum": [
              "ios",
              "android",
              "email",
              "phone"
            ],
            "example": "email"
          },
          "id": {
            "description": "The identifier for the action.",
            "type": "string",
            "example": "01AK4N8V8G8KVA4HN8Y50CCZ59"
          },
          "name": {
            "type": "string",
            "description": "The name of the event, for `event` and `screen` activities."
          },
          "timestamp": {
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date and time when the action occurred.",
            "example": 1397566226
          },
          "type": {
            "x-scalar-ignore": true,
            "description": "The type of activity. Types with `_o:<object_type_id>` are for objects and types with `_r:<object_type_id>` are for relationships.",
            "type": "string",
            "enum": [
              "add_relationship",
              "anon_merge",
              "attempted_action",
              "attempted_email",
              "attempted_in_app",
              "attempted_push",
              "attempted_slack",
              "attempted_twilio",
              "attempted_webhook",
              "attempted_whatsapp",
              "attribute_change",
              "bounced_action",
              "bounced_email",
              "bounced_push",
              "bounced_twilio",
              "bounced_whatsapp",
              "clicked_action",
              "clicked_content",
              "clicked_email",
              "clicked_in_app",
              "clicked_push",
              "clicked_twilio",
              "clicked_webhook",
              "converted_action",
              "converted_content",
              "converted_email",
              "converted_in_app",
              "converted_slack",
              "converted_twilio",
              "converted_webhook",
              "converted_whatsapp",
              "deferred_action",
              "deferred_email",
              "deferred_in_app",
              "deferred_push",
              "deferred_slack",
              "deferred_twilio",
              "deferred_webhook",
              "deferred_whatsapp",
              "delete_relationship",
              "delivered_action",
              "delivered_email",
              "delivered_push",
              "delivered_twilio",
              "delivered_whatsapp",
              "device_change",
              "drafted_action",
              "drafted_email",
              "drafted_in_app",
              "drafted_push",
              "drafted_slack",
              "drafted_twilio",
              "drafted_webhook",
              "dropped_action",
              "dropped_email",
              "dropped_push",
              "dropped_twilio",
              "dropped_webhook",
              "dropped_whatasapp",
              "event",
              "failed_action",
              "failed_attribute_change",
              "failed_batch_update",
              "failed_email",
              "failed_event",
              "failed_in_app",
              "failed_object_journeys",
              "failed_push",
              "failed_query_collection",
              "failed_slack",
              "failed_twilio",
              "failed_webhook",
              "failed_whatsapp",
              "opened_action",
              "opened_email",
              "opened_in_app",
              "opened_push",
              "page",
              "profile_create",
              "profile_delete",
              "profile_merge",
              "relationship_attribute_change",
              "relationship_failed_attribute_change",
              "screen",
              "sent_action",
              "sent_email",
              "sent_in_app",
              "sent_push",
              "sent_slack",
              "sent_twilio",
              "sent_webhook",
              "sent_whatsapp",
              "skipped_update",
              "spammed_email",
              "suppressed_twilio",
              "suppressed_whatsapp",
              "topic_unsubscribed_email",
              "undeliverable_action",
              "undeliverable_email",
              "undeliverable_in_app",
              "undeliverable_push",
              "undeliverable_slack",
              "undeliverable_twilio",
              "undeliverable_webhook",
              "undeliverable_whatsapp",
              "unsubscribed_action",
              "unsubscribed_email",
              "viewed_content",
              "webhook_event",
              "_o:<object_type_id>:add_relationship",
              "_o:<object_type_id>:attribute_change",
              "_o:<object_type_id>:create",
              "_o:<object_type_id>:delete",
              "_o:<object_type_id>:delete_relationship",
              "_o:<object_type_id>:failed_attribute_change",
              "_r:<object_type_id>:attribute_change",
              "_r:<object_type_id>:failed_attribute_change"
            ],
            "example": "sent_email"
          },
          "url": {
            "type": "string",
            "description": "The page URL, for `page` activities."
          }
        }
      },
      "delivery_id": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The instance of a message sent to a person.",
        "example": "ZAIAAVTJVG0QcCok0-0ZKj6yiQ=="
      },
      "activityTypes": {
        "x-scalar-ignore": true,
        "description": "The type of activity. Types with `_o:<object_type_id>` are for objects and types with `_r:<object_type_id>` are for relationships.",
        "type": "string",
        "enum": [
          "add_relationship",
          "anon_merge",
          "attempted_action",
          "attempted_email",
          "attempted_in_app",
          "attempted_push",
          "attempted_slack",
          "attempted_twilio",
          "attempted_webhook",
          "attempted_whatsapp",
          "attribute_change",
          "bounced_action",
          "bounced_email",
          "bounced_push",
          "bounced_twilio",
          "bounced_whatsapp",
          "clicked_action",
          "clicked_content",
          "clicked_email",
          "clicked_in_app",
          "clicked_push",
          "clicked_twilio",
          "clicked_webhook",
          "converted_action",
          "converted_content",
          "converted_email",
          "converted_in_app",
          "converted_slack",
          "converted_twilio",
          "converted_webhook",
          "converted_whatsapp",
          "deferred_action",
          "deferred_email",
          "deferred_in_app",
          "deferred_push",
          "deferred_slack",
          "deferred_twilio",
          "deferred_webhook",
          "deferred_whatsapp",
          "delete_relationship",
          "delivered_action",
          "delivered_email",
          "delivered_push",
          "delivered_twilio",
          "delivered_whatsapp",
          "device_change",
          "drafted_action",
          "drafted_email",
          "drafted_in_app",
          "drafted_push",
          "drafted_slack",
          "drafted_twilio",
          "drafted_webhook",
          "dropped_action",
          "dropped_email",
          "dropped_push",
          "dropped_twilio",
          "dropped_webhook",
          "dropped_whatasapp",
          "event",
          "failed_action",
          "failed_attribute_change",
          "failed_batch_update",
          "failed_email",
          "failed_event",
          "failed_in_app",
          "failed_object_journeys",
          "failed_push",
          "failed_query_collection",
          "failed_slack",
          "failed_twilio",
          "failed_webhook",
          "failed_whatsapp",
          "opened_action",
          "opened_email",
          "opened_in_app",
          "opened_push",
          "page",
          "profile_create",
          "profile_delete",
          "profile_merge",
          "relationship_attribute_change",
          "relationship_failed_attribute_change",
          "screen",
          "sent_action",
          "sent_email",
          "sent_in_app",
          "sent_push",
          "sent_slack",
          "sent_twilio",
          "sent_webhook",
          "sent_whatsapp",
          "skipped_update",
          "spammed_email",
          "suppressed_twilio",
          "suppressed_whatsapp",
          "topic_unsubscribed_email",
          "undeliverable_action",
          "undeliverable_email",
          "undeliverable_in_app",
          "undeliverable_push",
          "undeliverable_slack",
          "undeliverable_twilio",
          "undeliverable_webhook",
          "undeliverable_whatsapp",
          "unsubscribed_action",
          "unsubscribed_email",
          "viewed_content",
          "webhook_event",
          "_o:<object_type_id>:add_relationship",
          "_o:<object_type_id>:attribute_change",
          "_o:<object_type_id>:create",
          "_o:<object_type_id>:delete",
          "_o:<object_type_id>:delete_relationship",
          "_o:<object_type_id>:failed_attribute_change",
          "_r:<object_type_id>:attribute_change",
          "_r:<object_type_id>:failed_attribute_change"
        ],
        "example": "sent_email"
      },
      "attributeChangeAction": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "from": {
            "type": "string",
            "description": "The old attribute value. If empty, the customer probably didn't bear the attribute before this action."
          },
          "to": {
            "type": "string",
            "description": "The new attribute value."
          }
        }
      },
      "segmentAudienceFilter": {
        "x-scalar-ignore": true,
        "title": "segment",
        "type": "object",
        "description": "Provide the `id` of a segment containing people you want to search for.",
        "properties": {
          "id": {
            "type": "integer",
            "description": "The ID of the segment you want to return people from.",
            "example": 4
          }
        }
      },
      "attributeAudienceFilter": {
        "x-scalar-ignore": true,
        "title": "attribute",
        "description": "Filter your audience by attribute.",
        "type": "object",
        "required": [
          "field",
          "operator"
        ],
        "properties": {
          "field": {
            "type": "string",
            "description": "The name of the attribute you want to filter against.",
            "example": "first_name"
          },
          "operator": {
            "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.",
            "enum": [
              "eq",
              "exists"
            ]
          },
          "value": {
            "type": "string",
            "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
          }
        },
        "example": {
          "field": "unsubscribed",
          "operator": "eq",
          "value": true
        }
      },
      "simpleAudienceFilter": {
        "x-scalar-ignore": true,
        "anyOf": [
          {
            "title": "segment",
            "description": "Filter for people who belong to a segment.",
            "type": "object",
            "properties": {
              "segment": {
                "x-scalar-ignore": true,
                "title": "segment",
                "type": "object",
                "description": "Provide the `id` of a segment containing people you want to search for.",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "The ID of the segment you want to return people from.",
                    "example": 4
                  }
                }
              }
            }
          },
          {
            "title": "audience",
            "type": "object",
            "description": "filter for people who have an attribute or an attribute value.",
            "properties": {
              "attribute": {
                "x-scalar-ignore": true,
                "title": "attribute",
                "description": "Filter your audience by attribute.",
                "type": "object",
                "required": [
                  "field",
                  "operator"
                ],
                "properties": {
                  "field": {
                    "type": "string",
                    "description": "The name of the attribute you want to filter against.",
                    "example": "first_name"
                  },
                  "operator": {
                    "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.",
                    "enum": [
                      "eq",
                      "exists"
                    ]
                  },
                  "value": {
                    "type": "string",
                    "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                  }
                },
                "example": {
                  "field": "unsubscribed",
                  "operator": "eq",
                  "value": true
                }
              }
            }
          }
        ]
      },
      "complexAudienceFilter": {
        "x-scalar-ignore": true,
        "title": "People Filter",
        "type": "object",
        "description": "Filter people with `and`, `or`, and `not` groups made from `segment` and `attribute` conditions.",
        "properties": {
          "and": {
            "type": "array",
            "description": "Returns results matching *all* conditions.",
            "items": {
              "x-scalar-ignore": true,
              "anyOf": [
                {
                  "title": "segment",
                  "description": "Filter for people who belong to a segment.",
                  "type": "object",
                  "properties": {
                    "segment": {
                      "x-scalar-ignore": true,
                      "title": "segment",
                      "type": "object",
                      "description": "Provide the `id` of a segment containing people you want to search for.",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "The ID of the segment you want to return people from.",
                          "example": 4
                        }
                      }
                    }
                  }
                },
                {
                  "title": "audience",
                  "type": "object",
                  "description": "filter for people who have an attribute or an attribute value.",
                  "properties": {
                    "attribute": {
                      "x-scalar-ignore": true,
                      "title": "attribute",
                      "description": "Filter your audience by attribute.",
                      "type": "object",
                      "required": [
                        "field",
                        "operator"
                      ],
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "The name of the attribute you want to filter against.",
                          "example": "first_name"
                        },
                        "operator": {
                          "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.",
                          "enum": [
                            "eq",
                            "exists"
                          ]
                        },
                        "value": {
                          "type": "string",
                          "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                        }
                      },
                      "example": {
                        "field": "unsubscribed",
                        "operator": "eq",
                        "value": true
                      }
                    }
                  }
                }
              ]
            }
          },
          "attribute": {
            "x-scalar-ignore": true,
            "title": "attribute",
            "description": "Filter your audience by attribute.",
            "type": "object",
            "required": [
              "field",
              "operator"
            ],
            "properties": {
              "field": {
                "type": "string",
                "description": "The name of the attribute you want to filter against.",
                "example": "first_name"
              },
              "operator": {
                "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.",
                "enum": [
                  "eq",
                  "exists"
                ]
              },
              "value": {
                "type": "string",
                "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
              }
            },
            "example": {
              "field": "unsubscribed",
              "operator": "eq",
              "value": true
            }
          },
          "not": {
            "description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object.",
            "oneOf": [
              {
                "title": "and",
                "type": "object",
                "properties": {
                  "and": {
                    "type": "array",
                    "description": "Match *all* conditions to return results.",
                    "items": {
                      "x-scalar-ignore": true,
                      "anyOf": [
                        {
                          "title": "segment",
                          "description": "Filter for people who belong to a segment.",
                          "type": "object",
                          "properties": {
                            "segment": {
                              "x-scalar-ignore": true,
                              "title": "segment",
                              "type": "object",
                              "description": "Provide the `id` of a segment containing people you want to search for.",
                              "properties": {
                                "id": {
                                  "type": "integer",
                                  "description": "The ID of the segment you want to return people from.",
                                  "example": 4
                                }
                              }
                            }
                          }
                        },
                        {
                          "title": "audience",
                          "type": "object",
                          "description": "filter for people who have an attribute or an attribute value.",
                          "properties": {
                            "attribute": {
                              "x-scalar-ignore": true,
                              "title": "attribute",
                              "description": "Filter your audience by attribute.",
                              "type": "object",
                              "required": [
                                "field",
                                "operator"
                              ],
                              "properties": {
                                "field": {
                                  "type": "string",
                                  "description": "The name of the attribute you want to filter against.",
                                  "example": "first_name"
                                },
                                "operator": {
                                  "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.",
                                  "enum": [
                                    "eq",
                                    "exists"
                                  ]
                                },
                                "value": {
                                  "type": "string",
                                  "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                }
                              },
                              "example": {
                                "field": "unsubscribed",
                                "operator": "eq",
                                "value": true
                              }
                            }
                          }
                        }
                      ]
                    }
                  }
                }
              },
              {
                "title": "or",
                "type": "object",
                "properties": {
                  "or": {
                    "type": "array",
                    "description": "Match *any* condition to return results.",
                    "items": {
                      "x-scalar-ignore": true,
                      "anyOf": [
                        {
                          "title": "segment",
                          "description": "Filter for people who belong to a segment.",
                          "type": "object",
                          "properties": {
                            "segment": {
                              "x-scalar-ignore": true,
                              "title": "segment",
                              "type": "object",
                              "description": "Provide the `id` of a segment containing people you want to search for.",
                              "properties": {
                                "id": {
                                  "type": "integer",
                                  "description": "The ID of the segment you want to return people from.",
                                  "example": 4
                                }
                              }
                            }
                          }
                        },
                        {
                          "title": "audience",
                          "type": "object",
                          "description": "filter for people who have an attribute or an attribute value.",
                          "properties": {
                            "attribute": {
                              "x-scalar-ignore": true,
                              "title": "attribute",
                              "description": "Filter your audience by attribute.",
                              "type": "object",
                              "required": [
                                "field",
                                "operator"
                              ],
                              "properties": {
                                "field": {
                                  "type": "string",
                                  "description": "The name of the attribute you want to filter against.",
                                  "example": "first_name"
                                },
                                "operator": {
                                  "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.",
                                  "enum": [
                                    "eq",
                                    "exists"
                                  ]
                                },
                                "value": {
                                  "type": "string",
                                  "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                }
                              },
                              "example": {
                                "field": "unsubscribed",
                                "operator": "eq",
                                "value": true
                              }
                            }
                          }
                        }
                      ]
                    }
                  }
                }
              },
              {
                "title": "segment",
                "type": "object",
                "properties": {
                  "segment": {
                    "x-scalar-ignore": true,
                    "title": "segment",
                    "type": "object",
                    "description": "Provide the `id` of a segment containing people you want to search for.",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "The ID of the segment you want to return people from.",
                        "example": 4
                      }
                    }
                  }
                }
              },
              {
                "title": "attribute",
                "type": "object",
                "properties": {
                  "attribute": {
                    "x-scalar-ignore": true,
                    "title": "attribute",
                    "description": "Filter your audience by attribute.",
                    "type": "object",
                    "required": [
                      "field",
                      "operator"
                    ],
                    "properties": {
                      "field": {
                        "type": "string",
                        "description": "The name of the attribute you want to filter against.",
                        "example": "first_name"
                      },
                      "operator": {
                        "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.",
                        "enum": [
                          "eq",
                          "exists"
                        ]
                      },
                      "value": {
                        "type": "string",
                        "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                      }
                    },
                    "example": {
                      "field": "unsubscribed",
                      "operator": "eq",
                      "value": true
                    }
                  }
                }
              }
            ]
          },
          "or": {
            "type": "array",
            "description": "Returns results matching *any* conditions.",
            "items": {
              "x-scalar-ignore": true,
              "anyOf": [
                {
                  "title": "segment",
                  "description": "Filter for people who belong to a segment.",
                  "type": "object",
                  "properties": {
                    "segment": {
                      "x-scalar-ignore": true,
                      "title": "segment",
                      "type": "object",
                      "description": "Provide the `id` of a segment containing people you want to search for.",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "The ID of the segment you want to return people from.",
                          "example": 4
                        }
                      }
                    }
                  }
                },
                {
                  "title": "audience",
                  "type": "object",
                  "description": "filter for people who have an attribute or an attribute value.",
                  "properties": {
                    "attribute": {
                      "x-scalar-ignore": true,
                      "title": "attribute",
                      "description": "Filter your audience by attribute.",
                      "type": "object",
                      "required": [
                        "field",
                        "operator"
                      ],
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "The name of the attribute you want to filter against.",
                          "example": "first_name"
                        },
                        "operator": {
                          "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.",
                          "enum": [
                            "eq",
                            "exists"
                          ]
                        },
                        "value": {
                          "type": "string",
                          "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                        }
                      },
                      "example": {
                        "field": "unsubscribed",
                        "operator": "eq",
                        "value": true
                      }
                    }
                  }
                }
              ]
            }
          },
          "segment": {
            "x-scalar-ignore": true,
            "title": "segment",
            "type": "object",
            "description": "Provide the `id` of a segment containing people you want to search for.",
            "properties": {
              "id": {
                "type": "integer",
                "description": "The ID of the segment you want to return people from.",
                "example": 4
              }
            }
          }
        }
      },
      "andAudienceFilter": {
        "x-scalar-ignore": true,
        "title": "and",
        "type": "object",
        "properties": {
          "and": {
            "type": "array",
            "description": "Match *all* conditions to return results.",
            "items": {
              "type": "object",
              "properties": {
                "attribute": {
                  "x-scalar-ignore": true,
                  "title": "attribute",
                  "description": "Filter your audience by attribute.",
                  "type": "object",
                  "required": [
                    "field",
                    "operator"
                  ],
                  "properties": {
                    "field": {
                      "type": "string",
                      "description": "The name of the attribute you want to filter against.",
                      "example": "first_name"
                    },
                    "operator": {
                      "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.",
                      "enum": [
                        "eq",
                        "exists"
                      ]
                    },
                    "value": {
                      "type": "string",
                      "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                    }
                  },
                  "example": {
                    "field": "unsubscribed",
                    "operator": "eq",
                    "value": true
                  }
                },
                "not": {
                  "description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object.",
                  "oneOf": [
                    {
                      "title": "and",
                      "type": "object",
                      "properties": {
                        "and": {
                          "type": "array",
                          "description": "Match *all* conditions to return results.",
                          "items": {
                            "x-scalar-ignore": true,
                            "anyOf": [
                              {
                                "title": "segment",
                                "description": "Filter for people who belong to a segment.",
                                "type": "object",
                                "properties": {
                                  "segment": {
                                    "x-scalar-ignore": true,
                                    "title": "segment",
                                    "type": "object",
                                    "description": "Provide the `id` of a segment containing people you want to search for.",
                                    "properties": {
                                      "id": {
                                        "type": "integer",
                                        "description": "The ID of the segment you want to return people from.",
                                        "example": 4
                                      }
                                    }
                                  }
                                }
                              },
                              {
                                "title": "audience",
                                "type": "object",
                                "description": "filter for people who have an attribute or an attribute value.",
                                "properties": {
                                  "attribute": {
                                    "x-scalar-ignore": true,
                                    "title": "attribute",
                                    "description": "Filter your audience by attribute.",
                                    "type": "object",
                                    "required": [
                                      "field",
                                      "operator"
                                    ],
                                    "properties": {
                                      "field": {
                                        "type": "string",
                                        "description": "The name of the attribute you want to filter against.",
                                        "example": "first_name"
                                      },
                                      "operator": {
                                        "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.",
                                        "enum": [
                                          "eq",
                                          "exists"
                                        ]
                                      },
                                      "value": {
                                        "type": "string",
                                        "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                      }
                                    },
                                    "example": {
                                      "field": "unsubscribed",
                                      "operator": "eq",
                                      "value": true
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    },
                    {
                      "title": "or",
                      "type": "object",
                      "properties": {
                        "or": {
                          "type": "array",
                          "description": "Match *any* condition to return results.",
                          "items": {
                            "x-scalar-ignore": true,
                            "anyOf": [
                              {
                                "title": "segment",
                                "description": "Filter for people who belong to a segment.",
                                "type": "object",
                                "properties": {
                                  "segment": {
                                    "x-scalar-ignore": true,
                                    "title": "segment",
                                    "type": "object",
                                    "description": "Provide the `id` of a segment containing people you want to search for.",
                                    "properties": {
                                      "id": {
                                        "type": "integer",
                                        "description": "The ID of the segment you want to return people from.",
                                        "example": 4
                                      }
                                    }
                                  }
                                }
                              },
                              {
                                "title": "audience",
                                "type": "object",
                                "description": "filter for people who have an attribute or an attribute value.",
                                "properties": {
                                  "attribute": {
                                    "x-scalar-ignore": true,
                                    "title": "attribute",
                                    "description": "Filter your audience by attribute.",
                                    "type": "object",
                                    "required": [
                                      "field",
                                      "operator"
                                    ],
                                    "properties": {
                                      "field": {
                                        "type": "string",
                                        "description": "The name of the attribute you want to filter against.",
                                        "example": "first_name"
                                      },
                                      "operator": {
                                        "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.",
                                        "enum": [
                                          "eq",
                                          "exists"
                                        ]
                                      },
                                      "value": {
                                        "type": "string",
                                        "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                      }
                                    },
                                    "example": {
                                      "field": "unsubscribed",
                                      "operator": "eq",
                                      "value": true
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    },
                    {
                      "title": "segment",
                      "type": "object",
                      "properties": {
                        "segment": {
                          "x-scalar-ignore": true,
                          "title": "segment",
                          "type": "object",
                          "description": "Provide the `id` of a segment containing people you want to search for.",
                          "properties": {
                            "id": {
                              "type": "integer",
                              "description": "The ID of the segment you want to return people from.",
                              "example": 4
                            }
                          }
                        }
                      }
                    },
                    {
                      "title": "attribute",
                      "type": "object",
                      "properties": {
                        "attribute": {
                          "x-scalar-ignore": true,
                          "title": "attribute",
                          "description": "Filter your audience by attribute.",
                          "type": "object",
                          "required": [
                            "field",
                            "operator"
                          ],
                          "properties": {
                            "field": {
                              "type": "string",
                              "description": "The name of the attribute you want to filter against.",
                              "example": "first_name"
                            },
                            "operator": {
                              "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.",
                              "enum": [
                                "eq",
                                "exists"
                              ]
                            },
                            "value": {
                              "type": "string",
                              "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                            }
                          },
                          "example": {
                            "field": "unsubscribed",
                            "operator": "eq",
                            "value": true
                          }
                        }
                      }
                    }
                  ]
                },
                "or": {
                  "type": "array",
                  "description": "Returns results matching *any* conditions.",
                  "items": {
                    "x-scalar-ignore": true,
                    "anyOf": [
                      {
                        "title": "segment",
                        "description": "Filter for people who belong to a segment.",
                        "type": "object",
                        "properties": {
                          "segment": {
                            "x-scalar-ignore": true,
                            "title": "segment",
                            "type": "object",
                            "description": "Provide the `id` of a segment containing people you want to search for.",
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "The ID of the segment you want to return people from.",
                                "example": 4
                              }
                            }
                          }
                        }
                      },
                      {
                        "title": "audience",
                        "type": "object",
                        "description": "filter for people who have an attribute or an attribute value.",
                        "properties": {
                          "attribute": {
                            "x-scalar-ignore": true,
                            "title": "attribute",
                            "description": "Filter your audience by attribute.",
                            "type": "object",
                            "required": [
                              "field",
                              "operator"
                            ],
                            "properties": {
                              "field": {
                                "type": "string",
                                "description": "The name of the attribute you want to filter against.",
                                "example": "first_name"
                              },
                              "operator": {
                                "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.",
                                "enum": [
                                  "eq",
                                  "exists"
                                ]
                              },
                              "value": {
                                "type": "string",
                                "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                              }
                            },
                            "example": {
                              "field": "unsubscribed",
                              "operator": "eq",
                              "value": true
                            }
                          }
                        }
                      }
                    ]
                  }
                },
                "segment": {
                  "x-scalar-ignore": true,
                  "title": "segment",
                  "type": "object",
                  "description": "Provide the `id` of a segment containing people you want to search for.",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "The ID of the segment you want to return people from.",
                      "example": 4
                    }
                  }
                }
              }
            }
          }
        }
      },
      "orAudienceFilter": {
        "x-scalar-ignore": true,
        "title": "or",
        "type": "object",
        "properties": {
          "or": {
            "type": "array",
            "description": "Match *any* condition to return results.",
            "items": {
              "type": "object",
              "properties": {
                "and": {
                  "type": "array",
                  "description": "Returns results matching *all* conditions.",
                  "items": {
                    "x-scalar-ignore": true,
                    "anyOf": [
                      {
                        "title": "segment",
                        "description": "Filter for people who belong to a segment.",
                        "type": "object",
                        "properties": {
                          "segment": {
                            "x-scalar-ignore": true,
                            "title": "segment",
                            "type": "object",
                            "description": "Provide the `id` of a segment containing people you want to search for.",
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "The ID of the segment you want to return people from.",
                                "example": 4
                              }
                            }
                          }
                        }
                      },
                      {
                        "title": "audience",
                        "type": "object",
                        "description": "filter for people who have an attribute or an attribute value.",
                        "properties": {
                          "attribute": {
                            "x-scalar-ignore": true,
                            "title": "attribute",
                            "description": "Filter your audience by attribute.",
                            "type": "object",
                            "required": [
                              "field",
                              "operator"
                            ],
                            "properties": {
                              "field": {
                                "type": "string",
                                "description": "The name of the attribute you want to filter against.",
                                "example": "first_name"
                              },
                              "operator": {
                                "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.",
                                "enum": [
                                  "eq",
                                  "exists"
                                ]
                              },
                              "value": {
                                "type": "string",
                                "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                              }
                            },
                            "example": {
                              "field": "unsubscribed",
                              "operator": "eq",
                              "value": true
                            }
                          }
                        }
                      }
                    ]
                  }
                },
                "attribute": {
                  "x-scalar-ignore": true,
                  "title": "attribute",
                  "description": "Filter your audience by attribute.",
                  "type": "object",
                  "required": [
                    "field",
                    "operator"
                  ],
                  "properties": {
                    "field": {
                      "type": "string",
                      "description": "The name of the attribute you want to filter against.",
                      "example": "first_name"
                    },
                    "operator": {
                      "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.",
                      "enum": [
                        "eq",
                        "exists"
                      ]
                    },
                    "value": {
                      "type": "string",
                      "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                    }
                  },
                  "example": {
                    "field": "unsubscribed",
                    "operator": "eq",
                    "value": true
                  }
                },
                "not": {
                  "description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object.",
                  "oneOf": [
                    {
                      "title": "and",
                      "type": "object",
                      "properties": {
                        "and": {
                          "type": "array",
                          "description": "Match *all* conditions to return results.",
                          "items": {
                            "x-scalar-ignore": true,
                            "anyOf": [
                              {
                                "title": "segment",
                                "description": "Filter for people who belong to a segment.",
                                "type": "object",
                                "properties": {
                                  "segment": {
                                    "x-scalar-ignore": true,
                                    "title": "segment",
                                    "type": "object",
                                    "description": "Provide the `id` of a segment containing people you want to search for.",
                                    "properties": {
                                      "id": {
                                        "type": "integer",
                                        "description": "The ID of the segment you want to return people from.",
                                        "example": 4
                                      }
                                    }
                                  }
                                }
                              },
                              {
                                "title": "audience",
                                "type": "object",
                                "description": "filter for people who have an attribute or an attribute value.",
                                "properties": {
                                  "attribute": {
                                    "x-scalar-ignore": true,
                                    "title": "attribute",
                                    "description": "Filter your audience by attribute.",
                                    "type": "object",
                                    "required": [
                                      "field",
                                      "operator"
                                    ],
                                    "properties": {
                                      "field": {
                                        "type": "string",
                                        "description": "The name of the attribute you want to filter against.",
                                        "example": "first_name"
                                      },
                                      "operator": {
                                        "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.",
                                        "enum": [
                                          "eq",
                                          "exists"
                                        ]
                                      },
                                      "value": {
                                        "type": "string",
                                        "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                      }
                                    },
                                    "example": {
                                      "field": "unsubscribed",
                                      "operator": "eq",
                                      "value": true
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    },
                    {
                      "title": "or",
                      "type": "object",
                      "properties": {
                        "or": {
                          "type": "array",
                          "description": "Match *any* condition to return results.",
                          "items": {
                            "x-scalar-ignore": true,
                            "anyOf": [
                              {
                                "title": "segment",
                                "description": "Filter for people who belong to a segment.",
                                "type": "object",
                                "properties": {
                                  "segment": {
                                    "x-scalar-ignore": true,
                                    "title": "segment",
                                    "type": "object",
                                    "description": "Provide the `id` of a segment containing people you want to search for.",
                                    "properties": {
                                      "id": {
                                        "type": "integer",
                                        "description": "The ID of the segment you want to return people from.",
                                        "example": 4
                                      }
                                    }
                                  }
                                }
                              },
                              {
                                "title": "audience",
                                "type": "object",
                                "description": "filter for people who have an attribute or an attribute value.",
                                "properties": {
                                  "attribute": {
                                    "x-scalar-ignore": true,
                                    "title": "attribute",
                                    "description": "Filter your audience by attribute.",
                                    "type": "object",
                                    "required": [
                                      "field",
                                      "operator"
                                    ],
                                    "properties": {
                                      "field": {
                                        "type": "string",
                                        "description": "The name of the attribute you want to filter against.",
                                        "example": "first_name"
                                      },
                                      "operator": {
                                        "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.",
                                        "enum": [
                                          "eq",
                                          "exists"
                                        ]
                                      },
                                      "value": {
                                        "type": "string",
                                        "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                      }
                                    },
                                    "example": {
                                      "field": "unsubscribed",
                                      "operator": "eq",
                                      "value": true
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    },
                    {
                      "title": "segment",
                      "type": "object",
                      "properties": {
                        "segment": {
                          "x-scalar-ignore": true,
                          "title": "segment",
                          "type": "object",
                          "description": "Provide the `id` of a segment containing people you want to search for.",
                          "properties": {
                            "id": {
                              "type": "integer",
                              "description": "The ID of the segment you want to return people from.",
                              "example": 4
                            }
                          }
                        }
                      }
                    },
                    {
                      "title": "attribute",
                      "type": "object",
                      "properties": {
                        "attribute": {
                          "x-scalar-ignore": true,
                          "title": "attribute",
                          "description": "Filter your audience by attribute.",
                          "type": "object",
                          "required": [
                            "field",
                            "operator"
                          ],
                          "properties": {
                            "field": {
                              "type": "string",
                              "description": "The name of the attribute you want to filter against.",
                              "example": "first_name"
                            },
                            "operator": {
                              "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.",
                              "enum": [
                                "eq",
                                "exists"
                              ]
                            },
                            "value": {
                              "type": "string",
                              "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                            }
                          },
                          "example": {
                            "field": "unsubscribed",
                            "operator": "eq",
                            "value": true
                          }
                        }
                      }
                    }
                  ]
                },
                "segment": {
                  "x-scalar-ignore": true,
                  "title": "segment",
                  "type": "object",
                  "description": "Provide the `id` of a segment containing people you want to search for.",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "The ID of the segment you want to return people from.",
                      "example": 4
                    }
                  }
                }
              }
            }
          }
        }
      },
      "notAudienceFilter": {
        "x-scalar-ignore": true,
        "title": "not",
        "description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object.",
        "oneOf": [
          {
            "title": "and",
            "type": "object",
            "properties": {
              "and": {
                "type": "array",
                "description": "Match *all* conditions to return results.",
                "items": {
                  "x-scalar-ignore": true,
                  "title": "People Filter",
                  "type": "object",
                  "description": "Filter people with `and`, `or`, and `not` groups made from `segment` and `attribute` conditions.",
                  "properties": {
                    "and": {
                      "type": "array",
                      "description": "Returns results matching *all* conditions.",
                      "items": {
                        "x-scalar-ignore": true,
                        "anyOf": [
                          {
                            "title": "segment",
                            "description": "Filter for people who belong to a segment.",
                            "type": "object",
                            "properties": {
                              "segment": {
                                "x-scalar-ignore": true,
                                "title": "segment",
                                "type": "object",
                                "description": "Provide the `id` of a segment containing people you want to search for.",
                                "properties": {
                                  "id": {
                                    "type": "integer",
                                    "description": "The ID of the segment you want to return people from.",
                                    "example": 4
                                  }
                                }
                              }
                            }
                          },
                          {
                            "title": "audience",
                            "type": "object",
                            "description": "filter for people who have an attribute or an attribute value.",
                            "properties": {
                              "attribute": {
                                "x-scalar-ignore": true,
                                "title": "attribute",
                                "description": "Filter your audience by attribute.",
                                "type": "object",
                                "required": [
                                  "field",
                                  "operator"
                                ],
                                "properties": {
                                  "field": {
                                    "type": "string",
                                    "description": "The name of the attribute you want to filter against.",
                                    "example": "first_name"
                                  },
                                  "operator": {
                                    "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.",
                                    "enum": [
                                      "eq",
                                      "exists"
                                    ]
                                  },
                                  "value": {
                                    "type": "string",
                                    "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                  }
                                },
                                "example": {
                                  "field": "unsubscribed",
                                  "operator": "eq",
                                  "value": true
                                }
                              }
                            }
                          }
                        ]
                      }
                    },
                    "attribute": {
                      "x-scalar-ignore": true,
                      "title": "attribute",
                      "description": "Filter your audience by attribute.",
                      "type": "object",
                      "required": [
                        "field",
                        "operator"
                      ],
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "The name of the attribute you want to filter against.",
                          "example": "first_name"
                        },
                        "operator": {
                          "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.",
                          "enum": [
                            "eq",
                            "exists"
                          ]
                        },
                        "value": {
                          "type": "string",
                          "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                        }
                      },
                      "example": {
                        "field": "unsubscribed",
                        "operator": "eq",
                        "value": true
                      }
                    },
                    "not": {
                      "description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object.",
                      "oneOf": [
                        {
                          "title": "and",
                          "type": "object",
                          "properties": {
                            "and": {
                              "type": "array",
                              "description": "Match *all* conditions to return results.",
                              "items": {
                                "x-scalar-ignore": true,
                                "anyOf": [
                                  {
                                    "title": "segment",
                                    "description": "Filter for people who belong to a segment.",
                                    "type": "object",
                                    "properties": {
                                      "segment": {
                                        "x-scalar-ignore": true,
                                        "title": "segment",
                                        "type": "object",
                                        "description": "Provide the `id` of a segment containing people you want to search for.",
                                        "properties": {
                                          "id": {
                                            "type": "integer",
                                            "description": "The ID of the segment you want to return people from.",
                                            "example": 4
                                          }
                                        }
                                      }
                                    }
                                  },
                                  {
                                    "title": "audience",
                                    "type": "object",
                                    "description": "filter for people who have an attribute or an attribute value.",
                                    "properties": {
                                      "attribute": {
                                        "x-scalar-ignore": true,
                                        "title": "attribute",
                                        "description": "Filter your audience by attribute.",
                                        "type": "object",
                                        "required": [
                                          "field",
                                          "operator"
                                        ],
                                        "properties": {
                                          "field": {
                                            "type": "string",
                                            "description": "The name of the attribute you want to filter against.",
                                            "example": "first_name"
                                          },
                                          "operator": {
                                            "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.",
                                            "enum": [
                                              "eq",
                                              "exists"
                                            ]
                                          },
                                          "value": {
                                            "type": "string",
                                            "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                          }
                                        },
                                        "example": {
                                          "field": "unsubscribed",
                                          "operator": "eq",
                                          "value": true
                                        }
                                      }
                                    }
                                  }
                                ]
                              }
                            }
                          }
                        },
                        {
                          "title": "or",
                          "type": "object",
                          "properties": {
                            "or": {
                              "type": "array",
                              "description": "Match *any* condition to return results.",
                              "items": {
                                "x-scalar-ignore": true,
                                "anyOf": [
                                  {
                                    "title": "segment",
                                    "description": "Filter for people who belong to a segment.",
                                    "type": "object",
                                    "properties": {
                                      "segment": {
                                        "x-scalar-ignore": true,
                                        "title": "segment",
                                        "type": "object",
                                        "description": "Provide the `id` of a segment containing people you want to search for.",
                                        "properties": {
                                          "id": {
                                            "type": "integer",
                                            "description": "The ID of the segment you want to return people from.",
                                            "example": 4
                                          }
                                        }
                                      }
                                    }
                                  },
                                  {
                                    "title": "audience",
                                    "type": "object",
                                    "description": "filter for people who have an attribute or an attribute value.",
                                    "properties": {
                                      "attribute": {
                                        "x-scalar-ignore": true,
                                        "title": "attribute",
                                        "description": "Filter your audience by attribute.",
                                        "type": "object",
                                        "required": [
                                          "field",
                                          "operator"
                                        ],
                                        "properties": {
                                          "field": {
                                            "type": "string",
                                            "description": "The name of the attribute you want to filter against.",
                                            "example": "first_name"
                                          },
                                          "operator": {
                                            "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.",
                                            "enum": [
                                              "eq",
                                              "exists"
                                            ]
                                          },
                                          "value": {
                                            "type": "string",
                                            "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                          }
                                        },
                                        "example": {
                                          "field": "unsubscribed",
                                          "operator": "eq",
                                          "value": true
                                        }
                                      }
                                    }
                                  }
                                ]
                              }
                            }
                          }
                        },
                        {
                          "title": "segment",
                          "type": "object",
                          "properties": {
                            "segment": {
                              "x-scalar-ignore": true,
                              "title": "segment",
                              "type": "object",
                              "description": "Provide the `id` of a segment containing people you want to search for.",
                              "properties": {
                                "id": {
                                  "type": "integer",
                                  "description": "The ID of the segment you want to return people from.",
                                  "example": 4
                                }
                              }
                            }
                          }
                        },
                        {
                          "title": "attribute",
                          "type": "object",
                          "properties": {
                            "attribute": {
                              "x-scalar-ignore": true,
                              "title": "attribute",
                              "description": "Filter your audience by attribute.",
                              "type": "object",
                              "required": [
                                "field",
                                "operator"
                              ],
                              "properties": {
                                "field": {
                                  "type": "string",
                                  "description": "The name of the attribute you want to filter against.",
                                  "example": "first_name"
                                },
                                "operator": {
                                  "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.",
                                  "enum": [
                                    "eq",
                                    "exists"
                                  ]
                                },
                                "value": {
                                  "type": "string",
                                  "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                }
                              },
                              "example": {
                                "field": "unsubscribed",
                                "operator": "eq",
                                "value": true
                              }
                            }
                          }
                        }
                      ]
                    },
                    "or": {
                      "type": "array",
                      "description": "Returns results matching *any* conditions.",
                      "items": {
                        "x-scalar-ignore": true,
                        "anyOf": [
                          {
                            "title": "segment",
                            "description": "Filter for people who belong to a segment.",
                            "type": "object",
                            "properties": {
                              "segment": {
                                "x-scalar-ignore": true,
                                "title": "segment",
                                "type": "object",
                                "description": "Provide the `id` of a segment containing people you want to search for.",
                                "properties": {
                                  "id": {
                                    "type": "integer",
                                    "description": "The ID of the segment you want to return people from.",
                                    "example": 4
                                  }
                                }
                              }
                            }
                          },
                          {
                            "title": "audience",
                            "type": "object",
                            "description": "filter for people who have an attribute or an attribute value.",
                            "properties": {
                              "attribute": {
                                "x-scalar-ignore": true,
                                "title": "attribute",
                                "description": "Filter your audience by attribute.",
                                "type": "object",
                                "required": [
                                  "field",
                                  "operator"
                                ],
                                "properties": {
                                  "field": {
                                    "type": "string",
                                    "description": "The name of the attribute you want to filter against.",
                                    "example": "first_name"
                                  },
                                  "operator": {
                                    "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.",
                                    "enum": [
                                      "eq",
                                      "exists"
                                    ]
                                  },
                                  "value": {
                                    "type": "string",
                                    "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                  }
                                },
                                "example": {
                                  "field": "unsubscribed",
                                  "operator": "eq",
                                  "value": true
                                }
                              }
                            }
                          }
                        ]
                      }
                    },
                    "segment": {
                      "x-scalar-ignore": true,
                      "title": "segment",
                      "type": "object",
                      "description": "Provide the `id` of a segment containing people you want to search for.",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "The ID of the segment you want to return people from.",
                          "example": 4
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          {
            "title": "or",
            "type": "object",
            "properties": {
              "or": {
                "type": "array",
                "description": "Match *any* condition to return results.",
                "items": {
                  "x-scalar-ignore": true,
                  "title": "People Filter",
                  "type": "object",
                  "description": "Filter people with `and`, `or`, and `not` groups made from `segment` and `attribute` conditions.",
                  "properties": {
                    "and": {
                      "type": "array",
                      "description": "Returns results matching *all* conditions.",
                      "items": {
                        "x-scalar-ignore": true,
                        "anyOf": [
                          {
                            "title": "segment",
                            "description": "Filter for people who belong to a segment.",
                            "type": "object",
                            "properties": {
                              "segment": {
                                "x-scalar-ignore": true,
                                "title": "segment",
                                "type": "object",
                                "description": "Provide the `id` of a segment containing people you want to search for.",
                                "properties": {
                                  "id": {
                                    "type": "integer",
                                    "description": "The ID of the segment you want to return people from.",
                                    "example": 4
                                  }
                                }
                              }
                            }
                          },
                          {
                            "title": "audience",
                            "type": "object",
                            "description": "filter for people who have an attribute or an attribute value.",
                            "properties": {
                              "attribute": {
                                "x-scalar-ignore": true,
                                "title": "attribute",
                                "description": "Filter your audience by attribute.",
                                "type": "object",
                                "required": [
                                  "field",
                                  "operator"
                                ],
                                "properties": {
                                  "field": {
                                    "type": "string",
                                    "description": "The name of the attribute you want to filter against.",
                                    "example": "first_name"
                                  },
                                  "operator": {
                                    "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.",
                                    "enum": [
                                      "eq",
                                      "exists"
                                    ]
                                  },
                                  "value": {
                                    "type": "string",
                                    "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                  }
                                },
                                "example": {
                                  "field": "unsubscribed",
                                  "operator": "eq",
                                  "value": true
                                }
                              }
                            }
                          }
                        ]
                      }
                    },
                    "attribute": {
                      "x-scalar-ignore": true,
                      "title": "attribute",
                      "description": "Filter your audience by attribute.",
                      "type": "object",
                      "required": [
                        "field",
                        "operator"
                      ],
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "The name of the attribute you want to filter against.",
                          "example": "first_name"
                        },
                        "operator": {
                          "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.",
                          "enum": [
                            "eq",
                            "exists"
                          ]
                        },
                        "value": {
                          "type": "string",
                          "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                        }
                      },
                      "example": {
                        "field": "unsubscribed",
                        "operator": "eq",
                        "value": true
                      }
                    },
                    "not": {
                      "description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object.",
                      "oneOf": [
                        {
                          "title": "and",
                          "type": "object",
                          "properties": {
                            "and": {
                              "type": "array",
                              "description": "Match *all* conditions to return results.",
                              "items": {
                                "x-scalar-ignore": true,
                                "anyOf": [
                                  {
                                    "title": "segment",
                                    "description": "Filter for people who belong to a segment.",
                                    "type": "object",
                                    "properties": {
                                      "segment": {
                                        "x-scalar-ignore": true,
                                        "title": "segment",
                                        "type": "object",
                                        "description": "Provide the `id` of a segment containing people you want to search for.",
                                        "properties": {
                                          "id": {
                                            "type": "integer",
                                            "description": "The ID of the segment you want to return people from.",
                                            "example": 4
                                          }
                                        }
                                      }
                                    }
                                  },
                                  {
                                    "title": "audience",
                                    "type": "object",
                                    "description": "filter for people who have an attribute or an attribute value.",
                                    "properties": {
                                      "attribute": {
                                        "x-scalar-ignore": true,
                                        "title": "attribute",
                                        "description": "Filter your audience by attribute.",
                                        "type": "object",
                                        "required": [
                                          "field",
                                          "operator"
                                        ],
                                        "properties": {
                                          "field": {
                                            "type": "string",
                                            "description": "The name of the attribute you want to filter against.",
                                            "example": "first_name"
                                          },
                                          "operator": {
                                            "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.",
                                            "enum": [
                                              "eq",
                                              "exists"
                                            ]
                                          },
                                          "value": {
                                            "type": "string",
                                            "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                          }
                                        },
                                        "example": {
                                          "field": "unsubscribed",
                                          "operator": "eq",
                                          "value": true
                                        }
                                      }
                                    }
                                  }
                                ]
                              }
                            }
                          }
                        },
                        {
                          "title": "or",
                          "type": "object",
                          "properties": {
                            "or": {
                              "type": "array",
                              "description": "Match *any* condition to return results.",
                              "items": {
                                "x-scalar-ignore": true,
                                "anyOf": [
                                  {
                                    "title": "segment",
                                    "description": "Filter for people who belong to a segment.",
                                    "type": "object",
                                    "properties": {
                                      "segment": {
                                        "x-scalar-ignore": true,
                                        "title": "segment",
                                        "type": "object",
                                        "description": "Provide the `id` of a segment containing people you want to search for.",
                                        "properties": {
                                          "id": {
                                            "type": "integer",
                                            "description": "The ID of the segment you want to return people from.",
                                            "example": 4
                                          }
                                        }
                                      }
                                    }
                                  },
                                  {
                                    "title": "audience",
                                    "type": "object",
                                    "description": "filter for people who have an attribute or an attribute value.",
                                    "properties": {
                                      "attribute": {
                                        "x-scalar-ignore": true,
                                        "title": "attribute",
                                        "description": "Filter your audience by attribute.",
                                        "type": "object",
                                        "required": [
                                          "field",
                                          "operator"
                                        ],
                                        "properties": {
                                          "field": {
                                            "type": "string",
                                            "description": "The name of the attribute you want to filter against.",
                                            "example": "first_name"
                                          },
                                          "operator": {
                                            "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.",
                                            "enum": [
                                              "eq",
                                              "exists"
                                            ]
                                          },
                                          "value": {
                                            "type": "string",
                                            "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                          }
                                        },
                                        "example": {
                                          "field": "unsubscribed",
                                          "operator": "eq",
                                          "value": true
                                        }
                                      }
                                    }
                                  }
                                ]
                              }
                            }
                          }
                        },
                        {
                          "title": "segment",
                          "type": "object",
                          "properties": {
                            "segment": {
                              "x-scalar-ignore": true,
                              "title": "segment",
                              "type": "object",
                              "description": "Provide the `id` of a segment containing people you want to search for.",
                              "properties": {
                                "id": {
                                  "type": "integer",
                                  "description": "The ID of the segment you want to return people from.",
                                  "example": 4
                                }
                              }
                            }
                          }
                        },
                        {
                          "title": "attribute",
                          "type": "object",
                          "properties": {
                            "attribute": {
                              "x-scalar-ignore": true,
                              "title": "attribute",
                              "description": "Filter your audience by attribute.",
                              "type": "object",
                              "required": [
                                "field",
                                "operator"
                              ],
                              "properties": {
                                "field": {
                                  "type": "string",
                                  "description": "The name of the attribute you want to filter against.",
                                  "example": "first_name"
                                },
                                "operator": {
                                  "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.",
                                  "enum": [
                                    "eq",
                                    "exists"
                                  ]
                                },
                                "value": {
                                  "type": "string",
                                  "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                }
                              },
                              "example": {
                                "field": "unsubscribed",
                                "operator": "eq",
                                "value": true
                              }
                            }
                          }
                        }
                      ]
                    },
                    "or": {
                      "type": "array",
                      "description": "Returns results matching *any* conditions.",
                      "items": {
                        "x-scalar-ignore": true,
                        "anyOf": [
                          {
                            "title": "segment",
                            "description": "Filter for people who belong to a segment.",
                            "type": "object",
                            "properties": {
                              "segment": {
                                "x-scalar-ignore": true,
                                "title": "segment",
                                "type": "object",
                                "description": "Provide the `id` of a segment containing people you want to search for.",
                                "properties": {
                                  "id": {
                                    "type": "integer",
                                    "description": "The ID of the segment you want to return people from.",
                                    "example": 4
                                  }
                                }
                              }
                            }
                          },
                          {
                            "title": "audience",
                            "type": "object",
                            "description": "filter for people who have an attribute or an attribute value.",
                            "properties": {
                              "attribute": {
                                "x-scalar-ignore": true,
                                "title": "attribute",
                                "description": "Filter your audience by attribute.",
                                "type": "object",
                                "required": [
                                  "field",
                                  "operator"
                                ],
                                "properties": {
                                  "field": {
                                    "type": "string",
                                    "description": "The name of the attribute you want to filter against.",
                                    "example": "first_name"
                                  },
                                  "operator": {
                                    "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.",
                                    "enum": [
                                      "eq",
                                      "exists"
                                    ]
                                  },
                                  "value": {
                                    "type": "string",
                                    "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                  }
                                },
                                "example": {
                                  "field": "unsubscribed",
                                  "operator": "eq",
                                  "value": true
                                }
                              }
                            }
                          }
                        ]
                      }
                    },
                    "segment": {
                      "x-scalar-ignore": true,
                      "title": "segment",
                      "type": "object",
                      "description": "Provide the `id` of a segment containing people you want to search for.",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "The ID of the segment you want to return people from.",
                          "example": 4
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          {
            "title": "segment",
            "type": "object",
            "properties": {
              "segment": {
                "x-scalar-ignore": true,
                "title": "segment",
                "type": "object",
                "description": "Provide the `id` of a segment containing people you want to search for.",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "The ID of the segment you want to return people from.",
                    "example": 4
                  }
                }
              }
            }
          },
          {
            "title": "attribute",
            "type": "object",
            "properties": {
              "attribute": {
                "x-scalar-ignore": true,
                "title": "attribute",
                "description": "Filter your audience by attribute.",
                "type": "object",
                "required": [
                  "field",
                  "operator"
                ],
                "properties": {
                  "field": {
                    "type": "string",
                    "description": "The name of the attribute you want to filter against.",
                    "example": "first_name"
                  },
                  "operator": {
                    "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.",
                    "enum": [
                      "eq",
                      "exists"
                    ]
                  },
                  "value": {
                    "type": "string",
                    "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                  }
                },
                "example": {
                  "field": "unsubscribed",
                  "operator": "eq",
                  "value": true
                }
              }
            }
          }
        ]
      },
      "audienceFilter": {
        "x-scalar-ignore": true,
        "title": "Audience Filter",
        "description": "Use `and`, `or`, and `not` to combine segment and attribute conditions. The top-level object accepts one property; nest groups for complex filters.",
        "oneOf": [
          {
            "x-scalar-ignore": true,
            "title": "and",
            "type": "object",
            "properties": {
              "and": {
                "type": "array",
                "description": "Match *all* conditions to return results.",
                "items": {
                  "type": "object",
                  "properties": {
                    "attribute": {
                      "x-scalar-ignore": true,
                      "title": "attribute",
                      "description": "Filter your audience by attribute.",
                      "type": "object",
                      "required": [
                        "field",
                        "operator"
                      ],
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "The name of the attribute you want to filter against.",
                          "example": "first_name"
                        },
                        "operator": {
                          "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.",
                          "enum": [
                            "eq",
                            "exists"
                          ]
                        },
                        "value": {
                          "type": "string",
                          "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                        }
                      },
                      "example": {
                        "field": "unsubscribed",
                        "operator": "eq",
                        "value": true
                      }
                    },
                    "not": {
                      "description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object.",
                      "oneOf": [
                        {
                          "title": "and",
                          "type": "object",
                          "properties": {
                            "and": {
                              "type": "array",
                              "description": "Match *all* conditions to return results.",
                              "items": {
                                "x-scalar-ignore": true,
                                "anyOf": [
                                  {
                                    "title": "segment",
                                    "description": "Filter for people who belong to a segment.",
                                    "type": "object",
                                    "properties": {
                                      "segment": {
                                        "x-scalar-ignore": true,
                                        "title": "segment",
                                        "type": "object",
                                        "description": "Provide the `id` of a segment containing people you want to search for.",
                                        "properties": {
                                          "id": {
                                            "type": "integer",
                                            "description": "The ID of the segment you want to return people from.",
                                            "example": 4
                                          }
                                        }
                                      }
                                    }
                                  },
                                  {
                                    "title": "audience",
                                    "type": "object",
                                    "description": "filter for people who have an attribute or an attribute value.",
                                    "properties": {
                                      "attribute": {
                                        "x-scalar-ignore": true,
                                        "title": "attribute",
                                        "description": "Filter your audience by attribute.",
                                        "type": "object",
                                        "required": [
                                          "field",
                                          "operator"
                                        ],
                                        "properties": {
                                          "field": {
                                            "type": "string",
                                            "description": "The name of the attribute you want to filter against.",
                                            "example": "first_name"
                                          },
                                          "operator": {
                                            "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.",
                                            "enum": [
                                              "eq",
                                              "exists"
                                            ]
                                          },
                                          "value": {
                                            "type": "string",
                                            "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                          }
                                        },
                                        "example": {
                                          "field": "unsubscribed",
                                          "operator": "eq",
                                          "value": true
                                        }
                                      }
                                    }
                                  }
                                ]
                              }
                            }
                          }
                        },
                        {
                          "title": "or",
                          "type": "object",
                          "properties": {
                            "or": {
                              "type": "array",
                              "description": "Match *any* condition to return results.",
                              "items": {
                                "x-scalar-ignore": true,
                                "anyOf": [
                                  {
                                    "title": "segment",
                                    "description": "Filter for people who belong to a segment.",
                                    "type": "object",
                                    "properties": {
                                      "segment": {
                                        "x-scalar-ignore": true,
                                        "title": "segment",
                                        "type": "object",
                                        "description": "Provide the `id` of a segment containing people you want to search for.",
                                        "properties": {
                                          "id": {
                                            "type": "integer",
                                            "description": "The ID of the segment you want to return people from.",
                                            "example": 4
                                          }
                                        }
                                      }
                                    }
                                  },
                                  {
                                    "title": "audience",
                                    "type": "object",
                                    "description": "filter for people who have an attribute or an attribute value.",
                                    "properties": {
                                      "attribute": {
                                        "x-scalar-ignore": true,
                                        "title": "attribute",
                                        "description": "Filter your audience by attribute.",
                                        "type": "object",
                                        "required": [
                                          "field",
                                          "operator"
                                        ],
                                        "properties": {
                                          "field": {
                                            "type": "string",
                                            "description": "The name of the attribute you want to filter against.",
                                            "example": "first_name"
                                          },
                                          "operator": {
                                            "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.",
                                            "enum": [
                                              "eq",
                                              "exists"
                                            ]
                                          },
                                          "value": {
                                            "type": "string",
                                            "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                          }
                                        },
                                        "example": {
                                          "field": "unsubscribed",
                                          "operator": "eq",
                                          "value": true
                                        }
                                      }
                                    }
                                  }
                                ]
                              }
                            }
                          }
                        },
                        {
                          "title": "segment",
                          "type": "object",
                          "properties": {
                            "segment": {
                              "x-scalar-ignore": true,
                              "title": "segment",
                              "type": "object",
                              "description": "Provide the `id` of a segment containing people you want to search for.",
                              "properties": {
                                "id": {
                                  "type": "integer",
                                  "description": "The ID of the segment you want to return people from.",
                                  "example": 4
                                }
                              }
                            }
                          }
                        },
                        {
                          "title": "attribute",
                          "type": "object",
                          "properties": {
                            "attribute": {
                              "x-scalar-ignore": true,
                              "title": "attribute",
                              "description": "Filter your audience by attribute.",
                              "type": "object",
                              "required": [
                                "field",
                                "operator"
                              ],
                              "properties": {
                                "field": {
                                  "type": "string",
                                  "description": "The name of the attribute you want to filter against.",
                                  "example": "first_name"
                                },
                                "operator": {
                                  "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.",
                                  "enum": [
                                    "eq",
                                    "exists"
                                  ]
                                },
                                "value": {
                                  "type": "string",
                                  "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                }
                              },
                              "example": {
                                "field": "unsubscribed",
                                "operator": "eq",
                                "value": true
                              }
                            }
                          }
                        }
                      ]
                    },
                    "or": {
                      "type": "array",
                      "description": "Returns results matching *any* conditions.",
                      "items": {
                        "x-scalar-ignore": true,
                        "anyOf": [
                          {
                            "title": "segment",
                            "description": "Filter for people who belong to a segment.",
                            "type": "object",
                            "properties": {
                              "segment": {
                                "x-scalar-ignore": true,
                                "title": "segment",
                                "type": "object",
                                "description": "Provide the `id` of a segment containing people you want to search for.",
                                "properties": {
                                  "id": {
                                    "type": "integer",
                                    "description": "The ID of the segment you want to return people from.",
                                    "example": 4
                                  }
                                }
                              }
                            }
                          },
                          {
                            "title": "audience",
                            "type": "object",
                            "description": "filter for people who have an attribute or an attribute value.",
                            "properties": {
                              "attribute": {
                                "x-scalar-ignore": true,
                                "title": "attribute",
                                "description": "Filter your audience by attribute.",
                                "type": "object",
                                "required": [
                                  "field",
                                  "operator"
                                ],
                                "properties": {
                                  "field": {
                                    "type": "string",
                                    "description": "The name of the attribute you want to filter against.",
                                    "example": "first_name"
                                  },
                                  "operator": {
                                    "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.",
                                    "enum": [
                                      "eq",
                                      "exists"
                                    ]
                                  },
                                  "value": {
                                    "type": "string",
                                    "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                  }
                                },
                                "example": {
                                  "field": "unsubscribed",
                                  "operator": "eq",
                                  "value": true
                                }
                              }
                            }
                          }
                        ]
                      }
                    },
                    "segment": {
                      "x-scalar-ignore": true,
                      "title": "segment",
                      "type": "object",
                      "description": "Provide the `id` of a segment containing people you want to search for.",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "The ID of the segment you want to return people from.",
                          "example": 4
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          {
            "x-scalar-ignore": true,
            "title": "or",
            "type": "object",
            "properties": {
              "or": {
                "type": "array",
                "description": "Match *any* condition to return results.",
                "items": {
                  "type": "object",
                  "properties": {
                    "and": {
                      "type": "array",
                      "description": "Returns results matching *all* conditions.",
                      "items": {
                        "x-scalar-ignore": true,
                        "anyOf": [
                          {
                            "title": "segment",
                            "description": "Filter for people who belong to a segment.",
                            "type": "object",
                            "properties": {
                              "segment": {
                                "x-scalar-ignore": true,
                                "title": "segment",
                                "type": "object",
                                "description": "Provide the `id` of a segment containing people you want to search for.",
                                "properties": {
                                  "id": {
                                    "type": "integer",
                                    "description": "The ID of the segment you want to return people from.",
                                    "example": 4
                                  }
                                }
                              }
                            }
                          },
                          {
                            "title": "audience",
                            "type": "object",
                            "description": "filter for people who have an attribute or an attribute value.",
                            "properties": {
                              "attribute": {
                                "x-scalar-ignore": true,
                                "title": "attribute",
                                "description": "Filter your audience by attribute.",
                                "type": "object",
                                "required": [
                                  "field",
                                  "operator"
                                ],
                                "properties": {
                                  "field": {
                                    "type": "string",
                                    "description": "The name of the attribute you want to filter against.",
                                    "example": "first_name"
                                  },
                                  "operator": {
                                    "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.",
                                    "enum": [
                                      "eq",
                                      "exists"
                                    ]
                                  },
                                  "value": {
                                    "type": "string",
                                    "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                  }
                                },
                                "example": {
                                  "field": "unsubscribed",
                                  "operator": "eq",
                                  "value": true
                                }
                              }
                            }
                          }
                        ]
                      }
                    },
                    "attribute": {
                      "x-scalar-ignore": true,
                      "title": "attribute",
                      "description": "Filter your audience by attribute.",
                      "type": "object",
                      "required": [
                        "field",
                        "operator"
                      ],
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "The name of the attribute you want to filter against.",
                          "example": "first_name"
                        },
                        "operator": {
                          "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.",
                          "enum": [
                            "eq",
                            "exists"
                          ]
                        },
                        "value": {
                          "type": "string",
                          "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                        }
                      },
                      "example": {
                        "field": "unsubscribed",
                        "operator": "eq",
                        "value": true
                      }
                    },
                    "not": {
                      "description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object.",
                      "oneOf": [
                        {
                          "title": "and",
                          "type": "object",
                          "properties": {
                            "and": {
                              "type": "array",
                              "description": "Match *all* conditions to return results.",
                              "items": {
                                "x-scalar-ignore": true,
                                "anyOf": [
                                  {
                                    "title": "segment",
                                    "description": "Filter for people who belong to a segment.",
                                    "type": "object",
                                    "properties": {
                                      "segment": {
                                        "x-scalar-ignore": true,
                                        "title": "segment",
                                        "type": "object",
                                        "description": "Provide the `id` of a segment containing people you want to search for.",
                                        "properties": {
                                          "id": {
                                            "type": "integer",
                                            "description": "The ID of the segment you want to return people from.",
                                            "example": 4
                                          }
                                        }
                                      }
                                    }
                                  },
                                  {
                                    "title": "audience",
                                    "type": "object",
                                    "description": "filter for people who have an attribute or an attribute value.",
                                    "properties": {
                                      "attribute": {
                                        "x-scalar-ignore": true,
                                        "title": "attribute",
                                        "description": "Filter your audience by attribute.",
                                        "type": "object",
                                        "required": [
                                          "field",
                                          "operator"
                                        ],
                                        "properties": {
                                          "field": {
                                            "type": "string",
                                            "description": "The name of the attribute you want to filter against.",
                                            "example": "first_name"
                                          },
                                          "operator": {
                                            "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.",
                                            "enum": [
                                              "eq",
                                              "exists"
                                            ]
                                          },
                                          "value": {
                                            "type": "string",
                                            "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                          }
                                        },
                                        "example": {
                                          "field": "unsubscribed",
                                          "operator": "eq",
                                          "value": true
                                        }
                                      }
                                    }
                                  }
                                ]
                              }
                            }
                          }
                        },
                        {
                          "title": "or",
                          "type": "object",
                          "properties": {
                            "or": {
                              "type": "array",
                              "description": "Match *any* condition to return results.",
                              "items": {
                                "x-scalar-ignore": true,
                                "anyOf": [
                                  {
                                    "title": "segment",
                                    "description": "Filter for people who belong to a segment.",
                                    "type": "object",
                                    "properties": {
                                      "segment": {
                                        "x-scalar-ignore": true,
                                        "title": "segment",
                                        "type": "object",
                                        "description": "Provide the `id` of a segment containing people you want to search for.",
                                        "properties": {
                                          "id": {
                                            "type": "integer",
                                            "description": "The ID of the segment you want to return people from.",
                                            "example": 4
                                          }
                                        }
                                      }
                                    }
                                  },
                                  {
                                    "title": "audience",
                                    "type": "object",
                                    "description": "filter for people who have an attribute or an attribute value.",
                                    "properties": {
                                      "attribute": {
                                        "x-scalar-ignore": true,
                                        "title": "attribute",
                                        "description": "Filter your audience by attribute.",
                                        "type": "object",
                                        "required": [
                                          "field",
                                          "operator"
                                        ],
                                        "properties": {
                                          "field": {
                                            "type": "string",
                                            "description": "The name of the attribute you want to filter against.",
                                            "example": "first_name"
                                          },
                                          "operator": {
                                            "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.",
                                            "enum": [
                                              "eq",
                                              "exists"
                                            ]
                                          },
                                          "value": {
                                            "type": "string",
                                            "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                          }
                                        },
                                        "example": {
                                          "field": "unsubscribed",
                                          "operator": "eq",
                                          "value": true
                                        }
                                      }
                                    }
                                  }
                                ]
                              }
                            }
                          }
                        },
                        {
                          "title": "segment",
                          "type": "object",
                          "properties": {
                            "segment": {
                              "x-scalar-ignore": true,
                              "title": "segment",
                              "type": "object",
                              "description": "Provide the `id` of a segment containing people you want to search for.",
                              "properties": {
                                "id": {
                                  "type": "integer",
                                  "description": "The ID of the segment you want to return people from.",
                                  "example": 4
                                }
                              }
                            }
                          }
                        },
                        {
                          "title": "attribute",
                          "type": "object",
                          "properties": {
                            "attribute": {
                              "x-scalar-ignore": true,
                              "title": "attribute",
                              "description": "Filter your audience by attribute.",
                              "type": "object",
                              "required": [
                                "field",
                                "operator"
                              ],
                              "properties": {
                                "field": {
                                  "type": "string",
                                  "description": "The name of the attribute you want to filter against.",
                                  "example": "first_name"
                                },
                                "operator": {
                                  "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.",
                                  "enum": [
                                    "eq",
                                    "exists"
                                  ]
                                },
                                "value": {
                                  "type": "string",
                                  "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                }
                              },
                              "example": {
                                "field": "unsubscribed",
                                "operator": "eq",
                                "value": true
                              }
                            }
                          }
                        }
                      ]
                    },
                    "segment": {
                      "x-scalar-ignore": true,
                      "title": "segment",
                      "type": "object",
                      "description": "Provide the `id` of a segment containing people you want to search for.",
                      "properties": {
                        "id": {
                          "type": "integer",
                          "description": "The ID of the segment you want to return people from.",
                          "example": 4
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          {
            "x-scalar-ignore": true,
            "title": "not",
            "description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object.",
            "oneOf": [
              {
                "title": "and",
                "type": "object",
                "properties": {
                  "and": {
                    "type": "array",
                    "description": "Match *all* conditions to return results.",
                    "items": {
                      "x-scalar-ignore": true,
                      "title": "People Filter",
                      "type": "object",
                      "description": "Filter people with `and`, `or`, and `not` groups made from `segment` and `attribute` conditions.",
                      "properties": {
                        "and": {
                          "type": "array",
                          "description": "Returns results matching *all* conditions.",
                          "items": {
                            "x-scalar-ignore": true,
                            "anyOf": [
                              {
                                "title": "segment",
                                "description": "Filter for people who belong to a segment.",
                                "type": "object",
                                "properties": {
                                  "segment": {
                                    "x-scalar-ignore": true,
                                    "title": "segment",
                                    "type": "object",
                                    "description": "Provide the `id` of a segment containing people you want to search for.",
                                    "properties": {
                                      "id": {
                                        "type": "integer",
                                        "description": "The ID of the segment you want to return people from.",
                                        "example": 4
                                      }
                                    }
                                  }
                                }
                              },
                              {
                                "title": "audience",
                                "type": "object",
                                "description": "filter for people who have an attribute or an attribute value.",
                                "properties": {
                                  "attribute": {
                                    "x-scalar-ignore": true,
                                    "title": "attribute",
                                    "description": "Filter your audience by attribute.",
                                    "type": "object",
                                    "required": [
                                      "field",
                                      "operator"
                                    ],
                                    "properties": {
                                      "field": {
                                        "type": "string",
                                        "description": "The name of the attribute you want to filter against.",
                                        "example": "first_name"
                                      },
                                      "operator": {
                                        "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.",
                                        "enum": [
                                          "eq",
                                          "exists"
                                        ]
                                      },
                                      "value": {
                                        "type": "string",
                                        "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                      }
                                    },
                                    "example": {
                                      "field": "unsubscribed",
                                      "operator": "eq",
                                      "value": true
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        },
                        "attribute": {
                          "x-scalar-ignore": true,
                          "title": "attribute",
                          "description": "Filter your audience by attribute.",
                          "type": "object",
                          "required": [
                            "field",
                            "operator"
                          ],
                          "properties": {
                            "field": {
                              "type": "string",
                              "description": "The name of the attribute you want to filter against.",
                              "example": "first_name"
                            },
                            "operator": {
                              "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.",
                              "enum": [
                                "eq",
                                "exists"
                              ]
                            },
                            "value": {
                              "type": "string",
                              "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                            }
                          },
                          "example": {
                            "field": "unsubscribed",
                            "operator": "eq",
                            "value": true
                          }
                        },
                        "not": {
                          "description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object.",
                          "oneOf": [
                            {
                              "title": "and",
                              "type": "object",
                              "properties": {
                                "and": {
                                  "type": "array",
                                  "description": "Match *all* conditions to return results.",
                                  "items": {
                                    "x-scalar-ignore": true,
                                    "anyOf": [
                                      {
                                        "title": "segment",
                                        "description": "Filter for people who belong to a segment.",
                                        "type": "object",
                                        "properties": {
                                          "segment": {
                                            "x-scalar-ignore": true,
                                            "title": "segment",
                                            "type": "object",
                                            "description": "Provide the `id` of a segment containing people you want to search for.",
                                            "properties": {
                                              "id": {
                                                "type": "integer",
                                                "description": "The ID of the segment you want to return people from.",
                                                "example": 4
                                              }
                                            }
                                          }
                                        }
                                      },
                                      {
                                        "title": "audience",
                                        "type": "object",
                                        "description": "filter for people who have an attribute or an attribute value.",
                                        "properties": {
                                          "attribute": {
                                            "x-scalar-ignore": true,
                                            "title": "attribute",
                                            "description": "Filter your audience by attribute.",
                                            "type": "object",
                                            "required": [
                                              "field",
                                              "operator"
                                            ],
                                            "properties": {
                                              "field": {
                                                "type": "string",
                                                "description": "The name of the attribute you want to filter against.",
                                                "example": "first_name"
                                              },
                                              "operator": {
                                                "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.",
                                                "enum": [
                                                  "eq",
                                                  "exists"
                                                ]
                                              },
                                              "value": {
                                                "type": "string",
                                                "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                              }
                                            },
                                            "example": {
                                              "field": "unsubscribed",
                                              "operator": "eq",
                                              "value": true
                                            }
                                          }
                                        }
                                      }
                                    ]
                                  }
                                }
                              }
                            },
                            {
                              "title": "or",
                              "type": "object",
                              "properties": {
                                "or": {
                                  "type": "array",
                                  "description": "Match *any* condition to return results.",
                                  "items": {
                                    "x-scalar-ignore": true,
                                    "anyOf": [
                                      {
                                        "title": "segment",
                                        "description": "Filter for people who belong to a segment.",
                                        "type": "object",
                                        "properties": {
                                          "segment": {
                                            "x-scalar-ignore": true,
                                            "title": "segment",
                                            "type": "object",
                                            "description": "Provide the `id` of a segment containing people you want to search for.",
                                            "properties": {
                                              "id": {
                                                "type": "integer",
                                                "description": "The ID of the segment you want to return people from.",
                                                "example": 4
                                              }
                                            }
                                          }
                                        }
                                      },
                                      {
                                        "title": "audience",
                                        "type": "object",
                                        "description": "filter for people who have an attribute or an attribute value.",
                                        "properties": {
                                          "attribute": {
                                            "x-scalar-ignore": true,
                                            "title": "attribute",
                                            "description": "Filter your audience by attribute.",
                                            "type": "object",
                                            "required": [
                                              "field",
                                              "operator"
                                            ],
                                            "properties": {
                                              "field": {
                                                "type": "string",
                                                "description": "The name of the attribute you want to filter against.",
                                                "example": "first_name"
                                              },
                                              "operator": {
                                                "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.",
                                                "enum": [
                                                  "eq",
                                                  "exists"
                                                ]
                                              },
                                              "value": {
                                                "type": "string",
                                                "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                              }
                                            },
                                            "example": {
                                              "field": "unsubscribed",
                                              "operator": "eq",
                                              "value": true
                                            }
                                          }
                                        }
                                      }
                                    ]
                                  }
                                }
                              }
                            },
                            {
                              "title": "segment",
                              "type": "object",
                              "properties": {
                                "segment": {
                                  "x-scalar-ignore": true,
                                  "title": "segment",
                                  "type": "object",
                                  "description": "Provide the `id` of a segment containing people you want to search for.",
                                  "properties": {
                                    "id": {
                                      "type": "integer",
                                      "description": "The ID of the segment you want to return people from.",
                                      "example": 4
                                    }
                                  }
                                }
                              }
                            },
                            {
                              "title": "attribute",
                              "type": "object",
                              "properties": {
                                "attribute": {
                                  "x-scalar-ignore": true,
                                  "title": "attribute",
                                  "description": "Filter your audience by attribute.",
                                  "type": "object",
                                  "required": [
                                    "field",
                                    "operator"
                                  ],
                                  "properties": {
                                    "field": {
                                      "type": "string",
                                      "description": "The name of the attribute you want to filter against.",
                                      "example": "first_name"
                                    },
                                    "operator": {
                                      "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.",
                                      "enum": [
                                        "eq",
                                        "exists"
                                      ]
                                    },
                                    "value": {
                                      "type": "string",
                                      "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                    }
                                  },
                                  "example": {
                                    "field": "unsubscribed",
                                    "operator": "eq",
                                    "value": true
                                  }
                                }
                              }
                            }
                          ]
                        },
                        "or": {
                          "type": "array",
                          "description": "Returns results matching *any* conditions.",
                          "items": {
                            "x-scalar-ignore": true,
                            "anyOf": [
                              {
                                "title": "segment",
                                "description": "Filter for people who belong to a segment.",
                                "type": "object",
                                "properties": {
                                  "segment": {
                                    "x-scalar-ignore": true,
                                    "title": "segment",
                                    "type": "object",
                                    "description": "Provide the `id` of a segment containing people you want to search for.",
                                    "properties": {
                                      "id": {
                                        "type": "integer",
                                        "description": "The ID of the segment you want to return people from.",
                                        "example": 4
                                      }
                                    }
                                  }
                                }
                              },
                              {
                                "title": "audience",
                                "type": "object",
                                "description": "filter for people who have an attribute or an attribute value.",
                                "properties": {
                                  "attribute": {
                                    "x-scalar-ignore": true,
                                    "title": "attribute",
                                    "description": "Filter your audience by attribute.",
                                    "type": "object",
                                    "required": [
                                      "field",
                                      "operator"
                                    ],
                                    "properties": {
                                      "field": {
                                        "type": "string",
                                        "description": "The name of the attribute you want to filter against.",
                                        "example": "first_name"
                                      },
                                      "operator": {
                                        "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.",
                                        "enum": [
                                          "eq",
                                          "exists"
                                        ]
                                      },
                                      "value": {
                                        "type": "string",
                                        "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                      }
                                    },
                                    "example": {
                                      "field": "unsubscribed",
                                      "operator": "eq",
                                      "value": true
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        },
                        "segment": {
                          "x-scalar-ignore": true,
                          "title": "segment",
                          "type": "object",
                          "description": "Provide the `id` of a segment containing people you want to search for.",
                          "properties": {
                            "id": {
                              "type": "integer",
                              "description": "The ID of the segment you want to return people from.",
                              "example": 4
                            }
                          }
                        }
                      }
                    }
                  }
                }
              },
              {
                "title": "or",
                "type": "object",
                "properties": {
                  "or": {
                    "type": "array",
                    "description": "Match *any* condition to return results.",
                    "items": {
                      "x-scalar-ignore": true,
                      "title": "People Filter",
                      "type": "object",
                      "description": "Filter people with `and`, `or`, and `not` groups made from `segment` and `attribute` conditions.",
                      "properties": {
                        "and": {
                          "type": "array",
                          "description": "Returns results matching *all* conditions.",
                          "items": {
                            "x-scalar-ignore": true,
                            "anyOf": [
                              {
                                "title": "segment",
                                "description": "Filter for people who belong to a segment.",
                                "type": "object",
                                "properties": {
                                  "segment": {
                                    "x-scalar-ignore": true,
                                    "title": "segment",
                                    "type": "object",
                                    "description": "Provide the `id` of a segment containing people you want to search for.",
                                    "properties": {
                                      "id": {
                                        "type": "integer",
                                        "description": "The ID of the segment you want to return people from.",
                                        "example": 4
                                      }
                                    }
                                  }
                                }
                              },
                              {
                                "title": "audience",
                                "type": "object",
                                "description": "filter for people who have an attribute or an attribute value.",
                                "properties": {
                                  "attribute": {
                                    "x-scalar-ignore": true,
                                    "title": "attribute",
                                    "description": "Filter your audience by attribute.",
                                    "type": "object",
                                    "required": [
                                      "field",
                                      "operator"
                                    ],
                                    "properties": {
                                      "field": {
                                        "type": "string",
                                        "description": "The name of the attribute you want to filter against.",
                                        "example": "first_name"
                                      },
                                      "operator": {
                                        "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.",
                                        "enum": [
                                          "eq",
                                          "exists"
                                        ]
                                      },
                                      "value": {
                                        "type": "string",
                                        "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                      }
                                    },
                                    "example": {
                                      "field": "unsubscribed",
                                      "operator": "eq",
                                      "value": true
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        },
                        "attribute": {
                          "x-scalar-ignore": true,
                          "title": "attribute",
                          "description": "Filter your audience by attribute.",
                          "type": "object",
                          "required": [
                            "field",
                            "operator"
                          ],
                          "properties": {
                            "field": {
                              "type": "string",
                              "description": "The name of the attribute you want to filter against.",
                              "example": "first_name"
                            },
                            "operator": {
                              "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.",
                              "enum": [
                                "eq",
                                "exists"
                              ]
                            },
                            "value": {
                              "type": "string",
                              "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                            }
                          },
                          "example": {
                            "field": "unsubscribed",
                            "operator": "eq",
                            "value": true
                          }
                        },
                        "not": {
                          "description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object.",
                          "oneOf": [
                            {
                              "title": "and",
                              "type": "object",
                              "properties": {
                                "and": {
                                  "type": "array",
                                  "description": "Match *all* conditions to return results.",
                                  "items": {
                                    "x-scalar-ignore": true,
                                    "anyOf": [
                                      {
                                        "title": "segment",
                                        "description": "Filter for people who belong to a segment.",
                                        "type": "object",
                                        "properties": {
                                          "segment": {
                                            "x-scalar-ignore": true,
                                            "title": "segment",
                                            "type": "object",
                                            "description": "Provide the `id` of a segment containing people you want to search for.",
                                            "properties": {
                                              "id": {
                                                "type": "integer",
                                                "description": "The ID of the segment you want to return people from.",
                                                "example": 4
                                              }
                                            }
                                          }
                                        }
                                      },
                                      {
                                        "title": "audience",
                                        "type": "object",
                                        "description": "filter for people who have an attribute or an attribute value.",
                                        "properties": {
                                          "attribute": {
                                            "x-scalar-ignore": true,
                                            "title": "attribute",
                                            "description": "Filter your audience by attribute.",
                                            "type": "object",
                                            "required": [
                                              "field",
                                              "operator"
                                            ],
                                            "properties": {
                                              "field": {
                                                "type": "string",
                                                "description": "The name of the attribute you want to filter against.",
                                                "example": "first_name"
                                              },
                                              "operator": {
                                                "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.",
                                                "enum": [
                                                  "eq",
                                                  "exists"
                                                ]
                                              },
                                              "value": {
                                                "type": "string",
                                                "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                              }
                                            },
                                            "example": {
                                              "field": "unsubscribed",
                                              "operator": "eq",
                                              "value": true
                                            }
                                          }
                                        }
                                      }
                                    ]
                                  }
                                }
                              }
                            },
                            {
                              "title": "or",
                              "type": "object",
                              "properties": {
                                "or": {
                                  "type": "array",
                                  "description": "Match *any* condition to return results.",
                                  "items": {
                                    "x-scalar-ignore": true,
                                    "anyOf": [
                                      {
                                        "title": "segment",
                                        "description": "Filter for people who belong to a segment.",
                                        "type": "object",
                                        "properties": {
                                          "segment": {
                                            "x-scalar-ignore": true,
                                            "title": "segment",
                                            "type": "object",
                                            "description": "Provide the `id` of a segment containing people you want to search for.",
                                            "properties": {
                                              "id": {
                                                "type": "integer",
                                                "description": "The ID of the segment you want to return people from.",
                                                "example": 4
                                              }
                                            }
                                          }
                                        }
                                      },
                                      {
                                        "title": "audience",
                                        "type": "object",
                                        "description": "filter for people who have an attribute or an attribute value.",
                                        "properties": {
                                          "attribute": {
                                            "x-scalar-ignore": true,
                                            "title": "attribute",
                                            "description": "Filter your audience by attribute.",
                                            "type": "object",
                                            "required": [
                                              "field",
                                              "operator"
                                            ],
                                            "properties": {
                                              "field": {
                                                "type": "string",
                                                "description": "The name of the attribute you want to filter against.",
                                                "example": "first_name"
                                              },
                                              "operator": {
                                                "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.",
                                                "enum": [
                                                  "eq",
                                                  "exists"
                                                ]
                                              },
                                              "value": {
                                                "type": "string",
                                                "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                              }
                                            },
                                            "example": {
                                              "field": "unsubscribed",
                                              "operator": "eq",
                                              "value": true
                                            }
                                          }
                                        }
                                      }
                                    ]
                                  }
                                }
                              }
                            },
                            {
                              "title": "segment",
                              "type": "object",
                              "properties": {
                                "segment": {
                                  "x-scalar-ignore": true,
                                  "title": "segment",
                                  "type": "object",
                                  "description": "Provide the `id` of a segment containing people you want to search for.",
                                  "properties": {
                                    "id": {
                                      "type": "integer",
                                      "description": "The ID of the segment you want to return people from.",
                                      "example": 4
                                    }
                                  }
                                }
                              }
                            },
                            {
                              "title": "attribute",
                              "type": "object",
                              "properties": {
                                "attribute": {
                                  "x-scalar-ignore": true,
                                  "title": "attribute",
                                  "description": "Filter your audience by attribute.",
                                  "type": "object",
                                  "required": [
                                    "field",
                                    "operator"
                                  ],
                                  "properties": {
                                    "field": {
                                      "type": "string",
                                      "description": "The name of the attribute you want to filter against.",
                                      "example": "first_name"
                                    },
                                    "operator": {
                                      "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.",
                                      "enum": [
                                        "eq",
                                        "exists"
                                      ]
                                    },
                                    "value": {
                                      "type": "string",
                                      "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                    }
                                  },
                                  "example": {
                                    "field": "unsubscribed",
                                    "operator": "eq",
                                    "value": true
                                  }
                                }
                              }
                            }
                          ]
                        },
                        "or": {
                          "type": "array",
                          "description": "Returns results matching *any* conditions.",
                          "items": {
                            "x-scalar-ignore": true,
                            "anyOf": [
                              {
                                "title": "segment",
                                "description": "Filter for people who belong to a segment.",
                                "type": "object",
                                "properties": {
                                  "segment": {
                                    "x-scalar-ignore": true,
                                    "title": "segment",
                                    "type": "object",
                                    "description": "Provide the `id` of a segment containing people you want to search for.",
                                    "properties": {
                                      "id": {
                                        "type": "integer",
                                        "description": "The ID of the segment you want to return people from.",
                                        "example": 4
                                      }
                                    }
                                  }
                                }
                              },
                              {
                                "title": "audience",
                                "type": "object",
                                "description": "filter for people who have an attribute or an attribute value.",
                                "properties": {
                                  "attribute": {
                                    "x-scalar-ignore": true,
                                    "title": "attribute",
                                    "description": "Filter your audience by attribute.",
                                    "type": "object",
                                    "required": [
                                      "field",
                                      "operator"
                                    ],
                                    "properties": {
                                      "field": {
                                        "type": "string",
                                        "description": "The name of the attribute you want to filter against.",
                                        "example": "first_name"
                                      },
                                      "operator": {
                                        "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.",
                                        "enum": [
                                          "eq",
                                          "exists"
                                        ]
                                      },
                                      "value": {
                                        "type": "string",
                                        "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                      }
                                    },
                                    "example": {
                                      "field": "unsubscribed",
                                      "operator": "eq",
                                      "value": true
                                    }
                                  }
                                }
                              }
                            ]
                          }
                        },
                        "segment": {
                          "x-scalar-ignore": true,
                          "title": "segment",
                          "type": "object",
                          "description": "Provide the `id` of a segment containing people you want to search for.",
                          "properties": {
                            "id": {
                              "type": "integer",
                              "description": "The ID of the segment you want to return people from.",
                              "example": 4
                            }
                          }
                        }
                      }
                    }
                  }
                }
              },
              {
                "title": "segment",
                "type": "object",
                "properties": {
                  "segment": {
                    "x-scalar-ignore": true,
                    "title": "segment",
                    "type": "object",
                    "description": "Provide the `id` of a segment containing people you want to search for.",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "The ID of the segment you want to return people from.",
                        "example": 4
                      }
                    }
                  }
                }
              },
              {
                "title": "attribute",
                "type": "object",
                "properties": {
                  "attribute": {
                    "x-scalar-ignore": true,
                    "title": "attribute",
                    "description": "Filter your audience by attribute.",
                    "type": "object",
                    "required": [
                      "field",
                      "operator"
                    ],
                    "properties": {
                      "field": {
                        "type": "string",
                        "description": "The name of the attribute you want to filter against.",
                        "example": "first_name"
                      },
                      "operator": {
                        "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.",
                        "enum": [
                          "eq",
                          "exists"
                        ]
                      },
                      "value": {
                        "type": "string",
                        "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                      }
                    },
                    "example": {
                      "field": "unsubscribed",
                      "operator": "eq",
                      "value": true
                    }
                  }
                }
              }
            ]
          },
          {
            "title": "segment",
            "description": "Filter for people who belong to a segment.",
            "type": "object",
            "properties": {
              "segment": {
                "x-scalar-ignore": true,
                "title": "segment",
                "type": "object",
                "description": "Provide the `id` of a segment containing people you want to search for.",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "The ID of the segment you want to return people from.",
                    "example": 4
                  }
                }
              }
            }
          },
          {
            "title": "audience",
            "type": "object",
            "description": "filter for people who have an attribute or an attribute value.",
            "properties": {
              "attribute": {
                "x-scalar-ignore": true,
                "title": "attribute",
                "description": "Filter your audience by attribute.",
                "type": "object",
                "required": [
                  "field",
                  "operator"
                ],
                "properties": {
                  "field": {
                    "type": "string",
                    "description": "The name of the attribute you want to filter against.",
                    "example": "first_name"
                  },
                  "operator": {
                    "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.",
                    "enum": [
                      "eq",
                      "exists"
                    ]
                  },
                  "value": {
                    "type": "string",
                    "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                  }
                },
                "example": {
                  "field": "unsubscribed",
                  "operator": "eq",
                  "value": true
                }
              }
            }
          }
        ]
      },
      "objectattributeFilter": {
        "x-scalar-ignore": true,
        "title": "object attribute",
        "description": "Filter your objects by their attributes.",
        "type": "object",
        "required": [
          "field",
          "operator",
          "type_id"
        ],
        "properties": {
          "field": {
            "type": "string",
            "description": "The name of the attribute you want to filter against.",
            "example": "location"
          },
          "operator": {
            "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.",
            "enum": [
              "eq",
              "exists"
            ]
          },
          "type_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "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.",
            "example": "1"
          },
          "value": {
            "type": "string",
            "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
          }
        },
        "example": {
          "field": "cancelled",
          "operator": "eq",
          "type_id": 1,
          "value": true
        }
      },
      "objectFilterAnd": {
        "x-scalar-ignore": true,
        "title": "and",
        "type": "object",
        "properties": {
          "and": {
            "type": "array",
            "description": "Match *all* conditions to return results.",
            "items": {
              "type": "object",
              "properties": {
                "object_attribute": {
                  "x-scalar-ignore": true,
                  "title": "object attribute",
                  "description": "Filter your objects by their attributes.",
                  "type": "object",
                  "required": [
                    "field",
                    "operator",
                    "type_id"
                  ],
                  "properties": {
                    "field": {
                      "type": "string",
                      "description": "The name of the attribute you want to filter against.",
                      "example": "location"
                    },
                    "operator": {
                      "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.",
                      "enum": [
                        "eq",
                        "exists"
                      ]
                    },
                    "type_id": {
                      "x-scalar-ignore": true,
                      "type": "string",
                      "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.",
                      "example": "1"
                    },
                    "value": {
                      "type": "string",
                      "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                    }
                  },
                  "example": {
                    "field": "cancelled",
                    "operator": "eq",
                    "type_id": 1,
                    "value": true
                  }
                }
              }
            }
          }
        }
      },
      "objectFilterOr": {
        "x-scalar-ignore": true,
        "title": "or",
        "type": "object",
        "properties": {
          "or": {
            "type": "array",
            "description": "Match *any* condition to return results.",
            "items": {
              "type": "object",
              "properties": {
                "object_attribute": {
                  "x-scalar-ignore": true,
                  "title": "object attribute",
                  "description": "Filter your objects by their attributes.",
                  "type": "object",
                  "required": [
                    "field",
                    "operator",
                    "type_id"
                  ],
                  "properties": {
                    "field": {
                      "type": "string",
                      "description": "The name of the attribute you want to filter against.",
                      "example": "location"
                    },
                    "operator": {
                      "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.",
                      "enum": [
                        "eq",
                        "exists"
                      ]
                    },
                    "type_id": {
                      "x-scalar-ignore": true,
                      "type": "string",
                      "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.",
                      "example": "1"
                    },
                    "value": {
                      "type": "string",
                      "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                    }
                  },
                  "example": {
                    "field": "cancelled",
                    "operator": "eq",
                    "type_id": 1,
                    "value": true
                  }
                }
              }
            }
          }
        }
      },
      "objectFilterNot": {
        "x-scalar-ignore": true,
        "title": "not",
        "type": "object",
        "properties": {
          "not": {
            "type": "object",
            "description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single condition.",
            "properties": {
              "object_attribute": {
                "x-scalar-ignore": true,
                "title": "object attribute",
                "description": "Filter your objects by their attributes.",
                "type": "object",
                "required": [
                  "field",
                  "operator",
                  "type_id"
                ],
                "properties": {
                  "field": {
                    "type": "string",
                    "description": "The name of the attribute you want to filter against.",
                    "example": "location"
                  },
                  "operator": {
                    "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.",
                    "enum": [
                      "eq",
                      "exists"
                    ]
                  },
                  "type_id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "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.",
                    "example": "1"
                  },
                  "value": {
                    "type": "string",
                    "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                  }
                },
                "example": {
                  "field": "cancelled",
                  "operator": "eq",
                  "type_id": 1,
                  "value": true
                }
              }
            }
          }
        }
      },
      "objectFilter": {
        "x-scalar-ignore": true,
        "title": "Object Filter",
        "description": "Use `and`, `or`, and `not` to combine object attribute conditions. The top-level object accepts one property; nest groups for complex filters.",
        "oneOf": [
          {
            "x-scalar-ignore": true,
            "title": "and",
            "type": "object",
            "properties": {
              "and": {
                "type": "array",
                "description": "Match *all* conditions to return results.",
                "items": {
                  "type": "object",
                  "properties": {
                    "object_attribute": {
                      "x-scalar-ignore": true,
                      "title": "object attribute",
                      "description": "Filter your objects by their attributes.",
                      "type": "object",
                      "required": [
                        "field",
                        "operator",
                        "type_id"
                      ],
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "The name of the attribute you want to filter against.",
                          "example": "location"
                        },
                        "operator": {
                          "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.",
                          "enum": [
                            "eq",
                            "exists"
                          ]
                        },
                        "type_id": {
                          "x-scalar-ignore": true,
                          "type": "string",
                          "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.",
                          "example": "1"
                        },
                        "value": {
                          "type": "string",
                          "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                        }
                      },
                      "example": {
                        "field": "cancelled",
                        "operator": "eq",
                        "type_id": 1,
                        "value": true
                      }
                    }
                  }
                }
              }
            }
          },
          {
            "x-scalar-ignore": true,
            "title": "or",
            "type": "object",
            "properties": {
              "or": {
                "type": "array",
                "description": "Match *any* condition to return results.",
                "items": {
                  "type": "object",
                  "properties": {
                    "object_attribute": {
                      "x-scalar-ignore": true,
                      "title": "object attribute",
                      "description": "Filter your objects by their attributes.",
                      "type": "object",
                      "required": [
                        "field",
                        "operator",
                        "type_id"
                      ],
                      "properties": {
                        "field": {
                          "type": "string",
                          "description": "The name of the attribute you want to filter against.",
                          "example": "location"
                        },
                        "operator": {
                          "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.",
                          "enum": [
                            "eq",
                            "exists"
                          ]
                        },
                        "type_id": {
                          "x-scalar-ignore": true,
                          "type": "string",
                          "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.",
                          "example": "1"
                        },
                        "value": {
                          "type": "string",
                          "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                        }
                      },
                      "example": {
                        "field": "cancelled",
                        "operator": "eq",
                        "type_id": 1,
                        "value": true
                      }
                    }
                  }
                }
              }
            }
          },
          {
            "x-scalar-ignore": true,
            "title": "not",
            "type": "object",
            "properties": {
              "not": {
                "type": "object",
                "description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single condition.",
                "properties": {
                  "object_attribute": {
                    "x-scalar-ignore": true,
                    "title": "object attribute",
                    "description": "Filter your objects by their attributes.",
                    "type": "object",
                    "required": [
                      "field",
                      "operator",
                      "type_id"
                    ],
                    "properties": {
                      "field": {
                        "type": "string",
                        "description": "The name of the attribute you want to filter against.",
                        "example": "location"
                      },
                      "operator": {
                        "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.",
                        "enum": [
                          "eq",
                          "exists"
                        ]
                      },
                      "type_id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "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.",
                        "example": "1"
                      },
                      "value": {
                        "type": "string",
                        "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                      }
                    },
                    "example": {
                      "field": "cancelled",
                      "operator": "eq",
                      "type_id": 1,
                      "value": true
                    }
                  }
                }
              }
            }
          },
          {
            "title": "object attribute",
            "type": "object",
            "description": "A simple filter to find objects matching an attribute condition.",
            "properties": {
              "object_attribute": {
                "x-scalar-ignore": true,
                "title": "object attribute",
                "description": "Filter your objects by their attributes.",
                "type": "object",
                "required": [
                  "field",
                  "operator",
                  "type_id"
                ],
                "properties": {
                  "field": {
                    "type": "string",
                    "description": "The name of the attribute you want to filter against.",
                    "example": "location"
                  },
                  "operator": {
                    "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.",
                    "enum": [
                      "eq",
                      "exists"
                    ]
                  },
                  "type_id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "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.",
                    "example": "1"
                  },
                  "value": {
                    "type": "string",
                    "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                  }
                },
                "example": {
                  "field": "cancelled",
                  "operator": "eq",
                  "type_id": 1,
                  "value": true
                }
              }
            }
          }
        ]
      },
      "device_object_common": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "Device information common to the v1 and v2 APIs.",
        "required": [
          "platform"
        ],
        "properties": {
          "platform": {
            "type": "string",
            "enum": [
              "ios",
              "android"
            ],
            "description": "The device/messaging platform."
          },
          "attributes": {
            "type": "object",
            "description": "Attributes that you can reference to segment your audience—like a person's attributes, but specific to a device. These can be either the attributes defined below or custom key-value attributes.",
            "properties": {
              "_last_status": {
                "type": "string",
                "readOnly": true,
                "description": "The delivery status of the last message sent to the device—sent, bounced, or suppressed. An empty string indicates that that the device hasn't received a push yet.",
                "enum": [
                  "",
                  "bounced",
                  "sent",
                  "suppressed"
                ]
              },
              "app_identifier": {
                "type": "string",
                "description": "The app that the device belongs to—the **Bundle ID / App identifier** you entered with that app's push credentials. If you have more than one app, we use this attribute to send push notifications to the right app. A device without an app identifier receives push notifications you send to your [default app](/messaging/channels/push/getting-started/#the-default-app)."
              },
              "app_version": {
                "type": "string",
                "description": "The version of your app that a customer uses. You might target app versions to let people know when they need to update, or expose them to new features when they do."
              },
              "cio_sdk_version": {
                "type": "string",
                "description": "The version of the Customer.io SDK in the app."
              },
              "device_locale": {
                "type": "string",
                "description": "The device's [IETF language code](/journeys/channels/localization/getting-started/#supported-languages), such as `en-MX` or `es-ES`."
              },
              "device_model": {
                "type": "string",
                "description": "The model of the device a person uses."
              },
              "device_os": {
                "type": "string",
                "description": "The operating system, including the version, on the device."
              },
              "push_enabled": {
                "type": "string",
                "description": "If `\"true\"`, the device is opted-in and can receive push notifications.",
                "enum": [
                  "true",
                  "false"
                ]
              }
            },
            "additionalProperties": {
              "x-additionalPropertiesName": "Custom Device Attributes",
              "description": "Custom properties that you want to associate with the device.",
              "type": "string"
            }
          },
          "last_used": {
            "type": "integer",
            "format": "unix timestamp",
            "description": "The `timestamp` when you last identified this device. If you don't pass a timestamp when you add or update a device, we use the time of the request itself. Our SDKs identify a device when a person launches their app."
          }
        }
      },
      "device_object_cdp_common": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "Device information common to the v1 and v2 APIs.",
        "required": [
          "platform"
        ],
        "properties": {
          "platform": {
            "type": "string",
            "enum": [
              "ios",
              "android"
            ],
            "description": "The device/messaging platform."
          },
          "attributes": {
            "type": "object",
            "description": "Attributes that you can reference to segment your audience—like a person's attributes, but specific to a device. These can be either the attributes defined below or custom key-value attributes.",
            "properties": {
              "_last_status": {
                "type": "string",
                "readOnly": true,
                "description": "The delivery status of the last message sent to the device—sent, bounced, or suppressed. An empty string indicates that that the device hasn't received a push yet.",
                "enum": [
                  "",
                  "bounced",
                  "sent",
                  "suppressed"
                ]
              },
              "app_identifier": {
                "type": "string",
                "description": "The app that the device belongs to—the **Bundle ID / App identifier** you entered with that app's push credentials. If you have more than one app, we use this attribute to send push notifications to the right app. A device without an app identifier receives push notifications you send to your [default app](/messaging/channels/push/getting-started/#the-default-app)."
              },
              "app_version": {
                "type": "string",
                "description": "The version of your app that a customer uses. You might target app versions to let people know when they need to update, or expose them to new features when they do."
              },
              "cio_sdk_version": {
                "type": "string",
                "description": "The version of the Customer.io SDK in the app."
              },
              "device_locale": {
                "type": "string",
                "description": "The device's [IETF language code](/journeys/channels/localization/getting-started/#supported-languages), such as `en-MX` or `es-ES`."
              },
              "device_model": {
                "type": "string",
                "description": "The model of the device a person uses."
              },
              "device_os": {
                "type": "string",
                "description": "The operating system, including the version, on the device."
              },
              "network_bluetooth": {
                "type": "boolean",
                "description": "If `true`, the device's bluetooth connection is on."
              },
              "network_cellular": {
                "type": "boolean",
                "description": "If `true`, the device's cellular connection is on."
              },
              "network_wifi": {
                "type": "boolean",
                "description": "If `true`, the device's WiFi connection is on."
              },
              "push_enabled": {
                "type": "string",
                "description": "If `\"true\"`, the device is opted-in and can receive push notifications.",
                "enum": [
                  "true",
                  "false"
                ]
              },
              "screen_height": {
                "type": "integer",
                "description": "The height of the device's screen in pixels."
              },
              "screen_width": {
                "type": "integer",
                "description": "The width of the device's screen in pixels."
              },
              "timezone": {
                "type": "string",
                "description": "The time zone of the device."
              }
            },
            "additionalProperties": {
              "x-additionalPropertiesName": "Custom Device Attributes",
              "description": "Custom properties that you want to associate with the device.",
              "type": "string"
            }
          },
          "last_used": {
            "type": "integer",
            "format": "unix timestamp",
            "description": "The `timestamp` when you last identified this device. If you don't pass a timestamp when you add or update a device, we use the time of the request itself. Our SDKs identify a device when a person launches their app."
          }
        }
      },
      "device_object": {
        "x-scalar-ignore": true,
        "description": "Device properties collected by [Customer.io SDKs](/integrations/sdk/) unless `autoTrackDeviceAttributes` is disabled. You can use these properties in segments and Liquid.",
        "properties": {
          "id": {
            "description": "The device token.",
            "type": "string"
          },
          "platform": {
            "type": "string",
            "enum": [
              "ios",
              "android"
            ],
            "description": "The device/messaging platform."
          },
          "attributes": {
            "type": "object",
            "description": "Attributes that you can reference to segment your audience—like a person's attributes, but specific to a device. These can be either the attributes defined below or custom key-value attributes.",
            "properties": {
              "_last_status": {
                "type": "string",
                "readOnly": true,
                "description": "The delivery status of the last message sent to the device—sent, bounced, or suppressed. An empty string indicates that that the device hasn't received a push yet.",
                "enum": [
                  "",
                  "bounced",
                  "sent",
                  "suppressed"
                ]
              },
              "app_identifier": {
                "type": "string",
                "description": "The app that the device belongs to—the **Bundle ID / App identifier** you entered with that app's push credentials. If you have more than one app, we use this attribute to send push notifications to the right app. A device without an app identifier receives push notifications you send to your [default app](/messaging/channels/push/getting-started/#the-default-app)."
              },
              "app_version": {
                "type": "string",
                "description": "The version of your app that a customer uses. You might target app versions to let people know when they need to update, or expose them to new features when they do."
              },
              "cio_sdk_version": {
                "type": "string",
                "description": "The version of the Customer.io SDK in the app."
              },
              "device_locale": {
                "type": "string",
                "description": "The device's [IETF language code](/journeys/channels/localization/getting-started/#supported-languages), such as `en-MX` or `es-ES`."
              },
              "device_model": {
                "type": "string",
                "description": "The model of the device a person uses."
              },
              "device_os": {
                "type": "string",
                "description": "The operating system, including the version, on the device."
              },
              "push_enabled": {
                "type": "string",
                "description": "If `\"true\"`, the device is opted-in and can receive push notifications.",
                "enum": [
                  "true",
                  "false"
                ]
              }
            },
            "additionalProperties": {
              "x-additionalPropertiesName": "Custom Device Attributes",
              "description": "Custom properties that you want to associate with the device.",
              "type": "string"
            }
          },
          "last_used": {
            "type": "integer",
            "format": "unix timestamp",
            "description": "The `timestamp` when you last identified this device. If you don't pass a timestamp when you add or update a device, we use the time of the request itself. Our SDKs identify a device when a person launches their app."
          }
        },
        "required": [
          "id",
          "platform"
        ]
      },
      "device_object_cdp": {
        "x-scalar-ignore": true,
        "description": "Device properties for Journeys profiles sent from a [Data Pipelines-enabled SDK](/integrations/sdk/). SDKs collect these automatically unless `autoTrackDeviceAttributes` is disabled.",
        "properties": {
          "id": {
            "description": "The device token.",
            "type": "string"
          },
          "platform": {
            "type": "string",
            "enum": [
              "ios",
              "android"
            ],
            "description": "The device/messaging platform."
          },
          "attributes": {
            "type": "object",
            "description": "Attributes that you can reference to segment your audience—like a person's attributes, but specific to a device. These can be either the attributes defined below or custom key-value attributes.",
            "properties": {
              "_last_status": {
                "type": "string",
                "readOnly": true,
                "description": "The delivery status of the last message sent to the device—sent, bounced, or suppressed. An empty string indicates that that the device hasn't received a push yet.",
                "enum": [
                  "",
                  "bounced",
                  "sent",
                  "suppressed"
                ]
              },
              "app_identifier": {
                "type": "string",
                "description": "The app that the device belongs to—the **Bundle ID / App identifier** you entered with that app's push credentials. If you have more than one app, we use this attribute to send push notifications to the right app. A device without an app identifier receives push notifications you send to your [default app](/messaging/channels/push/getting-started/#the-default-app)."
              },
              "app_version": {
                "type": "string",
                "description": "The version of your app that a customer uses. You might target app versions to let people know when they need to update, or expose them to new features when they do."
              },
              "cio_sdk_version": {
                "type": "string",
                "description": "The version of the Customer.io SDK in the app."
              },
              "device_locale": {
                "type": "string",
                "description": "The device's [IETF language code](/journeys/channels/localization/getting-started/#supported-languages), such as `en-MX` or `es-ES`."
              },
              "device_model": {
                "type": "string",
                "description": "The model of the device a person uses."
              },
              "device_os": {
                "type": "string",
                "description": "The operating system, including the version, on the device."
              },
              "network_bluetooth": {
                "type": "boolean",
                "description": "If `true`, the device's bluetooth connection is on."
              },
              "network_cellular": {
                "type": "boolean",
                "description": "If `true`, the device's cellular connection is on."
              },
              "network_wifi": {
                "type": "boolean",
                "description": "If `true`, the device's WiFi connection is on."
              },
              "push_enabled": {
                "type": "string",
                "description": "If `\"true\"`, the device is opted-in and can receive push notifications.",
                "enum": [
                  "true",
                  "false"
                ]
              },
              "screen_height": {
                "type": "integer",
                "description": "The height of the device's screen in pixels."
              },
              "screen_width": {
                "type": "integer",
                "description": "The width of the device's screen in pixels."
              },
              "timezone": {
                "type": "string",
                "description": "The time zone of the device."
              }
            },
            "additionalProperties": {
              "x-additionalPropertiesName": "Custom Device Attributes",
              "description": "Custom properties that you want to associate with the device.",
              "type": "string"
            }
          },
          "last_used": {
            "type": "integer",
            "format": "unix timestamp",
            "description": "The `timestamp` when you last identified this device. If you don't pass a timestamp when you add or update a device, we use the time of the request itself. Our SDKs identify a device when a person launches their app."
          }
        },
        "required": [
          "id",
          "platform"
        ]
      },
      "import_request": {
        "x-scalar-ignore": true,
        "oneOf": [
          {
            "title": "people",
            "type": "object",
            "description": "Contains your import parameters.",
            "required": [
              "data_file_url",
              "name",
              "type",
              "identifier"
            ],
            "properties": {
              "data_file_url": {
                "type": "string",
                "description": "The URL or path to the CSV file you want to import."
              },
              "identifier": {
                "x-scalar-ignore": true,
                "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.",
                "enum": [
                  "id",
                  "email"
                ]
              },
              "name": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "A friendly name for your import. This helps you identify your import."
              },
              "type": {
                "type": "string",
                "description": "The type of import.",
                "enum": [
                  "people"
                ]
              },
              "data_to_process": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "Controls whether your import adds and updates all rows, adds only new rows, or updates only existing rows. Defaults to `all`. Event imports support only `all` and `only_existing`. Formerly called `people_to_process`.",
                "enum": [
                  "all",
                  "only_new",
                  "only_existing"
                ]
              },
              "description": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "A helpful description that can help you find and recognize your import operation."
              }
            }
          },
          {
            "title": "event",
            "type": "object",
            "description": "Contains your import parameters.",
            "required": [
              "data_file_url",
              "name",
              "type",
              "identifier"
            ],
            "properties": {
              "data_file_url": {
                "type": "string",
                "description": "The URL or path to the CSV file you want to import."
              },
              "identifier": {
                "x-scalar-ignore": true,
                "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.",
                "enum": [
                  "id",
                  "email"
                ]
              },
              "name": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "A friendly name for your import. This helps you identify your import."
              },
              "type": {
                "type": "string",
                "description": "The type of import.",
                "enum": [
                  "event"
                ]
              },
              "data_to_process": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "Controls whether your import adds and updates all rows, adds only new rows, or updates only existing rows. Defaults to `all`. Event imports support only `all` and `only_existing`. Formerly called `people_to_process`.",
                "enum": [
                  "all",
                  "only_new",
                  "only_existing"
                ]
              },
              "description": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "A helpful description that can help you find and recognize your import operation."
              }
            }
          },
          {
            "title": "relationship",
            "type": "object",
            "description": "Contains your import parameters.",
            "required": [
              "data_file_url",
              "name",
              "type",
              "identifier"
            ],
            "properties": {
              "data_file_url": {
                "type": "string",
                "description": "The URL or path to the CSV file you want to import."
              },
              "identifier": {
                "type": "string",
                "description": "The type of identifier used to identify the person in each relationship—`id`, `email`, or `cio_id`.",
                "enum": [
                  "id",
                  "email",
                  "cio_id"
                ]
              },
              "name": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "A friendly name for your import. This helps you identify your import."
              },
              "type": {
                "type": "string",
                "description": "The type of import.",
                "enum": [
                  "relationship"
                ]
              },
              "data_to_process": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "Controls whether your import adds and updates all rows, adds only new rows, or updates only existing rows. Defaults to `all`. Event imports support only `all` and `only_existing`. Formerly called `people_to_process`.",
                "enum": [
                  "all",
                  "only_new",
                  "only_existing"
                ]
              },
              "description": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "A helpful description that can help you find and recognize your import operation."
              }
            }
          },
          {
            "title": "object",
            "type": "object",
            "description": "Contains your import parameters.",
            "required": [
              "data_file_url",
              "name",
              "type",
              "object_type_id"
            ],
            "properties": {
              "data_file_url": {
                "type": "string",
                "description": "The URL or path to the CSV file you want to import."
              },
              "name": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "A friendly name for your import. This helps you identify your import."
              },
              "object_type_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "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.",
                "example": "1"
              },
              "type": {
                "type": "string",
                "description": "The type of import.",
                "enum": [
                  "object"
                ]
              },
              "data_to_process": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "Controls whether your import adds and updates all rows, adds only new rows, or updates only existing rows. Defaults to `all`. Event imports support only `all` and `only_existing`. Formerly called `people_to_process`.",
                "enum": [
                  "all",
                  "only_new",
                  "only_existing"
                ]
              },
              "description": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "A helpful description that can help you find and recognize your import operation."
              }
            }
          }
        ]
      },
      "import_name": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "A friendly name for your import. This helps you identify your import."
      },
      "import_type": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The type of import.",
        "enum": [
          "people",
          "event",
          "object",
          "relationship"
        ]
      },
      "import_description": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "A helpful description that can help you find and recognize your import operation."
      },
      "import_state": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The state of the import—whether your import is being processed, fully completed (`imported`), or if it failed.",
        "enum": [
          "preprocessing",
          "preprocessed",
          "validating",
          "validated",
          "importing",
          "imported",
          "failed",
          "canceled"
        ]
      },
      "rows_to_import": {
        "x-scalar-ignore": true,
        "type": "integer",
        "description": "The total number of importable rows we found in the CSV."
      },
      "rows_imported": {
        "x-scalar-ignore": true,
        "type": "integer",
        "description": "The number of rows we imported from the CSV."
      },
      "data_to_process": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "Controls whether your import adds and updates all rows, adds only new rows, or updates only existing rows. Defaults to `all`. Event imports support only `all` and `only_existing`. Formerly called `people_to_process`.",
        "enum": [
          "all",
          "only_new",
          "only_existing"
        ]
      },
      "import_identifier": {
        "x-scalar-ignore": true,
        "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.",
        "enum": [
          "id",
          "email"
        ]
      },
      "import_object": {
        "x-scalar-ignore": true,
        "description": "Represents an import operation.",
        "type": "object",
        "properties": {
          "created_at": {
            "x-scalar-ignore": true,
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date time when the referenced ID was created.",
            "example": 1552341937,
            "readOnly": true
          },
          "data_to_process": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "Controls whether your import adds and updates all rows, adds only new rows, or updates only existing rows. Defaults to `all`. Event imports support only `all` and `only_existing`. Formerly called `people_to_process`.",
            "enum": [
              "all",
              "only_new",
              "only_existing"
            ]
          },
          "description": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A helpful description that can help you find and recognize your import operation."
          },
          "error": {
            "description": "If your import fails, this helps you understand why.",
            "type": "string"
          },
          "id": {
            "type": "integer",
            "description": "This is the `import_id` you'll use if you want to [lookup your import operation](/integrations/api/app/tag/imports/getImport/)."
          },
          "identifier": {
            "type": "string",
            "description": "The type of identifier you used to identify people in your CSV. Not applicable for object imports.",
            "enum": [
              "id",
              "email"
            ]
          },
          "name": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A friendly name for your import. This helps you identify your import."
          },
          "object_type_id": {
            "type": "string",
            "description": "The object type an object belongs to—like \"Companies\" or \"Accounts\". Only applies to object imports.",
            "example": "1"
          },
          "people_to_process": {
            "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",
            "enum": [
              "all",
              "only_new",
              "only_existing"
            ]
          },
          "rows_imported": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The number of rows we imported from the CSV."
          },
          "rows_to_import": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The total number of importable rows we found in the CSV."
          },
          "state": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The state of the import—whether your import is being processed, fully completed (`imported`), or if it failed.",
            "enum": [
              "preprocessing",
              "preprocessed",
              "validating",
              "validated",
              "importing",
              "imported",
              "failed",
              "canceled"
            ]
          },
          "type": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The type of import.",
            "enum": [
              "people",
              "event",
              "object",
              "relationship"
            ]
          },
          "updated_at": {
            "x-scalar-ignore": true,
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date time when the referenced ID was last updated.",
            "example": 1552341937,
            "readOnly": true
          }
        },
        "example": {
          "created_at": 1706081641,
          "data_to_process": "all",
          "description": "importing accounts",
          "error": "possible error - The specified Object Type does not exist.",
          "id": 30,
          "name": "account-object-import",
          "object_type_id": 1,
          "people_to_process": "all",
          "rows_imported": 3,
          "rows_to_import": 3,
          "state": "imported",
          "type": "object",
          "updated_at": 1706081645
        }
      },
      "customerAttributesObject": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "customer": {
            "type": "object",
            "description": "The profile you referenced by ID in the request.",
            "properties": {
              "attributes": {
                "type": "object",
                "description": "Contains attributes assigned to this profile, including your workspace's people-identifiers (by default, these are `id`, `email`, and `cio_id`). Attributes are all stored as strings.",
                "properties": {
                  "_cio_subscription_preferences_computed": {
                    "type": "string",
                    "description": "A person's computed subscription preferences as stringified JSON, combining set preferences with defaults for unset topics. [Learn more about backfilled preferences](/messaging/channels/subscriptions/center/#backfill-preferences)."
                  },
                  "cio_id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                    "example": "a3000001"
                  },
                  "cio_subscription_preferences": {
                    "type": "string",
                    "description": "A person's subscription preferences as stringified JSON. If unset, preferences are computed from topic defaults; see `_cio_subscription_preferences_computed`."
                  },
                  "email": {
                    "x-scalar-ignore": true,
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "The email address of the customer.",
                    "example": "test@example.com"
                  },
                  "id": {
                    "x-scalar-ignore": true,
                    "type": [
                      "string",
                      "null"
                    ],
                    "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.",
                    "example": "42"
                  }
                },
                "additionalProperties": {
                  "x-additionalPropertiesName": "additional attributes",
                  "description": "Non-identifier attributes assigned to this person.",
                  "type": "string"
                }
              },
              "devices": {
                "type": "array",
                "description": "Lists the devices associated with the customer profile.",
                "items": {
                  "x-scalar-ignore": true,
                  "description": "Device properties collected by [Customer.io SDKs](/integrations/sdk/) unless `autoTrackDeviceAttributes` is disabled. You can use these properties in segments and Liquid.",
                  "properties": {
                    "id": {
                      "description": "The device token.",
                      "type": "string"
                    },
                    "platform": {
                      "type": "string",
                      "enum": [
                        "ios",
                        "android"
                      ],
                      "description": "The device/messaging platform."
                    },
                    "attributes": {
                      "type": "object",
                      "description": "Attributes that you can reference to segment your audience—like a person's attributes, but specific to a device. These can be either the attributes defined below or custom key-value attributes.",
                      "properties": {
                        "_last_status": {
                          "type": "string",
                          "readOnly": true,
                          "description": "The delivery status of the last message sent to the device—sent, bounced, or suppressed. An empty string indicates that that the device hasn't received a push yet.",
                          "enum": [
                            "",
                            "bounced",
                            "sent",
                            "suppressed"
                          ]
                        },
                        "app_identifier": {
                          "type": "string",
                          "description": "The app that the device belongs to—the **Bundle ID / App identifier** you entered with that app's push credentials. If you have more than one app, we use this attribute to send push notifications to the right app. A device without an app identifier receives push notifications you send to your [default app](/messaging/channels/push/getting-started/#the-default-app)."
                        },
                        "app_version": {
                          "type": "string",
                          "description": "The version of your app that a customer uses. You might target app versions to let people know when they need to update, or expose them to new features when they do."
                        },
                        "cio_sdk_version": {
                          "type": "string",
                          "description": "The version of the Customer.io SDK in the app."
                        },
                        "device_locale": {
                          "type": "string",
                          "description": "The device's [IETF language code](/journeys/channels/localization/getting-started/#supported-languages), such as `en-MX` or `es-ES`."
                        },
                        "device_model": {
                          "type": "string",
                          "description": "The model of the device a person uses."
                        },
                        "device_os": {
                          "type": "string",
                          "description": "The operating system, including the version, on the device."
                        },
                        "push_enabled": {
                          "type": "string",
                          "description": "If `\"true\"`, the device is opted-in and can receive push notifications.",
                          "enum": [
                            "true",
                            "false"
                          ]
                        }
                      },
                      "additionalProperties": {
                        "x-additionalPropertiesName": "Custom Device Attributes",
                        "description": "Custom properties that you want to associate with the device.",
                        "type": "string"
                      }
                    },
                    "last_used": {
                      "type": "integer",
                      "format": "unix timestamp",
                      "description": "The `timestamp` when you last identified this device. If you don't pass a timestamp when you add or update a device, we use the time of the request itself. Our SDKs identify a device when a person launches their app."
                    }
                  },
                  "required": [
                    "id",
                    "platform"
                  ]
                }
              },
              "id": {
                "type": "string",
                "description": "The customer ID referenced in the request."
              },
              "identifiers": {
                "x-scalar-ignore": true,
                "type": "object",
                "description": "Identifiers for the person in a response—`id`, `cio_id`, and `email`. Unset `id` or `email` values are `null`. We recommend this object over the less descriptive `customer_id`. This object doesn't include `phone`, even if your workspace uses phone numbers as an identifier; look for the person's `phone` attribute instead.",
                "required": [
                  "email",
                  "id",
                  "cio_id"
                ],
                "properties": {
                  "cio_id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                    "example": "a3000001"
                  },
                  "email": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "format": "email",
                    "description": "A person's email address, if set.",
                    "example": "test@example.com"
                  },
                  "id": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "description": "A person's unique ID, if set. This is the same as the `customer_id` if present.",
                    "example": 2
                  }
                }
              },
              "timestamps": {
                "deprecated": true,
                "type": "object",
                "description": "The epoch timestamps when corresponding attributes were set on the customer profile.",
                "properties": {
                  "_cio_subscription_preferences_computed": {
                    "type": "integer",
                    "description": "Because this value is computed and not actually set on a person, this value is always 0"
                  },
                  "_last_emailed": {
                    "type": "integer",
                    "description": "The date-time when you last emailed a person.",
                    "format": "unix timestamp"
                  },
                  "additionalProperties": {
                    "x-additionalPropertiesName": "additional attribute timestamps",
                    "description": "Timestamps when attributes assigned to the person were set.",
                    "format": "unix timestamp"
                  },
                  "cio_id": {
                    "type": "integer",
                    "description": "The date-time when `cio_id` was assigned.",
                    "format": "unix timestamp"
                  },
                  "cio_subscription_preferences": {
                    "type": "integer",
                    "description": "The datetime when a person's subscription preferences were last updated.",
                    "format": "unix timestamp"
                  },
                  "email": {
                    "type": "integer",
                    "description": "The date-time when the person's email address was added.",
                    "format": "unix timestamp"
                  },
                  "id": {
                    "type": "integer",
                    "description": "The date-time when the person's ID was generated.",
                    "format": "unix timestamp"
                  },
                  "unsubscribed": {
                    "type": "integer",
                    "description": "The date-time when the person unsubscribed.",
                    "format": "unix timestamp"
                  }
                }
              },
              "unsubscribed": {
                "type": "boolean",
                "description": "If `true`, a person is globally unsubscribed from email, SMS, WhatsApp, and push. Values like `true`, `TRUE`, `1`, and `\"1\"` count as true; other values are treated as subscribed or topic-based."
              }
            }
          }
        },
        "example": {
          "customer": {
            "attributes": {
              "_cio_subscription_preferences_computed": "{\"topics\":{\"topic_6\":false,\"topic_7\":false,\"topic_8\":false}}",
              "cio_id": "03000001",
              "cio_subscription_preferences": "{\"topics\":{\"topic_7\":false,\"topic_8\":false}}",
              "email": "test@example.com",
              "id": "1",
              "_last_emailed": "1528932553",
              "created_at": "1489014595",
              "title": "tester",
              "department": "qa"
            },
            "devices": [
              {
                "id": "my_android_device_id",
                "platform": "android",
                "last_used": 1514764800
              },
              {
                "id": "my_ios_device_id",
                "platform": "ios",
                "last_used": 1514764800
              }
            ],
            "id": "1",
            "timestamps": {
              "_cio_subscription_preferences_computed": 0,
              "_last_emailed": 1528932553,
              "cio_id": 1489014595,
              "cio_subscription_preferences": 1673987303,
              "email": 1508932553,
              "id": 1489014595,
              "created_at": 1489014595,
              "department": 1508932553,
              "title": 1508932553
            },
            "unsubscribed": false
          }
        }
      },
      "preheader": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "Also known as \"preview text\", this is the block block of text that users see next to, or underneath, the subject line in their inbox."
      },
      "body_plain": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "By default, your workspace generates a plaintext version of your message body for each delivery. Use this key to override the default plain text body."
      },
      "attachments": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "A dictionary of attachments where the filename is the key and the value is the base64-encoded contents. The filename must include the extension (i.e. `name.csv`). The total size of all attachments must be less than 2 MB.",
        "properties": {
          "<file-name>": {
            "type": "string",
            "format": "base64"
          }
        }
      },
      "update_headers": {
        "x-scalar-ignore": true,
        "description": "Headers you want to add or update. Names and values must be strings, with no non-ASCII characters or spaces. You can't overwrite reserved headers.",
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "The name of the header."
            },
            "value": {
              "type": "string",
              "description": "The value of the header."
            }
          },
          "example": [
            {
              "name": "X-Mailgun-Tag",
              "value": "my-cool-tag"
            }
          ]
        }
      },
      "headers": {
        "x-scalar-ignore": true,
        "description": "A JSON string containing header objects with `name` and `value`. Names and values must be strings, with no non-ASCII characters or spaces. You can't overwrite reserved headers.",
        "type": "string",
        "format": "json",
        "example": "[{\"name\":\"X-Mailgun-Tag\",\"value\":\"my-cool-tag\"},{\"name\":\"X-Custom-Header\",\"value\":\"custom-value\"}]"
      },
      "disable_message_retention": {
        "x-scalar-ignore": true,
        "type": "boolean",
        "default": false,
        "description": "If true, the message body is not retained in delivery history. Setting this value overrides the value set in the settings of your `transactional_message_id`."
      },
      "send_to_unsubscribed": {
        "x-scalar-ignore": true,
        "type": "boolean",
        "default": true,
        "description": "If false, your message is not sent to unsubscribed recipients. Setting this value overrides the value set in the settings of your `transactional_message_id`."
      },
      "tracked": {
        "x-scalar-ignore": true,
        "type": "boolean",
        "description": "If true, Customer.io tracks opens and link clicks in your message.",
        "default": true
      },
      "queue_draft": {
        "x-scalar-ignore": true,
        "type": "boolean",
        "description": "If true, your transactional message is held as a draft in Customer.io and not sent directly to your audience. You must go to the Deliveries and Drafts page to send your message.",
        "default": false
      },
      "customer_identifiers": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "Identifiers for the person in a response—`id`, `cio_id`, and `email`. Unset `id` or `email` values are `null`. We recommend this object over the less descriptive `customer_id`. This object doesn't include `phone`, even if your workspace uses phone numbers as an identifier; look for the person's `phone` attribute instead.",
        "required": [
          "email",
          "id",
          "cio_id"
        ],
        "properties": {
          "cio_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
            "example": "a3000001"
          },
          "email": {
            "type": [
              "string",
              "null"
            ],
            "format": "email",
            "description": "A person's email address, if set.",
            "example": "test@example.com"
          },
          "id": {
            "type": [
              "string",
              "null"
            ],
            "description": "A person's unique ID, if set. This is the same as the `customer_id` if present.",
            "example": 2
          }
        }
      },
      "transactionalSharedEmailObject": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "attachments": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "A dictionary of attachments where the filename is the key and the value is the base64-encoded contents. The filename must include the extension (i.e. `name.csv`). The total size of all attachments must be less than 2 MB.",
            "properties": {
              "<file-name>": {
                "type": "string",
                "format": "base64"
              }
            }
          },
          "bcc": {
            "type": "string",
            "description": "Blind copy message recipients. Supports multiple addresses separated by commas. Your request can contain up to 15 total recipients between the `to`, `cc`, and `bcc` keys.",
            "example": "bcc@example.com"
          },
          "cc": {
            "type": "string",
            "description": "Carbon copy message recipients, separated by commas. Unlike BCC recipients, CC recipients are visible to everyone who receives the message. Their opens, clicks, and bounces count toward your message metrics. CC recipients count toward the limit of 15 total recipients across the `to`, `cc`, and `bcc` keys.",
            "example": "cc@example.com"
          },
          "disable_css_preprocessing": {
            "type": "boolean",
            "description": "Set to `true` to disable CSS preprocessing. This setting overrides the CSS preprocessing setting on the `transactional_message_id` as set in the user interface. Transactional emails have CSS preprocessing enabled by default.",
            "example": false,
            "default": false
          },
          "fake_bcc": {
            "type": "boolean",
            "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"
          },
          "headers": {
            "x-scalar-ignore": true,
            "description": "A JSON string containing header objects with `name` and `value`. Names and values must be strings, with no non-ASCII characters or spaces. You can't overwrite reserved headers.",
            "type": "string",
            "format": "json",
            "example": "[{\"name\":\"X-Mailgun-Tag\",\"value\":\"my-cool-tag\"},{\"name\":\"X-Custom-Header\",\"value\":\"custom-value\"}]"
          },
          "preheader": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "Also known as \"preview text\", this is the block block of text that users see next to, or underneath, the subject line in their inbox."
          },
          "reply_to": {
            "type": "string",
            "description": "The address that recipients can reply to, if different from the `from` address.",
            "example": "replyto@example.com"
          },
          "to": {
            "type": "string",
            "description": "The recipients you want to send to, separated by commas. You can include up to 15 total recipients across `to`, `cc`, and `bcc`, with optional display names in quotes.",
            "example": "cool.person@example.com"
          },
          "tracked": {
            "x-scalar-ignore": true,
            "type": "boolean",
            "description": "If true, Customer.io tracks opens and link clicks in your message.",
            "default": true
          }
        }
      },
      "transactionalSharedPushObject": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "custom_data": {
            "type": "object",
            "description": "Optional key/value pairs you want to attach to the push payload. Firebase only supports string values. This overrides the Custom Data from your transactional template."
          },
          "custom_device": {
            "description": "A device to perform an upsert operation at the time of send. The device will be added/updated on the profile from the Identifiers block.",
            "properties": {
              "platform": {
                "type": "string",
                "enum": [
                  "ios",
                  "android"
                ],
                "description": "The device/messaging platform."
              },
              "token": {
                "description": "The device token.",
                "type": "string"
              },
              "attributes": {
                "type": "object",
                "description": "Attributes that you can reference to segment your audience—like a person's attributes, but specific to a device. These can be either the attributes defined below or custom key-value attributes.",
                "properties": {
                  "_last_status": {
                    "type": "string",
                    "readOnly": true,
                    "description": "The delivery status of the last message sent to the device—sent, bounced, or suppressed. An empty string indicates that that the device hasn't received a push yet.",
                    "enum": [
                      "",
                      "bounced",
                      "sent",
                      "suppressed"
                    ]
                  },
                  "app_identifier": {
                    "type": "string",
                    "description": "The app that the device belongs to—the **Bundle ID / App identifier** you entered with that app's push credentials. If you have more than one app, we use this attribute to send push notifications to the right app. A device without an app identifier receives push notifications you send to your [default app](/messaging/channels/push/getting-started/#the-default-app)."
                  },
                  "app_version": {
                    "type": "string",
                    "description": "The version of your app that a customer uses. You might target app versions to let people know when they need to update, or expose them to new features when they do."
                  },
                  "cio_sdk_version": {
                    "type": "string",
                    "description": "The version of the Customer.io SDK in the app."
                  },
                  "device_locale": {
                    "type": "string",
                    "description": "The device's [IETF language code](/journeys/channels/localization/getting-started/#supported-languages), such as `en-MX` or `es-ES`."
                  },
                  "device_model": {
                    "type": "string",
                    "description": "The model of the device a person uses."
                  },
                  "device_os": {
                    "type": "string",
                    "description": "The operating system, including the version, on the device."
                  },
                  "push_enabled": {
                    "type": "string",
                    "description": "If `\"true\"`, the device is opted-in and can receive push notifications.",
                    "enum": [
                      "true",
                      "false"
                    ]
                  }
                },
                "additionalProperties": {
                  "x-additionalPropertiesName": "Custom Device Attributes",
                  "description": "Custom properties that you want to associate with the device.",
                  "type": "string"
                }
              },
              "last_used": {
                "type": "integer",
                "format": "unix timestamp",
                "description": "The `timestamp` when you last identified this device. If you don't pass a timestamp when you add or update a device, we use the time of the request itself. Our SDKs identify a device when a person launches their app."
              }
            },
            "required": [
              "token",
              "platform"
            ]
          },
          "custom_payload": {
            "type": "object",
            "description": "Optional key/value pairs you want to attach to the push payload. Firebase only supports string values. This overrides all other payload values, including the Custom Payload from your transactional template.",
            "properties": {
              "android": {
                "x-scalar-ignore": true,
                "type": "object",
                "description": "A custom push payload for Android devices.",
                "required": [
                  "message"
                ],
                "properties": {
                  "message": {
                    "type": "object",
                    "description": "The parent object for Android custom push payloads.",
                    "properties": {
                      "android": {
                        "type": "object",
                        "description": "Contains custom push options for your notification.",
                        "properties": {
                          "notification": {
                            "x-scalar-ignore": true,
                            "type": "object",
                            "description": "Properties supported specifically by Android on FCM.",
                            "properties": {
                              "body_loc_arg": {
                                "type": "string",
                                "description": "Variable string values used in place of the format specifiers in `body_loc_key` to localize the body text to the user's current localization. See Formatting and Styling for more information."
                              },
                              "body_loc_key": {
                                "type": "string",
                                "description": "String resource key used to localize the body text. See Android [String resources](https://developer.android.com/guide/topics/resources/string-resource/)."
                              },
                              "click_action": {
                                "type": "string",
                                "description": "The action that occurs when a user taps on the notification. Launches an activity with a matching intent filter when a person taps the notification."
                              },
                              "color": {
                                "type": "string",
                                "description": "The notification's icon color in `#rrggbb` format."
                              },
                              "icon": {
                                "type": "string",
                                "description": "Sets the notification icon to `myicon` for drawable resource `myicon`. If you don't send this key, FCM displays the launcher icon from your app manifest."
                              },
                              "sound": {
                                "type": "string",
                                "description": "The sound that plays when the device receives the notification. Supports `\"default\"` or the filename of a sound resource bundled in your app. Sound files must reside in `/res/raw/`."
                              },
                              "tag": {
                                "type": "string",
                                "description": "An identifier you use to replace an existing notification. If a notification with the same tag is already showing, the new one replaces it. Leave it empty to create a new notification each time."
                              },
                              "title_loc_arg": {
                                "type": "string",
                                "description": "Variable string values used in place of the format specifiers in `title_loc_key` to localize the title text to the user's current localization. See Formatting and Styling for more information."
                              },
                              "title_loc_key": {
                                "type": "string",
                                "description": "String resource key used to localize the title text. See Android [String resources](https://developer.android.com/guide/topics/resources/string-resource/)."
                              }
                            }
                          }
                        }
                      },
                      "data": {
                        "type": "object",
                        "description": "Contains key-value pairs that your app interprets.",
                        "additionalProperties": {
                          "x-additionalPropertiesName": "Attachment Names",
                          "x-doNotRender": true,
                          "type": "string"
                        }
                      },
                      "notification": {
                        "type": "object",
                        "description": "Contains the push body and title.",
                        "properties": {
                          "body": {
                            "x-scalar-ignore": true,
                            "type": "string",
                            "description": "The body of your push notification."
                          },
                          "title": {
                            "x-scalar-ignore": true,
                            "type": "string",
                            "description": "The title of your push notification."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "ios": {
                "x-scalar-ignore": true,
                "description": "Your payload changes depending on whether you send to iOS devices through Google's Firebase Cloud Messaging (FCM) or Apple's Push Notification service (APNs).",
                "oneOf": [
                  {
                    "x-scalar-ignore": true,
                    "type": "object",
                    "required": [
                      "message"
                    ],
                    "properties": {
                      "message": {
                        "type": "object",
                        "description": "The base object for all FCM payloads.",
                        "required": [
                          "apns"
                        ],
                        "properties": {
                          "apns": {
                            "type": "object",
                            "required": [
                              "payload"
                            ],
                            "description": "Defines a payload for iOS devices sent through Firebase Cloud Messaging (FCM).",
                            "properties": {
                              "payload": {
                                "type": "object",
                                "description": "Contains a push payload.",
                                "properties": {
                                  "aps": {
                                    "x-scalar-ignore": true,
                                    "type": "object",
                                    "description": "A push payload intended for an iOS device.",
                                    "properties": {
                                      "alert": {
                                        "oneOf": [
                                          {
                                            "title": "Simple alert",
                                            "type": "string",
                                            "description": "A simple alert message."
                                          },
                                          {
                                            "title": "Complex alert",
                                            "type": "object",
                                            "properties": {
                                              "body": {
                                                "x-scalar-ignore": true,
                                                "type": "string",
                                                "description": "The body of your push notification."
                                              },
                                              "launch-image": {
                                                "description": "The name of the launch image file you want to display. When a user launches your app, they'll see this image or storyboard file rather than your app’s normal launch image.",
                                                "type": "string"
                                              },
                                              "loc-args": {
                                                "type": "array",
                                                "description": "An array of replacement value strings for variables in your message text. Each %@ character in the loc-key is replaced by a value from this array, in the order they appear in the message body.",
                                                "items": {
                                                  "type": "string"
                                                }
                                              },
                                              "loc-key": {
                                                "description": "The key for a localized message string in your app’s Localizable.strings file.",
                                                "type": "string"
                                              },
                                              "subtitle": {
                                                "description": "Additional information that explains the purpose of the notification.",
                                                "type": "string"
                                              },
                                              "subtitle-loc-args": {
                                                "type": "array",
                                                "description": "An array of replacement value strings for variables in your subtitle string. Each %@ character in the subtitle-loc-key is replaced by a value from this array, in the order they appear in the subtitle string.",
                                                "items": {
                                                  "type": "string"
                                                }
                                              },
                                              "subtitle-loc-key": {
                                                "description": "The key for a localized subtitle string in your app’s Localizable.strings file.",
                                                "type": "string"
                                              },
                                              "title": {
                                                "x-scalar-ignore": true,
                                                "type": "string",
                                                "description": "The title of your push notification."
                                              },
                                              "title-loc-args": {
                                                "type": "array",
                                                "description": "An array of replacement value strings for variables in your title string. Each %@ character in the title-loc-key is replaced by a value from this array, in the order they appear in the title string.",
                                                "items": {
                                                  "type": "string"
                                                }
                                              },
                                              "title-loc-key": {
                                                "description": "The key for a localized title string in your app’s Localizable.strings files.",
                                                "type": "string"
                                              }
                                            }
                                          }
                                        ]
                                      },
                                      "badge": {
                                        "type": "integer",
                                        "description": "The number you want to display on your app's icon. Set to 0 to remove the current badge, if any."
                                      },
                                      "category": {
                                        "type": "string",
                                        "description": "The notification’s type. This string must correspond to the identifier of one of the `UNNotificationCategory` objects you register at launch time."
                                      },
                                      "content-available": {
                                        "type": "integer",
                                        "description": "The background notification flag. Use `1` without an `alert` to perform a silent update. `0` indicates a normal push notification."
                                      },
                                      "interruption-level": {
                                        "type": "string",
                                        "description": "Indicates the importance and delivery timing of a notification.",
                                        "enum": [
                                          "passive",
                                          "active",
                                          "time-sensitive",
                                          "critical"
                                        ]
                                      },
                                      "mutable-content": {
                                        "type": "integer",
                                        "description": "Set this to `1` if you use the Customer.io SDK, so you can support images and delivered metrics in your push notifications. It passes the notification to your service extension before delivery."
                                      },
                                      "relevance-score": {
                                        "type": "number",
                                        "description": "A number between 0 and 1. The highest score is considered the \"most relevant\"  and is featured in the notification summary."
                                      },
                                      "sound": {
                                        "oneOf": [
                                          {
                                            "title": "Regular alert",
                                            "type": "string",
                                            "description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound. For critical alerts, you'll pass an object instead."
                                          },
                                          {
                                            "title": "Critical alert",
                                            "type": "object",
                                            "properties": {
                                              "critical": {
                                                "type": "integer",
                                                "description": "1 indicates critical. 0 is not critical."
                                              },
                                              "name": {
                                                "type": "string",
                                                "description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound."
                                              },
                                              "volume": {
                                                "type": "number",
                                                "description": "The volume for a critical alert between 0 and 1, where 0 is silent and 1 is full volume."
                                              }
                                            }
                                          }
                                        ]
                                      },
                                      "target-content-id": {
                                        "type": "string",
                                        "description": "The identifier of the window brought forward."
                                      },
                                      "thread-id": {
                                        "type": "string",
                                        "description": "An identifier to group related notifications."
                                      }
                                    }
                                  },
                                  "CIO": {
                                    "type": "object",
                                    "description": "Contains properties interpreted by the Customer.io iOS SDK.",
                                    "required": [
                                      "push"
                                    ],
                                    "properties": {
                                      "push": {
                                        "type": "object",
                                        "description": "A push payload for the iOS SDK.",
                                        "properties": {
                                          "body": {
                                            "x-scalar-ignore": true,
                                            "type": "string",
                                            "description": "The body of your push notification."
                                          },
                                          "image": {
                                            "x-scalar-ignore": true,
                                            "type": "string",
                                            "description": "The URL of an HTTPS image that you want to use for your message."
                                          },
                                          "link": {
                                            "x-scalar-ignore": true,
                                            "type": "string",
                                            "description": "A deep link (to a page in your app), or a link to a web page."
                                          },
                                          "title": {
                                            "x-scalar-ignore": true,
                                            "type": "string",
                                            "description": "The title of your push notification."
                                          }
                                        }
                                      }
                                    }
                                  }
                                },
                                "additionalProperties": {
                                  "description": "Additional properties that you've set up your app to interpret outside of the Customer.io SDK.",
                                  "x-additionalPropertiesName": "Custom key-value pairs"
                                }
                              },
                              "headers": {
                                "description": "Headers defined by [Apple's payload reference](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns) that you want to pass through FCM.",
                                "type": "object"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  {
                    "x-scalar-ignore": true,
                    "type": "object",
                    "properties": {
                      "aps": {
                        "x-scalar-ignore": true,
                        "type": "object",
                        "description": "A push payload intended for an iOS device.",
                        "properties": {
                          "alert": {
                            "oneOf": [
                              {
                                "title": "Simple alert",
                                "type": "string",
                                "description": "A simple alert message."
                              },
                              {
                                "title": "Complex alert",
                                "type": "object",
                                "properties": {
                                  "body": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The body of your push notification."
                                  },
                                  "launch-image": {
                                    "description": "The name of the launch image file you want to display. When a user launches your app, they'll see this image or storyboard file rather than your app’s normal launch image.",
                                    "type": "string"
                                  },
                                  "loc-args": {
                                    "type": "array",
                                    "description": "An array of replacement value strings for variables in your message text. Each %@ character in the loc-key is replaced by a value from this array, in the order they appear in the message body.",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "loc-key": {
                                    "description": "The key for a localized message string in your app’s Localizable.strings file.",
                                    "type": "string"
                                  },
                                  "subtitle": {
                                    "description": "Additional information that explains the purpose of the notification.",
                                    "type": "string"
                                  },
                                  "subtitle-loc-args": {
                                    "type": "array",
                                    "description": "An array of replacement value strings for variables in your subtitle string. Each %@ character in the subtitle-loc-key is replaced by a value from this array, in the order they appear in the subtitle string.",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "subtitle-loc-key": {
                                    "description": "The key for a localized subtitle string in your app’s Localizable.strings file.",
                                    "type": "string"
                                  },
                                  "title": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The title of your push notification."
                                  },
                                  "title-loc-args": {
                                    "type": "array",
                                    "description": "An array of replacement value strings for variables in your title string. Each %@ character in the title-loc-key is replaced by a value from this array, in the order they appear in the title string.",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "title-loc-key": {
                                    "description": "The key for a localized title string in your app’s Localizable.strings files.",
                                    "type": "string"
                                  }
                                }
                              }
                            ]
                          },
                          "badge": {
                            "type": "integer",
                            "description": "The number you want to display on your app's icon. Set to 0 to remove the current badge, if any."
                          },
                          "category": {
                            "type": "string",
                            "description": "The notification’s type. This string must correspond to the identifier of one of the `UNNotificationCategory` objects you register at launch time."
                          },
                          "content-available": {
                            "type": "integer",
                            "description": "The background notification flag. Use `1` without an `alert` to perform a silent update. `0` indicates a normal push notification."
                          },
                          "interruption-level": {
                            "type": "string",
                            "description": "Indicates the importance and delivery timing of a notification.",
                            "enum": [
                              "passive",
                              "active",
                              "time-sensitive",
                              "critical"
                            ]
                          },
                          "mutable-content": {
                            "type": "integer",
                            "description": "Set this to `1` if you use the Customer.io SDK, so you can support images and delivered metrics in your push notifications. It passes the notification to your service extension before delivery."
                          },
                          "relevance-score": {
                            "type": "number",
                            "description": "A number between 0 and 1. The highest score is considered the \"most relevant\"  and is featured in the notification summary."
                          },
                          "sound": {
                            "oneOf": [
                              {
                                "title": "Regular alert",
                                "type": "string",
                                "description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound. For critical alerts, you'll pass an object instead."
                              },
                              {
                                "title": "Critical alert",
                                "type": "object",
                                "properties": {
                                  "critical": {
                                    "type": "integer",
                                    "description": "1 indicates critical. 0 is not critical."
                                  },
                                  "name": {
                                    "type": "string",
                                    "description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound."
                                  },
                                  "volume": {
                                    "type": "number",
                                    "description": "The volume for a critical alert between 0 and 1, where 0 is silent and 1 is full volume."
                                  }
                                }
                              }
                            ]
                          },
                          "target-content-id": {
                            "type": "string",
                            "description": "The identifier of the window brought forward."
                          },
                          "thread-id": {
                            "type": "string",
                            "description": "An identifier to group related notifications."
                          }
                        }
                      },
                      "CIO": {
                        "type": "object",
                        "required": [
                          "push"
                        ],
                        "description": "Contains options supported by the Customer.io SDK.",
                        "properties": {
                          "push": {
                            "type": "object",
                            "description": "Describes push notification options supported by the CIO SDK.",
                            "properties": {
                              "image": {
                                "x-scalar-ignore": true,
                                "type": "string",
                                "description": "The URL of an HTTPS image that you want to use for your message."
                              },
                              "link": {
                                "x-scalar-ignore": true,
                                "type": "string",
                                "description": "A deep link (to a page in your app), or a link to a web page."
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                ]
              }
            }
          },
          "image_url": {
            "type": "string",
            "description": "An image URL to show in the push. This overrides Image from the transactional template (referenced by `transactional_message_id`)."
          },
          "language": {
            "type": "string",
            "description": "Overrides language preferences for the person you want to send your transactional message to. Use one of our [supported two- or four-letter language codes](/journeys/channels/localization/getting-started/#supported-languages)."
          },
          "link": {
            "type": "string",
            "description": "A deep link to open when the push is tapped. This overrides Link from the transactional template (referenced by `transactional_message_id`)."
          },
          "message": {
            "type": "string",
            "description": "The message body for your notification. This overrides the notification body of the transactional template (referenced by `transactional_message_id`)."
          },
          "sound": {
            "type": "string",
            "description": "**For iOS Only**: your notification can alert users with the device's default notification sound or play no sound at all.\n",
            "enum": [
              "default",
              "none"
            ],
            "default": "default"
          },
          "title": {
            "type": "string",
            "description": "The title for your notification. This overrides the title of the transactional template (referenced by `transactional_message_id`)."
          },
          "to": {
            "type": "string",
            "description": "The devices you want to send this push to—`all`, `last_used`, or a custom device token from the identified profile. Defaults to `all` and overrides the `To` value from your transactional template.",
            "enum": [
              "all",
              "last_used",
              "$device_token"
            ],
            "default": "all"
          }
        }
      },
      "transactionalSharedObject": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "disable_message_retention": {
            "x-scalar-ignore": true,
            "type": "boolean",
            "default": false,
            "description": "If true, the message body is not retained in delivery history. Setting this value overrides the value set in the settings of your `transactional_message_id`."
          },
          "identifiers": {
            "description": "Identifies the person represented by your transactional message by one of, and only one of, `id`, `email`, or `cio_id`.",
            "oneOf": [
              {
                "title": "id",
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The identifier for the person represented by the transactional message. **NOTE**: If your workspace identifies people by email, use the `email` identifier instead.\n",
                    "example": 12345
                  }
                }
              },
              {
                "title": "email",
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "type": "string",
                    "description": "The identifier for the person represented by the transactional message. Use this option if your workspace identifies people by email rather than by `id`.",
                    "example": "cool.person@example.com"
                  }
                }
              },
              {
                "title": "cio_id",
                "type": "object",
                "required": [
                  "cio_id"
                ],
                "properties": {
                  "cio_id": {
                    "type": "string",
                    "description": "A unique, immutable identifier for a person, set by Customer.io when you add a person.",
                    "example": 3000001
                  }
                }
              }
            ]
          },
          "message_data": {
            "type": "object",
            "description": "An object containing the key-value pairs referenced using liquid in your message.",
            "additionalProperties": {
              "x-additionalPropertiesName": "Liquid Data",
              "description": "Insert key-values that you want to reference in your message here."
            },
            "example": {
              "password_reset_token": "abcde-12345-fghij-d888",
              "account_id": "123dj"
            }
          },
          "queue_draft": {
            "x-scalar-ignore": true,
            "type": "boolean",
            "description": "If true, your transactional message is held as a draft in Customer.io and not sent directly to your audience. You must go to the Deliveries and Drafts page to send your message.",
            "default": false
          },
          "send_at": {
            "type": "integer",
            "description": "A unix timestamp (seconds since epoch) determining when the message will be sent. The timestamp can be up to 90 days in the future. If this value is in the past, your message is sent immediately."
          },
          "send_to_unsubscribed": {
            "x-scalar-ignore": true,
            "type": "boolean",
            "default": true,
            "description": "If false, your message is not sent to unsubscribed recipients. Setting this value overrides the value set in the settings of your `transactional_message_id`."
          }
        }
      },
      "snippetRequest": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "Request body for creating or updating a snippet. Only `name` and `value` are accepted; `updated_at` is returned in responses only.",
        "required": [
          "name",
          "value"
        ],
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 150,
            "description": "The name of the snippet, must be unique. Trimmed of leading and trailing whitespace before storage."
          },
          "value": {
            "type": "string",
            "description": "The contents of the snippet (plain text or Liquid). Trimmed of leading and trailing whitespace before storage. Max length is environment-specific (default 16000)."
          }
        },
        "example": {
          "name": "address",
          "value": "<strong>My Company</strong></br>1234 Fake St<br/>Fake,NY<br/>10111"
        }
      },
      "snippet": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "describes a piece of reusable content. You must provide a name for the snippet and the `value`—the content that appears in messages that use the snippet.",
        "required": [
          "name",
          "value"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the snippet, must be unique."
          },
          "value": {
            "type": "string",
            "description": "The contents of the snippet."
          },
          "updated_at": {
            "type": "integer",
            "format": "unix timestamp",
            "description": "The last date-time the snippet was updated.",
            "readOnly": true
          }
        },
        "example": {
          "name": "address",
          "value": "<strong>My Company</strong></br>1234 Fake St<br/>Fake,NY<br/>10111",
          "updated_at": 1582500000
        }
      },
      "senderIdentityObject": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "Information about a sender.",
        "properties": {
          "address": {
            "type": "string",
            "description": "The sender name and email address in the format `name <name@example.com>`."
          },
          "auto_generated": {
            "type": "boolean",
            "description": "If true, the sender is automatically generated by Customer.io."
          },
          "deduplicate_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "readOnly": true,
            "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
            "example": "15:1492548073"
          },
          "email": {
            "type": "string",
            "description": "The email address of the sender."
          },
          "hidden": {
            "type": "boolean",
            "description": "If true, the sender is hidden in the Customer.io UI."
          },
          "id": {
            "type": "integer",
            "description": "The identifier of a sender."
          },
          "name": {
            "type": "string",
            "description": "The name of the sender."
          },
          "phone": {
            "type": "string",
            "description": "The phone number of the sender, used for SMS senders."
          },
          "template_type": {
            "type": "string",
            "enum": [
              "email",
              "phone"
            ],
            "description": "The type of sender."
          }
        },
        "example": {
          "address": "Cher Ami <test@example.com>",
          "auto_generated": false,
          "deduplicate_id": "4534:1478035647",
          "email": "test@example.com",
          "id": 4534,
          "name": "Cher Ami",
          "template_type": "email"
        }
      },
      "export_id": {
        "x-scalar-ignore": true,
        "type": "integer",
        "description": "The identifier for the export.",
        "example": 110
      },
      "export_type": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The type of information contained in the export.",
        "enum": [
          "customers",
          "deliveries"
        ],
        "example": "customers"
      },
      "export_failed": {
        "x-scalar-ignore": true,
        "type": "boolean",
        "description": "If true, the export was unsuccessful.",
        "example": false
      },
      "export_description": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "A description of the export.",
        "example": "Customers with segment filters—in Purchased Flowers"
      },
      "export_downloads": {
        "x-scalar-ignore": true,
        "type": "integer",
        "description": "Counts the total number of times the export has been downloaded.",
        "example": 2
      },
      "metric": {
        "x-scalar-ignore": true,
        "description": "Determines the metric(s) you want to return.",
        "type": "string",
        "enum": [
          "created",
          "attempted",
          "sent",
          "delivered",
          "opened",
          "clicked",
          "converted",
          "bounced",
          "spammed",
          "unsubscribed",
          "dropped",
          "failed",
          "undeliverable"
        ]
      },
      "start": {
        "x-scalar-ignore": true,
        "description": "The unix timestamp representing the beginning of the export.",
        "type": "integer",
        "format": "unix timestamp",
        "example": 1517529600
      },
      "end": {
        "x-scalar-ignore": true,
        "description": "The unix timestamp representing the end of the export.",
        "type": "integer",
        "format": "unix timestamp",
        "example": 1517702400
      },
      "drafts": {
        "x-scalar-ignore": true,
        "description": "If true, your request returns both drafts and active/sent messages.",
        "type": "boolean"
      },
      "exportObject": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "Metadata about an export.",
        "properties": {
          "created_at": {
            "x-scalar-ignore": true,
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date time when the referenced ID was created.",
            "example": 1552341937,
            "readOnly": true
          },
          "deduplicate_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "readOnly": true,
            "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
            "example": "15:1492548073"
          },
          "description": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A description of the export.",
            "example": "Customers with segment filters—in Purchased Flowers"
          },
          "downloads": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "Counts the total number of times the export has been downloaded.",
            "example": 2
          },
          "failed": {
            "x-scalar-ignore": true,
            "type": "boolean",
            "description": "If true, the export was unsuccessful.",
            "example": false
          },
          "id": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The identifier for the export.",
            "example": 110
          },
          "status": {
            "type": "string",
            "enum": [
              "done",
              "pending",
              "failed"
            ],
            "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."
          },
          "total": {
            "type": "integer",
            "description": "The number of entries in the export. Exports report 0 until done."
          },
          "type": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The type of information contained in the export.",
            "enum": [
              "customers",
              "deliveries"
            ],
            "example": "customers"
          },
          "updated_at": {
            "x-scalar-ignore": true,
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date time when the referenced ID was last updated.",
            "example": 1552341937,
            "readOnly": true
          },
          "user_email": {
            "type": "string",
            "description": "The email of the user who created the export."
          },
          "user_id": {
            "type": "integer",
            "description": "The user who created the export."
          }
        },
        "example": {
          "created_at": 1530296738,
          "deduplicate_id": "110:1530296738",
          "description": "Customers with segment filters—in \\Purchased Flowers\\",
          "downloads": 2,
          "failed": false,
          "id": 110,
          "status": "done",
          "total": 1234,
          "type": "customers",
          "updated_at": 1530296738,
          "user_email": "person@email.com",
          "user_id": 0
        }
      },
      "variant_id": {
        "x-scalar-ignore": true,
        "type": "integer",
        "description": "The identifier of a one-time send variant—a language in a multi-language one-time send or a test in an A/B test.",
        "readOnly": true
      },
      "subscription_topic_id": {
        "x-scalar-ignore": true,
        "type": "integer",
        "description": "The identifier of a subscription topic. Remember, subscription topics are assigned an incrementing number, starting at 1.",
        "example": 1
      },
      "newsletterErrorResponse": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "Error response format for one-time send endpoints.",
        "properties": {
          "errors": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "detail": {
                  "type": "string",
                  "description": "A message describing the error."
                }
              }
            }
          }
        },
        "example": {
          "errors": [
            {
              "detail": "subscription_topic_id is required"
            }
          ]
        }
      },
      "createNewsletterRequest": {
        "x-scalar-ignore": true,
        "oneOf": [
          {
            "x-scalar-ignore": true,
            "title": "Email",
            "description": "When you create an email, include `subject` and `body`. Set either `from` or `from_id`, but not both. If you set neither, Customer.io uses your oldest verified sending address.",
            "allOf": [
              {
                "x-scalar-ignore": true,
                "type": "object",
                "example": {
                  "rate_limit_email_rate": 500,
                  "rate_limit_spread": true,
                  "rate_limit_time_period": 60
                },
                "description": "Optional one-time send rate limiting. If you set `rate_limit_email_rate` or `rate_limit_time_period`, set both; `rate_limit_spread` can be set alone."
              },
              {
                "type": "object",
                "example": {
                  "body": "<html><body><h1>Product Updates</h1><p>Here's what we shipped this week...</p></body></html>",
                  "subject": "What's new this week, {{ customer.first_name }}",
                  "from": "Product Team <updates@example.com>",
                  "preheader_text": "Check out our latest features and improvements",
                  "type": "email",
                  "name": "Weekly Product Update",
                  "recipients": {
                    "and": [
                      {
                        "or": [
                          {
                            "segment": {
                              "id": 42
                            }
                          },
                          {
                            "segment": {
                              "id": 99
                            }
                          }
                        ]
                      },
                      {
                        "attribute": {
                          "field": "plan",
                          "operator": "eq",
                          "value": "trial",
                          "inverse": true
                        }
                      }
                    ]
                  },
                  "subscription_topic_id": 5
                }
              }
            ],
            "properties": {
              "type": {
                "type": "string",
                "description": "The channel type for the one-time send.",
                "enum": [
                  "email"
                ]
              },
              "body": {
                "type": "string",
                "description": "The HTML body content of the email. Use standard HTML/CSS, not syntax unique to Design Studio."
              },
              "name": {
                "type": "string",
                "maxLength": 190,
                "description": "The name of the one-time send."
              },
              "recipients": {
                "type": "object",
                "description": "Filter conditions that define the one-time send's recipients. Combine `segment` and `attribute` conditions with `and`, `or`, and `not` operators.\n\nThis endpoint enforces a strict shape:\n\n* The outermost object must be a single `and` array.\n* Every operator or condition object takes exactly **one** key: `and`, `or`, `not`, `segment`, or `attribute`. An object with two keys—like `not` alongside `and`—is rejected with an \"Invalid filter spec\" error.\n* Segment conditions must be wrapped in an `or` array, even for a single segment—and `or` arrays can contain only segment conditions.\n* To exclude segments, `not` must contain an `or` of segment conditions and sit as its own item inside the `and` array.\n* Attribute conditions sit directly in the `and` array, unwrapped. To negate an attribute condition, set `inverse: true` on the attribute itself—`not` can't contain attribute conditions.\n\nThe email example on this operation shows or-wrapped segments combined with a negated attribute; for the common \"include segment A, exclude segment B\" pattern, see the **include one segment, exclude another** request example. See [Format API-triggered broadcasts](/messaging/send/broadcasts/api-triggered-data-format/#overriding-recipients) for general operator behavior.\n",
                "properties": {
                  "and": {
                    "type": "array",
                    "description": "An array of conditions that must all be true.",
                    "items": {
                      "type": "object"
                    }
                  },
                  "attribute": {
                    "type": "object",
                    "description": "A customer attribute condition.",
                    "properties": {
                      "field": {
                        "type": "string",
                        "description": "The attribute name."
                      },
                      "inverse": {
                        "type": "boolean",
                        "description": "Set to `true` for \"is not equal\" or \"does not exist\"."
                      },
                      "operator": {
                        "type": "string",
                        "description": "The comparison operator.",
                        "enum": [
                          "eq",
                          "exists"
                        ]
                      },
                      "value": {
                        "type": "string",
                        "description": "The value to compare against. Required when `operator` is `eq`."
                      }
                    }
                  },
                  "not": {
                    "type": "object",
                    "description": "A condition or group of conditions to exclude. On this endpoint, `not` must contain an `or` of segment conditions and sit as its own item inside the `and` array. An object with both `and` and `not` keys is rejected with an \"Invalid filter spec\" error."
                  },
                  "or": {
                    "type": "array",
                    "description": "An array of conditions where at least one must be true. On this endpoint, `or` arrays can contain only segment conditions.",
                    "items": {
                      "type": "object"
                    }
                  },
                  "segment": {
                    "type": "object",
                    "description": "A segment condition.",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "The ID of a segment."
                      }
                    }
                  }
                }
              },
              "subject": {
                "type": "string",
                "description": "The subject line of the email."
              },
              "body_plain": {
                "type": "string",
                "description": "The plaintext body of the email. If provided, this overwrites the auto-generated plaintext."
              },
              "from": {
                "type": "string",
                "description": "The address to send the email from, in the format `Name <email@domain.com>`. You can set `from` or `from_id`, but not both. Use one of the `address` values from [List sender identities](/integrations/api/app/tag/sender-identities/listSenders/)."
              },
              "from_id": {
                "x-scalar-ignore": true,
                "type": "integer",
                "description": "The identifier of the `from` address, commonly known as the \"sender\". Use [List sender identities](/integrations/api/app/tag/sender-identities/listSenders/) to find valid IDs.",
                "example": 1
              },
              "layout_id": {
                "type": "integer",
                "description": "The ID of the [layout](/journeys/channels/email/layouts/3-layouts-and-customerio/) you want to use for the email. If you don't set one, the email uses your workspace's default layout. Find a layout's ID in its URL."
              },
              "preheader_text": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "[Also known as \"preview text\"](/journeys/channels/email/headers/custom-preheader-text/), this is the small block of text shown in an email inbox next to or underneath the subject line.\n"
              },
              "rate_limit_email_rate": {
                "type": "integer",
                "minimum": 1,
                "description": "Maximum number of messages per time period. **NOTE:** Though this states `email_rate`, you can use this for other message channels. Only fixed rate limits are supported, not [daily ramp limits](/messaging/send/broadcasts/one-time-sends/#daily-ramp).\n"
              },
              "rate_limit_spread": {
                "type": "boolean",
                "description": "When `true`, spreads messages evenly across the time period. Otherwise, it sends as fast as possible up to the limit in each period."
              },
              "rate_limit_time_period": {
                "type": "integer",
                "enum": [
                  60,
                  3600,
                  86400
                ],
                "description": "Time period in seconds for rate limiting. Must be one of 60 (minute), 3600 (hour), or 86400 (day)."
              },
              "scheduled_at": {
                "type": "integer",
                "format": "unix timestamp",
                "description": "A Unix timestamp indicating when to send the one-time send. The time must be in the future. You cannot set both `send_now` and `scheduled_at`."
              },
              "send_now": {
                "type": "boolean",
                "description": "If `true`, the one-time send is sent immediately after creation. You cannot set both `send_now` and `scheduled_at`."
              },
              "subscription_topic_id": {
                "type": "integer",
                "description": "The one-time send audience's subscription topic ID. Required when [subscription center](/journeys/channels/subscriptions/center/#enable-sub-center) is enabled; otherwise sends to globally subscribed profiles."
              }
            },
            "required": [
              "name",
              "type",
              "recipients",
              "subject",
              "body"
            ]
          },
          {
            "x-scalar-ignore": true,
            "title": "SMS",
            "description": "When creating an SMS text, you must include `body`.",
            "allOf": [
              {
                "x-scalar-ignore": true,
                "type": "object",
                "example": {
                  "rate_limit_email_rate": 500,
                  "rate_limit_spread": true,
                  "rate_limit_time_period": 60
                },
                "description": "Optional one-time send rate limiting. If you set `rate_limit_email_rate` or `rate_limit_time_period`, set both; `rate_limit_spread` can be set alone."
              }
            ],
            "properties": {
              "type": {
                "type": "string",
                "description": "The channel type for the one-time send.",
                "enum": [
                  "twilio"
                ]
              },
              "body": {
                "type": "string",
                "description": "The body content of the SMS message.",
                "example": "Hi {{ customer.first_name }}, your order has shipped!"
              },
              "name": {
                "type": "string",
                "maxLength": 190,
                "description": "The name of the one-time send."
              },
              "recipients": {
                "type": "object",
                "description": "Filter conditions that define the one-time send's recipients. Combine `segment` and `attribute` conditions with `and`, `or`, and `not` operators.\n\nThis endpoint enforces a strict shape:\n\n* The outermost object must be a single `and` array.\n* Every operator or condition object takes exactly **one** key: `and`, `or`, `not`, `segment`, or `attribute`. An object with two keys—like `not` alongside `and`—is rejected with an \"Invalid filter spec\" error.\n* Segment conditions must be wrapped in an `or` array, even for a single segment—and `or` arrays can contain only segment conditions.\n* To exclude segments, `not` must contain an `or` of segment conditions and sit as its own item inside the `and` array.\n* Attribute conditions sit directly in the `and` array, unwrapped. To negate an attribute condition, set `inverse: true` on the attribute itself—`not` can't contain attribute conditions.\n\nThe email example on this operation shows or-wrapped segments combined with a negated attribute; for the common \"include segment A, exclude segment B\" pattern, see the **include one segment, exclude another** request example. See [Format API-triggered broadcasts](/messaging/send/broadcasts/api-triggered-data-format/#overriding-recipients) for general operator behavior.\n",
                "properties": {
                  "and": {
                    "type": "array",
                    "description": "An array of conditions that must all be true.",
                    "items": {
                      "type": "object"
                    }
                  },
                  "attribute": {
                    "type": "object",
                    "description": "A customer attribute condition.",
                    "properties": {
                      "field": {
                        "type": "string",
                        "description": "The attribute name."
                      },
                      "inverse": {
                        "type": "boolean",
                        "description": "Set to `true` for \"is not equal\" or \"does not exist\"."
                      },
                      "operator": {
                        "type": "string",
                        "description": "The comparison operator.",
                        "enum": [
                          "eq",
                          "exists"
                        ]
                      },
                      "value": {
                        "type": "string",
                        "description": "The value to compare against. Required when `operator` is `eq`."
                      }
                    }
                  },
                  "not": {
                    "type": "object",
                    "description": "A condition or group of conditions to exclude. On this endpoint, `not` must contain an `or` of segment conditions and sit as its own item inside the `and` array. An object with both `and` and `not` keys is rejected with an \"Invalid filter spec\" error."
                  },
                  "or": {
                    "type": "array",
                    "description": "An array of conditions where at least one must be true. On this endpoint, `or` arrays can contain only segment conditions.",
                    "items": {
                      "type": "object"
                    }
                  },
                  "segment": {
                    "type": "object",
                    "description": "A segment condition.",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "The ID of a segment."
                      }
                    }
                  }
                }
              },
              "rate_limit_email_rate": {
                "type": "integer",
                "minimum": 1,
                "description": "Maximum number of messages per time period. **NOTE:** Though this states `email_rate`, you can use this for other message channels. Only fixed rate limits are supported, not [daily ramp limits](/messaging/send/broadcasts/one-time-sends/#daily-ramp).\n"
              },
              "rate_limit_spread": {
                "type": "boolean",
                "description": "When `true`, spreads messages evenly across the time period. Otherwise, it sends as fast as possible up to the limit in each period."
              },
              "rate_limit_time_period": {
                "type": "integer",
                "enum": [
                  60,
                  3600,
                  86400
                ],
                "description": "Time period in seconds for rate limiting. Must be one of 60 (minute), 3600 (hour), or 86400 (day)."
              },
              "scheduled_at": {
                "type": "integer",
                "format": "unix timestamp",
                "description": "A Unix timestamp indicating when to send the one-time send. The time must be in the future. You cannot set both `send_now` and `scheduled_at`."
              },
              "send_now": {
                "type": "boolean",
                "description": "If `true`, the one-time send is sent immediately after creation. You cannot set both `send_now` and `scheduled_at`."
              },
              "subscription_topic_id": {
                "type": "integer",
                "description": "The one-time send audience's subscription topic ID. Required when [subscription center](/journeys/channels/subscriptions/center/#enable-sub-center) is enabled; otherwise sends to globally subscribed profiles."
              }
            },
            "required": [
              "name",
              "type",
              "recipients",
              "body"
            ]
          },
          {
            "x-scalar-ignore": true,
            "title": "Push",
            "description": "For push notifications, you must provide at least one of `subject` or `body`.",
            "allOf": [
              {
                "x-scalar-ignore": true,
                "type": "object",
                "example": {
                  "rate_limit_email_rate": 500,
                  "rate_limit_spread": true,
                  "rate_limit_time_period": 60
                },
                "description": "Optional one-time send rate limiting. If you set `rate_limit_email_rate` or `rate_limit_time_period`, set both; `rate_limit_spread` can be set alone."
              }
            ],
            "properties": {
              "type": {
                "type": "string",
                "description": "The channel type for the one-time send.",
                "enum": [
                  "push"
                ]
              },
              "name": {
                "type": "string",
                "maxLength": 190,
                "description": "The name of the one-time send."
              },
              "recipients": {
                "type": "object",
                "description": "Filter conditions that define the one-time send's recipients. Combine `segment` and `attribute` conditions with `and`, `or`, and `not` operators.\n\nThis endpoint enforces a strict shape:\n\n* The outermost object must be a single `and` array.\n* Every operator or condition object takes exactly **one** key: `and`, `or`, `not`, `segment`, or `attribute`. An object with two keys—like `not` alongside `and`—is rejected with an \"Invalid filter spec\" error.\n* Segment conditions must be wrapped in an `or` array, even for a single segment—and `or` arrays can contain only segment conditions.\n* To exclude segments, `not` must contain an `or` of segment conditions and sit as its own item inside the `and` array.\n* Attribute conditions sit directly in the `and` array, unwrapped. To negate an attribute condition, set `inverse: true` on the attribute itself—`not` can't contain attribute conditions.\n\nThe email example on this operation shows or-wrapped segments combined with a negated attribute; for the common \"include segment A, exclude segment B\" pattern, see the **include one segment, exclude another** request example. See [Format API-triggered broadcasts](/messaging/send/broadcasts/api-triggered-data-format/#overriding-recipients) for general operator behavior.\n",
                "properties": {
                  "and": {
                    "type": "array",
                    "description": "An array of conditions that must all be true.",
                    "items": {
                      "type": "object"
                    }
                  },
                  "attribute": {
                    "type": "object",
                    "description": "A customer attribute condition.",
                    "properties": {
                      "field": {
                        "type": "string",
                        "description": "The attribute name."
                      },
                      "inverse": {
                        "type": "boolean",
                        "description": "Set to `true` for \"is not equal\" or \"does not exist\"."
                      },
                      "operator": {
                        "type": "string",
                        "description": "The comparison operator.",
                        "enum": [
                          "eq",
                          "exists"
                        ]
                      },
                      "value": {
                        "type": "string",
                        "description": "The value to compare against. Required when `operator` is `eq`."
                      }
                    }
                  },
                  "not": {
                    "type": "object",
                    "description": "A condition or group of conditions to exclude. On this endpoint, `not` must contain an `or` of segment conditions and sit as its own item inside the `and` array. An object with both `and` and `not` keys is rejected with an \"Invalid filter spec\" error."
                  },
                  "or": {
                    "type": "array",
                    "description": "An array of conditions where at least one must be true. On this endpoint, `or` arrays can contain only segment conditions.",
                    "items": {
                      "type": "object"
                    }
                  },
                  "segment": {
                    "type": "object",
                    "description": "A segment condition.",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "The ID of a segment."
                      }
                    }
                  }
                }
              },
              "body": {
                "type": "string",
                "description": "The body content of the push notification. You must provide `subject`, `body`, or both.",
                "example": "Get 30% off everything. Tap to shop now."
              },
              "rate_limit_email_rate": {
                "type": "integer",
                "minimum": 1,
                "description": "Maximum number of messages per time period. **NOTE:** Though this states `email_rate`, you can use this for other message channels. Only fixed rate limits are supported, not [daily ramp limits](/messaging/send/broadcasts/one-time-sends/#daily-ramp).\n"
              },
              "rate_limit_spread": {
                "type": "boolean",
                "description": "When `true`, spreads messages evenly across the time period. Otherwise, it sends as fast as possible up to the limit in each period."
              },
              "rate_limit_time_period": {
                "type": "integer",
                "enum": [
                  60,
                  3600,
                  86400
                ],
                "description": "Time period in seconds for rate limiting. Must be one of 60 (minute), 3600 (hour), or 86400 (day)."
              },
              "scheduled_at": {
                "type": "integer",
                "format": "unix timestamp",
                "description": "A Unix timestamp indicating when to send the one-time send. The time must be in the future. You cannot set both `send_now` and `scheduled_at`."
              },
              "send_now": {
                "type": "boolean",
                "description": "If `true`, the one-time send is sent immediately after creation. You cannot set both `send_now` and `scheduled_at`."
              },
              "subject": {
                "type": "string",
                "description": "The title of the push notification. You must provide `subject`, `body`, or both.",
                "example": "24-hour flash sale!"
              },
              "subscription_topic_id": {
                "type": "integer",
                "description": "The one-time send audience's subscription topic ID. Required when [subscription center](/journeys/channels/subscriptions/center/#enable-sub-center) is enabled; otherwise sends to globally subscribed profiles."
              }
            },
            "required": [
              "name",
              "type",
              "recipients"
            ]
          },
          {
            "x-scalar-ignore": true,
            "title": "In-App",
            "description": "For in-app messages, you must include `body_json`.",
            "allOf": [
              {
                "x-scalar-ignore": true,
                "type": "object",
                "example": {
                  "rate_limit_email_rate": 500,
                  "rate_limit_spread": true,
                  "rate_limit_time_period": 60
                },
                "description": "Optional one-time send rate limiting. If you set `rate_limit_email_rate` or `rate_limit_time_period`, set both; `rate_limit_spread` can be set alone."
              }
            ],
            "properties": {
              "type": {
                "type": "string",
                "description": "The channel type for the one-time send.",
                "enum": [
                  "in_app"
                ]
              },
              "body_json": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "JSON body content for the in-app message, as a stringified JSON object—a JSON string, not a nested object. It supports these fields:\n- `message_id`—string, an identifier for the message\n- `carta_content`—string, the message content markup from our in-app editor\n- `display`—object; `mode` (`modal`, `overlay`, `inline`, or `tooltip`) and `value` (the position for modals: `top`, `center`, or `bottom`; the position ID for inline messages). Tooltips take a `tooltip_target` CSS selector instead of `value`\n- `priority`—integer, delivery order for queued messages: `1` (low), `5` (medium), or `10` (high)\n- `expiration`—object; if omitted, the message expires after 30 days (60 maximum). Set `type` (`relative` or `absolute`), `unit`, and `value`\n- `persistent`—boolean, keep the message visible across pages and sessions until your audience dismisses it\n- `attributes`—object, custom key-value string pairs delivered with the message\n- `route_rules` and `excluded_route_rules`—objects keyed by platform (`web`, `ios`, or `android`), each holding an array of [page rules](/messaging/channels/in-app/send-in-app-message/#page-rule) with an `operator` (`contains` or `equals`), a `value` (`*` is a wildcard), and an `order` (integer). You can only set page rules when you create a message, and platforms you don't set rules for won't show the message\n",
                "example": "{\"message_id\":\"welcome\",\"display\":{\"mode\":\"modal\",\"value\":\"center\"},\"carta_content\":\"<x-base><x-message>Hello {{customer.first_name}}!</x-message></x-base>\",\"route_rules\":{\"web\":[{\"operator\":\"contains\",\"value\":\"/dashboard\",\"order\":0}]},\"excluded_route_rules\":{\"web\":[{\"operator\":\"equals\",\"value\":\"/admin\",\"order\":0}]}}"
              },
              "name": {
                "type": "string",
                "maxLength": 190,
                "description": "The name of the one-time send."
              },
              "recipients": {
                "type": "object",
                "description": "Filter conditions that define the one-time send's recipients. Combine `segment` and `attribute` conditions with `and`, `or`, and `not` operators.\n\nThis endpoint enforces a strict shape:\n\n* The outermost object must be a single `and` array.\n* Every operator or condition object takes exactly **one** key: `and`, `or`, `not`, `segment`, or `attribute`. An object with two keys—like `not` alongside `and`—is rejected with an \"Invalid filter spec\" error.\n* Segment conditions must be wrapped in an `or` array, even for a single segment—and `or` arrays can contain only segment conditions.\n* To exclude segments, `not` must contain an `or` of segment conditions and sit as its own item inside the `and` array.\n* Attribute conditions sit directly in the `and` array, unwrapped. To negate an attribute condition, set `inverse: true` on the attribute itself—`not` can't contain attribute conditions.\n\nThe email example on this operation shows or-wrapped segments combined with a negated attribute; for the common \"include segment A, exclude segment B\" pattern, see the **include one segment, exclude another** request example. See [Format API-triggered broadcasts](/messaging/send/broadcasts/api-triggered-data-format/#overriding-recipients) for general operator behavior.\n",
                "properties": {
                  "and": {
                    "type": "array",
                    "description": "An array of conditions that must all be true.",
                    "items": {
                      "type": "object"
                    }
                  },
                  "attribute": {
                    "type": "object",
                    "description": "A customer attribute condition.",
                    "properties": {
                      "field": {
                        "type": "string",
                        "description": "The attribute name."
                      },
                      "inverse": {
                        "type": "boolean",
                        "description": "Set to `true` for \"is not equal\" or \"does not exist\"."
                      },
                      "operator": {
                        "type": "string",
                        "description": "The comparison operator.",
                        "enum": [
                          "eq",
                          "exists"
                        ]
                      },
                      "value": {
                        "type": "string",
                        "description": "The value to compare against. Required when `operator` is `eq`."
                      }
                    }
                  },
                  "not": {
                    "type": "object",
                    "description": "A condition or group of conditions to exclude. On this endpoint, `not` must contain an `or` of segment conditions and sit as its own item inside the `and` array. An object with both `and` and `not` keys is rejected with an \"Invalid filter spec\" error."
                  },
                  "or": {
                    "type": "array",
                    "description": "An array of conditions where at least one must be true. On this endpoint, `or` arrays can contain only segment conditions.",
                    "items": {
                      "type": "object"
                    }
                  },
                  "segment": {
                    "type": "object",
                    "description": "A segment condition.",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "The ID of a segment."
                      }
                    }
                  }
                }
              },
              "rate_limit_email_rate": {
                "type": "integer",
                "minimum": 1,
                "description": "Maximum number of messages per time period. **NOTE:** Though this states `email_rate`, you can use this for other message channels. Only fixed rate limits are supported, not [daily ramp limits](/messaging/send/broadcasts/one-time-sends/#daily-ramp).\n"
              },
              "rate_limit_spread": {
                "type": "boolean",
                "description": "When `true`, spreads messages evenly across the time period. Otherwise, it sends as fast as possible up to the limit in each period."
              },
              "rate_limit_time_period": {
                "type": "integer",
                "enum": [
                  60,
                  3600,
                  86400
                ],
                "description": "Time period in seconds for rate limiting. Must be one of 60 (minute), 3600 (hour), or 86400 (day)."
              },
              "scheduled_at": {
                "type": "integer",
                "format": "unix timestamp",
                "description": "A Unix timestamp indicating when to send the one-time send. The time must be in the future. You cannot set both `send_now` and `scheduled_at`."
              },
              "send_now": {
                "type": "boolean",
                "description": "If `true`, the one-time send is sent immediately after creation. You cannot set both `send_now` and `scheduled_at`."
              },
              "subscription_topic_id": {
                "type": "integer",
                "description": "The one-time send audience's subscription topic ID. Required when [subscription center](/journeys/channels/subscriptions/center/#enable-sub-center) is enabled; otherwise sends to globally subscribed profiles."
              }
            },
            "required": [
              "name",
              "type",
              "recipients",
              "body_json"
            ]
          },
          {
            "x-scalar-ignore": true,
            "title": "Webhook",
            "description": "For webhooks, you must include `body`, `request_method`, and `url`.",
            "allOf": [
              {
                "x-scalar-ignore": true,
                "type": "object",
                "example": {
                  "rate_limit_email_rate": 500,
                  "rate_limit_spread": true,
                  "rate_limit_time_period": 60
                },
                "description": "Optional one-time send rate limiting. If you set `rate_limit_email_rate` or `rate_limit_time_period`, set both; `rate_limit_spread` can be set alone."
              }
            ],
            "properties": {
              "type": {
                "type": "string",
                "description": "The channel type for the one-time send.",
                "enum": [
                  "webhook"
                ]
              },
              "body": {
                "type": "string",
                "description": "The body content of the webhook request.",
                "example": "{\"channel\":\"#marketing\",\"text\":\"One-time send sent to {{ customer.email }}\"}"
              },
              "name": {
                "type": "string",
                "maxLength": 190,
                "description": "The name of the one-time send."
              },
              "recipients": {
                "type": "object",
                "description": "Filter conditions that define the one-time send's recipients. Combine `segment` and `attribute` conditions with `and`, `or`, and `not` operators.\n\nThis endpoint enforces a strict shape:\n\n* The outermost object must be a single `and` array.\n* Every operator or condition object takes exactly **one** key: `and`, `or`, `not`, `segment`, or `attribute`. An object with two keys—like `not` alongside `and`—is rejected with an \"Invalid filter spec\" error.\n* Segment conditions must be wrapped in an `or` array, even for a single segment—and `or` arrays can contain only segment conditions.\n* To exclude segments, `not` must contain an `or` of segment conditions and sit as its own item inside the `and` array.\n* Attribute conditions sit directly in the `and` array, unwrapped. To negate an attribute condition, set `inverse: true` on the attribute itself—`not` can't contain attribute conditions.\n\nThe email example on this operation shows or-wrapped segments combined with a negated attribute; for the common \"include segment A, exclude segment B\" pattern, see the **include one segment, exclude another** request example. See [Format API-triggered broadcasts](/messaging/send/broadcasts/api-triggered-data-format/#overriding-recipients) for general operator behavior.\n",
                "properties": {
                  "and": {
                    "type": "array",
                    "description": "An array of conditions that must all be true.",
                    "items": {
                      "type": "object"
                    }
                  },
                  "attribute": {
                    "type": "object",
                    "description": "A customer attribute condition.",
                    "properties": {
                      "field": {
                        "type": "string",
                        "description": "The attribute name."
                      },
                      "inverse": {
                        "type": "boolean",
                        "description": "Set to `true` for \"is not equal\" or \"does not exist\"."
                      },
                      "operator": {
                        "type": "string",
                        "description": "The comparison operator.",
                        "enum": [
                          "eq",
                          "exists"
                        ]
                      },
                      "value": {
                        "type": "string",
                        "description": "The value to compare against. Required when `operator` is `eq`."
                      }
                    }
                  },
                  "not": {
                    "type": "object",
                    "description": "A condition or group of conditions to exclude. On this endpoint, `not` must contain an `or` of segment conditions and sit as its own item inside the `and` array. An object with both `and` and `not` keys is rejected with an \"Invalid filter spec\" error."
                  },
                  "or": {
                    "type": "array",
                    "description": "An array of conditions where at least one must be true. On this endpoint, `or` arrays can contain only segment conditions.",
                    "items": {
                      "type": "object"
                    }
                  },
                  "segment": {
                    "type": "object",
                    "description": "A segment condition.",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "The ID of a segment."
                      }
                    }
                  }
                }
              },
              "request_method": {
                "type": "string",
                "description": "The HTTP method for the webhook request.",
                "enum": [
                  "DELETE",
                  "GET",
                  "POST",
                  "PUT",
                  "PATCH"
                ]
              },
              "url": {
                "type": "string",
                "description": "The URL to send the webhook request to."
              },
              "rate_limit_email_rate": {
                "type": "integer",
                "minimum": 1,
                "description": "Maximum number of messages per time period. **NOTE:** Though this states `email_rate`, you can use this for other message channels. Only fixed rate limits are supported, not [daily ramp limits](/messaging/send/broadcasts/one-time-sends/#daily-ramp).\n"
              },
              "rate_limit_spread": {
                "type": "boolean",
                "description": "When `true`, spreads messages evenly across the time period. Otherwise, it sends as fast as possible up to the limit in each period."
              },
              "rate_limit_time_period": {
                "type": "integer",
                "enum": [
                  60,
                  3600,
                  86400
                ],
                "description": "Time period in seconds for rate limiting. Must be one of 60 (minute), 3600 (hour), or 86400 (day)."
              },
              "scheduled_at": {
                "type": "integer",
                "format": "unix timestamp",
                "description": "A Unix timestamp indicating when to send the one-time send. The time must be in the future. You cannot set both `send_now` and `scheduled_at`."
              },
              "send_now": {
                "type": "boolean",
                "description": "If `true`, the one-time send is sent immediately after creation. You cannot set both `send_now` and `scheduled_at`."
              },
              "subscription_topic_id": {
                "type": "integer",
                "description": "The one-time send audience's subscription topic ID. Required when [subscription center](/journeys/channels/subscriptions/center/#enable-sub-center) is enabled; otherwise sends to globally subscribed profiles."
              }
            },
            "required": [
              "name",
              "type",
              "recipients",
              "body",
              "request_method",
              "url"
            ]
          },
          {
            "x-scalar-ignore": true,
            "title": "Inbox message",
            "description": "For inbox messages, you must include `body_json`.",
            "allOf": [
              {
                "x-scalar-ignore": true,
                "type": "object",
                "example": {
                  "rate_limit_email_rate": 500,
                  "rate_limit_spread": true,
                  "rate_limit_time_period": 60
                },
                "description": "Optional one-time send rate limiting. If you set `rate_limit_email_rate` or `rate_limit_time_period`, set both; `rate_limit_spread` can be set alone."
              }
            ],
            "properties": {
              "type": {
                "type": "string",
                "description": "The channel type for the one-time send.",
                "enum": [
                  "inbox"
                ]
              },
              "body_json": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "JSON body content for the inbox message, as a stringified JSON object. The fields you include depend on how you [set up your inbox](/journeys/channels/in-app/inbox/setup/):\n- `topics`—array, topics your audience can filter by in their inbox\n- `type`—string, context that helps render the inbox message\n- `properties`—object, your message info like the title, body, link, and image\n- `expiration`—object; if omitted, the message expires after 30 days. Otherwise set `type` (`relative` or `absolute`), `unit` (`seconds`, `minutes`, `hours`, or `days`; relative only), and `value` (number of units, or a unix timestamp if absolute)\n",
                "example": "{\"topics\": [\"general\", \"updates\"], \"type\": \"notification\", \"expiration\": {\"type\": \"relative\", \"value\": \"30\", \"unit\": \"days\"}, \"properties\": {\"title\": \"Welcome!\", \"message\": \"Thanks for signing up\", \"link\": \"https://customer.io\"}}"
              },
              "name": {
                "type": "string",
                "maxLength": 190,
                "description": "The name of the one-time send."
              },
              "recipients": {
                "type": "object",
                "description": "Filter conditions that define the one-time send's recipients. Combine `segment` and `attribute` conditions with `and`, `or`, and `not` operators.\n\nThis endpoint enforces a strict shape:\n\n* The outermost object must be a single `and` array.\n* Every operator or condition object takes exactly **one** key: `and`, `or`, `not`, `segment`, or `attribute`. An object with two keys—like `not` alongside `and`—is rejected with an \"Invalid filter spec\" error.\n* Segment conditions must be wrapped in an `or` array, even for a single segment—and `or` arrays can contain only segment conditions.\n* To exclude segments, `not` must contain an `or` of segment conditions and sit as its own item inside the `and` array.\n* Attribute conditions sit directly in the `and` array, unwrapped. To negate an attribute condition, set `inverse: true` on the attribute itself—`not` can't contain attribute conditions.\n\nThe email example on this operation shows or-wrapped segments combined with a negated attribute; for the common \"include segment A, exclude segment B\" pattern, see the **include one segment, exclude another** request example. See [Format API-triggered broadcasts](/messaging/send/broadcasts/api-triggered-data-format/#overriding-recipients) for general operator behavior.\n",
                "properties": {
                  "and": {
                    "type": "array",
                    "description": "An array of conditions that must all be true.",
                    "items": {
                      "type": "object"
                    }
                  },
                  "attribute": {
                    "type": "object",
                    "description": "A customer attribute condition.",
                    "properties": {
                      "field": {
                        "type": "string",
                        "description": "The attribute name."
                      },
                      "inverse": {
                        "type": "boolean",
                        "description": "Set to `true` for \"is not equal\" or \"does not exist\"."
                      },
                      "operator": {
                        "type": "string",
                        "description": "The comparison operator.",
                        "enum": [
                          "eq",
                          "exists"
                        ]
                      },
                      "value": {
                        "type": "string",
                        "description": "The value to compare against. Required when `operator` is `eq`."
                      }
                    }
                  },
                  "not": {
                    "type": "object",
                    "description": "A condition or group of conditions to exclude. On this endpoint, `not` must contain an `or` of segment conditions and sit as its own item inside the `and` array. An object with both `and` and `not` keys is rejected with an \"Invalid filter spec\" error."
                  },
                  "or": {
                    "type": "array",
                    "description": "An array of conditions where at least one must be true. On this endpoint, `or` arrays can contain only segment conditions.",
                    "items": {
                      "type": "object"
                    }
                  },
                  "segment": {
                    "type": "object",
                    "description": "A segment condition.",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "The ID of a segment."
                      }
                    }
                  }
                }
              },
              "rate_limit_email_rate": {
                "type": "integer",
                "minimum": 1,
                "description": "Maximum number of messages per time period. **NOTE:** Though this states `email_rate`, you can use this for other message channels. Only fixed rate limits are supported, not [daily ramp limits](/messaging/send/broadcasts/one-time-sends/#daily-ramp).\n"
              },
              "rate_limit_spread": {
                "type": "boolean",
                "description": "When `true`, spreads messages evenly across the time period. Otherwise, it sends as fast as possible up to the limit in each period."
              },
              "rate_limit_time_period": {
                "type": "integer",
                "enum": [
                  60,
                  3600,
                  86400
                ],
                "description": "Time period in seconds for rate limiting. Must be one of 60 (minute), 3600 (hour), or 86400 (day)."
              },
              "scheduled_at": {
                "type": "integer",
                "format": "unix timestamp",
                "description": "A Unix timestamp indicating when to send the one-time send. The time must be in the future. You cannot set both `send_now` and `scheduled_at`."
              },
              "send_now": {
                "type": "boolean",
                "description": "If `true`, the one-time send is sent immediately after creation. You cannot set both `send_now` and `scheduled_at`."
              },
              "subscription_topic_id": {
                "type": "integer",
                "description": "The one-time send audience's subscription topic ID. Required when [subscription center](/journeys/channels/subscriptions/center/#enable-sub-center) is enabled; otherwise sends to globally subscribed profiles."
              }
            },
            "required": [
              "name",
              "type",
              "recipients",
              "body_json"
            ]
          }
        ],
        "discriminator": {
          "propertyName": "type"
        }
      },
      "createNewsletterCommon": {
        "x-scalar-ignore": true,
        "type": "object",
        "required": [
          "name",
          "type",
          "recipients"
        ],
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 190,
            "description": "The name of the one-time send."
          },
          "recipients": {
            "type": "object",
            "description": "Filter conditions that define the one-time send's recipients. Combine `segment` and `attribute` conditions with `and`, `or`, and `not` operators.\n\nThis endpoint enforces a strict shape:\n\n* The outermost object must be a single `and` array.\n* Every operator or condition object takes exactly **one** key: `and`, `or`, `not`, `segment`, or `attribute`. An object with two keys—like `not` alongside `and`—is rejected with an \"Invalid filter spec\" error.\n* Segment conditions must be wrapped in an `or` array, even for a single segment—and `or` arrays can contain only segment conditions.\n* To exclude segments, `not` must contain an `or` of segment conditions and sit as its own item inside the `and` array.\n* Attribute conditions sit directly in the `and` array, unwrapped. To negate an attribute condition, set `inverse: true` on the attribute itself—`not` can't contain attribute conditions.\n\nThe email example on this operation shows or-wrapped segments combined with a negated attribute; for the common \"include segment A, exclude segment B\" pattern, see the **include one segment, exclude another** request example. See [Format API-triggered broadcasts](/messaging/send/broadcasts/api-triggered-data-format/#overriding-recipients) for general operator behavior.\n",
            "properties": {
              "and": {
                "type": "array",
                "description": "An array of conditions that must all be true.",
                "items": {
                  "type": "object"
                }
              },
              "attribute": {
                "type": "object",
                "description": "A customer attribute condition.",
                "properties": {
                  "field": {
                    "type": "string",
                    "description": "The attribute name."
                  },
                  "inverse": {
                    "type": "boolean",
                    "description": "Set to `true` for \"is not equal\" or \"does not exist\"."
                  },
                  "operator": {
                    "type": "string",
                    "description": "The comparison operator.",
                    "enum": [
                      "eq",
                      "exists"
                    ]
                  },
                  "value": {
                    "type": "string",
                    "description": "The value to compare against. Required when `operator` is `eq`."
                  }
                }
              },
              "not": {
                "type": "object",
                "description": "A condition or group of conditions to exclude. On this endpoint, `not` must contain an `or` of segment conditions and sit as its own item inside the `and` array. An object with both `and` and `not` keys is rejected with an \"Invalid filter spec\" error."
              },
              "or": {
                "type": "array",
                "description": "An array of conditions where at least one must be true. On this endpoint, `or` arrays can contain only segment conditions.",
                "items": {
                  "type": "object"
                }
              },
              "segment": {
                "type": "object",
                "description": "A segment condition.",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "The ID of a segment."
                  }
                }
              }
            }
          },
          "scheduled_at": {
            "type": "integer",
            "format": "unix timestamp",
            "description": "A Unix timestamp indicating when to send the one-time send. The time must be in the future. You cannot set both `send_now` and `scheduled_at`."
          },
          "send_now": {
            "type": "boolean",
            "description": "If `true`, the one-time send is sent immediately after creation. You cannot set both `send_now` and `scheduled_at`."
          },
          "subscription_topic_id": {
            "type": "integer",
            "description": "The one-time send audience's subscription topic ID. Required when [subscription center](/journeys/channels/subscriptions/center/#enable-sub-center) is enabled; otherwise sends to globally subscribed profiles."
          }
        }
      },
      "createEmailNewsletter": {
        "x-scalar-ignore": true,
        "title": "Email",
        "description": "When you create an email, include `subject` and `body`. Set either `from` or `from_id`, but not both. If you set neither, Customer.io uses your oldest verified sending address.",
        "allOf": [
          {
            "x-scalar-ignore": true,
            "type": "object",
            "example": {
              "rate_limit_email_rate": 500,
              "rate_limit_spread": true,
              "rate_limit_time_period": 60
            },
            "description": "Optional one-time send rate limiting. If you set `rate_limit_email_rate` or `rate_limit_time_period`, set both; `rate_limit_spread` can be set alone."
          },
          {
            "type": "object",
            "example": {
              "body": "<html><body><h1>Product Updates</h1><p>Here's what we shipped this week...</p></body></html>",
              "subject": "What's new this week, {{ customer.first_name }}",
              "from": "Product Team <updates@example.com>",
              "preheader_text": "Check out our latest features and improvements",
              "type": "email",
              "name": "Weekly Product Update",
              "recipients": {
                "and": [
                  {
                    "or": [
                      {
                        "segment": {
                          "id": 42
                        }
                      },
                      {
                        "segment": {
                          "id": 99
                        }
                      }
                    ]
                  },
                  {
                    "attribute": {
                      "field": "plan",
                      "operator": "eq",
                      "value": "trial",
                      "inverse": true
                    }
                  }
                ]
              },
              "subscription_topic_id": 5
            }
          }
        ],
        "properties": {
          "body": {
            "type": "string",
            "description": "The HTML body content of the email. Use standard HTML/CSS, not syntax unique to Design Studio."
          },
          "name": {
            "type": "string",
            "maxLength": 190,
            "description": "The name of the one-time send."
          },
          "recipients": {
            "type": "object",
            "description": "Filter conditions that define the one-time send's recipients. Combine `segment` and `attribute` conditions with `and`, `or`, and `not` operators.\n\nThis endpoint enforces a strict shape:\n\n* The outermost object must be a single `and` array.\n* Every operator or condition object takes exactly **one** key: `and`, `or`, `not`, `segment`, or `attribute`. An object with two keys—like `not` alongside `and`—is rejected with an \"Invalid filter spec\" error.\n* Segment conditions must be wrapped in an `or` array, even for a single segment—and `or` arrays can contain only segment conditions.\n* To exclude segments, `not` must contain an `or` of segment conditions and sit as its own item inside the `and` array.\n* Attribute conditions sit directly in the `and` array, unwrapped. To negate an attribute condition, set `inverse: true` on the attribute itself—`not` can't contain attribute conditions.\n\nThe email example on this operation shows or-wrapped segments combined with a negated attribute; for the common \"include segment A, exclude segment B\" pattern, see the **include one segment, exclude another** request example. See [Format API-triggered broadcasts](/messaging/send/broadcasts/api-triggered-data-format/#overriding-recipients) for general operator behavior.\n",
            "properties": {
              "and": {
                "type": "array",
                "description": "An array of conditions that must all be true.",
                "items": {
                  "type": "object"
                }
              },
              "attribute": {
                "type": "object",
                "description": "A customer attribute condition.",
                "properties": {
                  "field": {
                    "type": "string",
                    "description": "The attribute name."
                  },
                  "inverse": {
                    "type": "boolean",
                    "description": "Set to `true` for \"is not equal\" or \"does not exist\"."
                  },
                  "operator": {
                    "type": "string",
                    "description": "The comparison operator.",
                    "enum": [
                      "eq",
                      "exists"
                    ]
                  },
                  "value": {
                    "type": "string",
                    "description": "The value to compare against. Required when `operator` is `eq`."
                  }
                }
              },
              "not": {
                "type": "object",
                "description": "A condition or group of conditions to exclude. On this endpoint, `not` must contain an `or` of segment conditions and sit as its own item inside the `and` array. An object with both `and` and `not` keys is rejected with an \"Invalid filter spec\" error."
              },
              "or": {
                "type": "array",
                "description": "An array of conditions where at least one must be true. On this endpoint, `or` arrays can contain only segment conditions.",
                "items": {
                  "type": "object"
                }
              },
              "segment": {
                "type": "object",
                "description": "A segment condition.",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "The ID of a segment."
                  }
                }
              }
            }
          },
          "subject": {
            "type": "string",
            "description": "The subject line of the email."
          },
          "type": {
            "type": "string",
            "description": "The channel type for the one-time send.",
            "enum": [
              "email"
            ]
          },
          "body_plain": {
            "type": "string",
            "description": "The plaintext body of the email. If provided, this overwrites the auto-generated plaintext."
          },
          "from": {
            "type": "string",
            "description": "The address to send the email from, in the format `Name <email@domain.com>`. You can set `from` or `from_id`, but not both. Use one of the `address` values from [List sender identities](/integrations/api/app/tag/sender-identities/listSenders/)."
          },
          "from_id": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The identifier of the `from` address, commonly known as the \"sender\". Use [List sender identities](/integrations/api/app/tag/sender-identities/listSenders/) to find valid IDs.",
            "example": 1
          },
          "layout_id": {
            "type": "integer",
            "description": "The ID of the [layout](/journeys/channels/email/layouts/3-layouts-and-customerio/) you want to use for the email. If you don't set one, the email uses your workspace's default layout. Find a layout's ID in its URL."
          },
          "preheader_text": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "[Also known as \"preview text\"](/journeys/channels/email/headers/custom-preheader-text/), this is the small block of text shown in an email inbox next to or underneath the subject line.\n"
          },
          "rate_limit_email_rate": {
            "type": "integer",
            "minimum": 1,
            "description": "Maximum number of messages per time period. **NOTE:** Though this states `email_rate`, you can use this for other message channels. Only fixed rate limits are supported, not [daily ramp limits](/messaging/send/broadcasts/one-time-sends/#daily-ramp).\n"
          },
          "rate_limit_spread": {
            "type": "boolean",
            "description": "When `true`, spreads messages evenly across the time period. Otherwise, it sends as fast as possible up to the limit in each period."
          },
          "rate_limit_time_period": {
            "type": "integer",
            "enum": [
              60,
              3600,
              86400
            ],
            "description": "Time period in seconds for rate limiting. Must be one of 60 (minute), 3600 (hour), or 86400 (day)."
          },
          "scheduled_at": {
            "type": "integer",
            "format": "unix timestamp",
            "description": "A Unix timestamp indicating when to send the one-time send. The time must be in the future. You cannot set both `send_now` and `scheduled_at`."
          },
          "send_now": {
            "type": "boolean",
            "description": "If `true`, the one-time send is sent immediately after creation. You cannot set both `send_now` and `scheduled_at`."
          },
          "subscription_topic_id": {
            "type": "integer",
            "description": "The one-time send audience's subscription topic ID. Required when [subscription center](/journeys/channels/subscriptions/center/#enable-sub-center) is enabled; otherwise sends to globally subscribed profiles."
          }
        },
        "required": [
          "name",
          "type",
          "recipients",
          "subject",
          "body"
        ]
      },
      "createSmsNewsletter": {
        "x-scalar-ignore": true,
        "title": "SMS",
        "description": "When creating an SMS text, you must include `body`.",
        "allOf": [
          {
            "x-scalar-ignore": true,
            "type": "object",
            "example": {
              "rate_limit_email_rate": 500,
              "rate_limit_spread": true,
              "rate_limit_time_period": 60
            },
            "description": "Optional one-time send rate limiting. If you set `rate_limit_email_rate` or `rate_limit_time_period`, set both; `rate_limit_spread` can be set alone."
          }
        ],
        "properties": {
          "body": {
            "type": "string",
            "description": "The body content of the SMS message.",
            "example": "Hi {{ customer.first_name }}, your order has shipped!"
          },
          "name": {
            "type": "string",
            "maxLength": 190,
            "description": "The name of the one-time send."
          },
          "recipients": {
            "type": "object",
            "description": "Filter conditions that define the one-time send's recipients. Combine `segment` and `attribute` conditions with `and`, `or`, and `not` operators.\n\nThis endpoint enforces a strict shape:\n\n* The outermost object must be a single `and` array.\n* Every operator or condition object takes exactly **one** key: `and`, `or`, `not`, `segment`, or `attribute`. An object with two keys—like `not` alongside `and`—is rejected with an \"Invalid filter spec\" error.\n* Segment conditions must be wrapped in an `or` array, even for a single segment—and `or` arrays can contain only segment conditions.\n* To exclude segments, `not` must contain an `or` of segment conditions and sit as its own item inside the `and` array.\n* Attribute conditions sit directly in the `and` array, unwrapped. To negate an attribute condition, set `inverse: true` on the attribute itself—`not` can't contain attribute conditions.\n\nThe email example on this operation shows or-wrapped segments combined with a negated attribute; for the common \"include segment A, exclude segment B\" pattern, see the **include one segment, exclude another** request example. See [Format API-triggered broadcasts](/messaging/send/broadcasts/api-triggered-data-format/#overriding-recipients) for general operator behavior.\n",
            "properties": {
              "and": {
                "type": "array",
                "description": "An array of conditions that must all be true.",
                "items": {
                  "type": "object"
                }
              },
              "attribute": {
                "type": "object",
                "description": "A customer attribute condition.",
                "properties": {
                  "field": {
                    "type": "string",
                    "description": "The attribute name."
                  },
                  "inverse": {
                    "type": "boolean",
                    "description": "Set to `true` for \"is not equal\" or \"does not exist\"."
                  },
                  "operator": {
                    "type": "string",
                    "description": "The comparison operator.",
                    "enum": [
                      "eq",
                      "exists"
                    ]
                  },
                  "value": {
                    "type": "string",
                    "description": "The value to compare against. Required when `operator` is `eq`."
                  }
                }
              },
              "not": {
                "type": "object",
                "description": "A condition or group of conditions to exclude. On this endpoint, `not` must contain an `or` of segment conditions and sit as its own item inside the `and` array. An object with both `and` and `not` keys is rejected with an \"Invalid filter spec\" error."
              },
              "or": {
                "type": "array",
                "description": "An array of conditions where at least one must be true. On this endpoint, `or` arrays can contain only segment conditions.",
                "items": {
                  "type": "object"
                }
              },
              "segment": {
                "type": "object",
                "description": "A segment condition.",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "The ID of a segment."
                  }
                }
              }
            }
          },
          "type": {
            "type": "string",
            "description": "The channel type for the one-time send.",
            "enum": [
              "twilio"
            ]
          },
          "rate_limit_email_rate": {
            "type": "integer",
            "minimum": 1,
            "description": "Maximum number of messages per time period. **NOTE:** Though this states `email_rate`, you can use this for other message channels. Only fixed rate limits are supported, not [daily ramp limits](/messaging/send/broadcasts/one-time-sends/#daily-ramp).\n"
          },
          "rate_limit_spread": {
            "type": "boolean",
            "description": "When `true`, spreads messages evenly across the time period. Otherwise, it sends as fast as possible up to the limit in each period."
          },
          "rate_limit_time_period": {
            "type": "integer",
            "enum": [
              60,
              3600,
              86400
            ],
            "description": "Time period in seconds for rate limiting. Must be one of 60 (minute), 3600 (hour), or 86400 (day)."
          },
          "scheduled_at": {
            "type": "integer",
            "format": "unix timestamp",
            "description": "A Unix timestamp indicating when to send the one-time send. The time must be in the future. You cannot set both `send_now` and `scheduled_at`."
          },
          "send_now": {
            "type": "boolean",
            "description": "If `true`, the one-time send is sent immediately after creation. You cannot set both `send_now` and `scheduled_at`."
          },
          "subscription_topic_id": {
            "type": "integer",
            "description": "The one-time send audience's subscription topic ID. Required when [subscription center](/journeys/channels/subscriptions/center/#enable-sub-center) is enabled; otherwise sends to globally subscribed profiles."
          }
        },
        "required": [
          "name",
          "type",
          "recipients",
          "body"
        ]
      },
      "createPushNewsletter": {
        "x-scalar-ignore": true,
        "title": "Push",
        "description": "For push notifications, you must provide at least one of `subject` or `body`.",
        "allOf": [
          {
            "x-scalar-ignore": true,
            "type": "object",
            "example": {
              "rate_limit_email_rate": 500,
              "rate_limit_spread": true,
              "rate_limit_time_period": 60
            },
            "description": "Optional one-time send rate limiting. If you set `rate_limit_email_rate` or `rate_limit_time_period`, set both; `rate_limit_spread` can be set alone."
          }
        ],
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 190,
            "description": "The name of the one-time send."
          },
          "recipients": {
            "type": "object",
            "description": "Filter conditions that define the one-time send's recipients. Combine `segment` and `attribute` conditions with `and`, `or`, and `not` operators.\n\nThis endpoint enforces a strict shape:\n\n* The outermost object must be a single `and` array.\n* Every operator or condition object takes exactly **one** key: `and`, `or`, `not`, `segment`, or `attribute`. An object with two keys—like `not` alongside `and`—is rejected with an \"Invalid filter spec\" error.\n* Segment conditions must be wrapped in an `or` array, even for a single segment—and `or` arrays can contain only segment conditions.\n* To exclude segments, `not` must contain an `or` of segment conditions and sit as its own item inside the `and` array.\n* Attribute conditions sit directly in the `and` array, unwrapped. To negate an attribute condition, set `inverse: true` on the attribute itself—`not` can't contain attribute conditions.\n\nThe email example on this operation shows or-wrapped segments combined with a negated attribute; for the common \"include segment A, exclude segment B\" pattern, see the **include one segment, exclude another** request example. See [Format API-triggered broadcasts](/messaging/send/broadcasts/api-triggered-data-format/#overriding-recipients) for general operator behavior.\n",
            "properties": {
              "and": {
                "type": "array",
                "description": "An array of conditions that must all be true.",
                "items": {
                  "type": "object"
                }
              },
              "attribute": {
                "type": "object",
                "description": "A customer attribute condition.",
                "properties": {
                  "field": {
                    "type": "string",
                    "description": "The attribute name."
                  },
                  "inverse": {
                    "type": "boolean",
                    "description": "Set to `true` for \"is not equal\" or \"does not exist\"."
                  },
                  "operator": {
                    "type": "string",
                    "description": "The comparison operator.",
                    "enum": [
                      "eq",
                      "exists"
                    ]
                  },
                  "value": {
                    "type": "string",
                    "description": "The value to compare against. Required when `operator` is `eq`."
                  }
                }
              },
              "not": {
                "type": "object",
                "description": "A condition or group of conditions to exclude. On this endpoint, `not` must contain an `or` of segment conditions and sit as its own item inside the `and` array. An object with both `and` and `not` keys is rejected with an \"Invalid filter spec\" error."
              },
              "or": {
                "type": "array",
                "description": "An array of conditions where at least one must be true. On this endpoint, `or` arrays can contain only segment conditions.",
                "items": {
                  "type": "object"
                }
              },
              "segment": {
                "type": "object",
                "description": "A segment condition.",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "The ID of a segment."
                  }
                }
              }
            }
          },
          "type": {
            "type": "string",
            "description": "The channel type for the one-time send.",
            "enum": [
              "push"
            ]
          },
          "body": {
            "type": "string",
            "description": "The body content of the push notification. You must provide `subject`, `body`, or both.",
            "example": "Get 30% off everything. Tap to shop now."
          },
          "rate_limit_email_rate": {
            "type": "integer",
            "minimum": 1,
            "description": "Maximum number of messages per time period. **NOTE:** Though this states `email_rate`, you can use this for other message channels. Only fixed rate limits are supported, not [daily ramp limits](/messaging/send/broadcasts/one-time-sends/#daily-ramp).\n"
          },
          "rate_limit_spread": {
            "type": "boolean",
            "description": "When `true`, spreads messages evenly across the time period. Otherwise, it sends as fast as possible up to the limit in each period."
          },
          "rate_limit_time_period": {
            "type": "integer",
            "enum": [
              60,
              3600,
              86400
            ],
            "description": "Time period in seconds for rate limiting. Must be one of 60 (minute), 3600 (hour), or 86400 (day)."
          },
          "scheduled_at": {
            "type": "integer",
            "format": "unix timestamp",
            "description": "A Unix timestamp indicating when to send the one-time send. The time must be in the future. You cannot set both `send_now` and `scheduled_at`."
          },
          "send_now": {
            "type": "boolean",
            "description": "If `true`, the one-time send is sent immediately after creation. You cannot set both `send_now` and `scheduled_at`."
          },
          "subject": {
            "type": "string",
            "description": "The title of the push notification. You must provide `subject`, `body`, or both.",
            "example": "24-hour flash sale!"
          },
          "subscription_topic_id": {
            "type": "integer",
            "description": "The one-time send audience's subscription topic ID. Required when [subscription center](/journeys/channels/subscriptions/center/#enable-sub-center) is enabled; otherwise sends to globally subscribed profiles."
          }
        },
        "required": [
          "name",
          "type",
          "recipients"
        ]
      },
      "createInAppNewsletter": {
        "x-scalar-ignore": true,
        "title": "In-App",
        "description": "For in-app messages, you must include `body_json`.",
        "allOf": [
          {
            "x-scalar-ignore": true,
            "type": "object",
            "example": {
              "rate_limit_email_rate": 500,
              "rate_limit_spread": true,
              "rate_limit_time_period": 60
            },
            "description": "Optional one-time send rate limiting. If you set `rate_limit_email_rate` or `rate_limit_time_period`, set both; `rate_limit_spread` can be set alone."
          }
        ],
        "properties": {
          "body_json": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "JSON body content for the in-app message, as a stringified JSON object—a JSON string, not a nested object. It supports these fields:\n- `message_id`—string, an identifier for the message\n- `carta_content`—string, the message content markup from our in-app editor\n- `display`—object; `mode` (`modal`, `overlay`, `inline`, or `tooltip`) and `value` (the position for modals: `top`, `center`, or `bottom`; the position ID for inline messages). Tooltips take a `tooltip_target` CSS selector instead of `value`\n- `priority`—integer, delivery order for queued messages: `1` (low), `5` (medium), or `10` (high)\n- `expiration`—object; if omitted, the message expires after 30 days (60 maximum). Set `type` (`relative` or `absolute`), `unit`, and `value`\n- `persistent`—boolean, keep the message visible across pages and sessions until your audience dismisses it\n- `attributes`—object, custom key-value string pairs delivered with the message\n- `route_rules` and `excluded_route_rules`—objects keyed by platform (`web`, `ios`, or `android`), each holding an array of [page rules](/messaging/channels/in-app/send-in-app-message/#page-rule) with an `operator` (`contains` or `equals`), a `value` (`*` is a wildcard), and an `order` (integer). You can only set page rules when you create a message, and platforms you don't set rules for won't show the message\n",
            "example": "{\"message_id\":\"welcome\",\"display\":{\"mode\":\"modal\",\"value\":\"center\"},\"carta_content\":\"<x-base><x-message>Hello {{customer.first_name}}!</x-message></x-base>\",\"route_rules\":{\"web\":[{\"operator\":\"contains\",\"value\":\"/dashboard\",\"order\":0}]},\"excluded_route_rules\":{\"web\":[{\"operator\":\"equals\",\"value\":\"/admin\",\"order\":0}]}}"
          },
          "name": {
            "type": "string",
            "maxLength": 190,
            "description": "The name of the one-time send."
          },
          "recipients": {
            "type": "object",
            "description": "Filter conditions that define the one-time send's recipients. Combine `segment` and `attribute` conditions with `and`, `or`, and `not` operators.\n\nThis endpoint enforces a strict shape:\n\n* The outermost object must be a single `and` array.\n* Every operator or condition object takes exactly **one** key: `and`, `or`, `not`, `segment`, or `attribute`. An object with two keys—like `not` alongside `and`—is rejected with an \"Invalid filter spec\" error.\n* Segment conditions must be wrapped in an `or` array, even for a single segment—and `or` arrays can contain only segment conditions.\n* To exclude segments, `not` must contain an `or` of segment conditions and sit as its own item inside the `and` array.\n* Attribute conditions sit directly in the `and` array, unwrapped. To negate an attribute condition, set `inverse: true` on the attribute itself—`not` can't contain attribute conditions.\n\nThe email example on this operation shows or-wrapped segments combined with a negated attribute; for the common \"include segment A, exclude segment B\" pattern, see the **include one segment, exclude another** request example. See [Format API-triggered broadcasts](/messaging/send/broadcasts/api-triggered-data-format/#overriding-recipients) for general operator behavior.\n",
            "properties": {
              "and": {
                "type": "array",
                "description": "An array of conditions that must all be true.",
                "items": {
                  "type": "object"
                }
              },
              "attribute": {
                "type": "object",
                "description": "A customer attribute condition.",
                "properties": {
                  "field": {
                    "type": "string",
                    "description": "The attribute name."
                  },
                  "inverse": {
                    "type": "boolean",
                    "description": "Set to `true` for \"is not equal\" or \"does not exist\"."
                  },
                  "operator": {
                    "type": "string",
                    "description": "The comparison operator.",
                    "enum": [
                      "eq",
                      "exists"
                    ]
                  },
                  "value": {
                    "type": "string",
                    "description": "The value to compare against. Required when `operator` is `eq`."
                  }
                }
              },
              "not": {
                "type": "object",
                "description": "A condition or group of conditions to exclude. On this endpoint, `not` must contain an `or` of segment conditions and sit as its own item inside the `and` array. An object with both `and` and `not` keys is rejected with an \"Invalid filter spec\" error."
              },
              "or": {
                "type": "array",
                "description": "An array of conditions where at least one must be true. On this endpoint, `or` arrays can contain only segment conditions.",
                "items": {
                  "type": "object"
                }
              },
              "segment": {
                "type": "object",
                "description": "A segment condition.",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "The ID of a segment."
                  }
                }
              }
            }
          },
          "type": {
            "type": "string",
            "description": "The channel type for the one-time send.",
            "enum": [
              "in_app"
            ]
          },
          "rate_limit_email_rate": {
            "type": "integer",
            "minimum": 1,
            "description": "Maximum number of messages per time period. **NOTE:** Though this states `email_rate`, you can use this for other message channels. Only fixed rate limits are supported, not [daily ramp limits](/messaging/send/broadcasts/one-time-sends/#daily-ramp).\n"
          },
          "rate_limit_spread": {
            "type": "boolean",
            "description": "When `true`, spreads messages evenly across the time period. Otherwise, it sends as fast as possible up to the limit in each period."
          },
          "rate_limit_time_period": {
            "type": "integer",
            "enum": [
              60,
              3600,
              86400
            ],
            "description": "Time period in seconds for rate limiting. Must be one of 60 (minute), 3600 (hour), or 86400 (day)."
          },
          "scheduled_at": {
            "type": "integer",
            "format": "unix timestamp",
            "description": "A Unix timestamp indicating when to send the one-time send. The time must be in the future. You cannot set both `send_now` and `scheduled_at`."
          },
          "send_now": {
            "type": "boolean",
            "description": "If `true`, the one-time send is sent immediately after creation. You cannot set both `send_now` and `scheduled_at`."
          },
          "subscription_topic_id": {
            "type": "integer",
            "description": "The one-time send audience's subscription topic ID. Required when [subscription center](/journeys/channels/subscriptions/center/#enable-sub-center) is enabled; otherwise sends to globally subscribed profiles."
          }
        },
        "required": [
          "name",
          "type",
          "recipients",
          "body_json"
        ]
      },
      "inAppBodyJson": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "JSON body content for the in-app message, as a stringified JSON object—a JSON string, not a nested object. It supports these fields:\n- `message_id`—string, an identifier for the message\n- `carta_content`—string, the message content markup from our in-app editor\n- `display`—object; `mode` (`modal`, `overlay`, `inline`, or `tooltip`) and `value` (the position for modals: `top`, `center`, or `bottom`; the position ID for inline messages). Tooltips take a `tooltip_target` CSS selector instead of `value`\n- `priority`—integer, delivery order for queued messages: `1` (low), `5` (medium), or `10` (high)\n- `expiration`—object; if omitted, the message expires after 30 days (60 maximum). Set `type` (`relative` or `absolute`), `unit`, and `value`\n- `persistent`—boolean, keep the message visible across pages and sessions until your audience dismisses it\n- `attributes`—object, custom key-value string pairs delivered with the message\n- `route_rules` and `excluded_route_rules`—objects keyed by platform (`web`, `ios`, or `android`), each holding an array of [page rules](/messaging/channels/in-app/send-in-app-message/#page-rule) with an `operator` (`contains` or `equals`), a `value` (`*` is a wildcard), and an `order` (integer). You can only set page rules when you create a message, and platforms you don't set rules for won't show the message\n",
        "example": "{\"message_id\":\"welcome\",\"display\":{\"mode\":\"modal\",\"value\":\"center\"},\"carta_content\":\"<x-base><x-message>Hello {{customer.first_name}}!</x-message></x-base>\",\"route_rules\":{\"web\":[{\"operator\":\"contains\",\"value\":\"/dashboard\",\"order\":0}]},\"excluded_route_rules\":{\"web\":[{\"operator\":\"equals\",\"value\":\"/admin\",\"order\":0}]}}"
      },
      "inboxBodyJson": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "JSON body content for the inbox message, as a stringified JSON object. The fields you include depend on how you [set up your inbox](/journeys/channels/in-app/inbox/setup/):\n- `topics`—array, topics your audience can filter by in their inbox\n- `type`—string, context that helps render the inbox message\n- `properties`—object, your message info like the title, body, link, and image\n- `expiration`—object; if omitted, the message expires after 30 days. Otherwise set `type` (`relative` or `absolute`), `unit` (`seconds`, `minutes`, `hours`, or `days`; relative only), and `value` (number of units, or a unix timestamp if absolute)\n",
        "example": "{\"topics\": [\"general\", \"updates\"], \"type\": \"notification\", \"expiration\": {\"type\": \"relative\", \"value\": \"30\", \"unit\": \"days\"}, \"properties\": {\"title\": \"Welcome!\", \"message\": \"Thanks for signing up\", \"link\": \"https://customer.io\"}}"
      },
      "createInboxNewsletter": {
        "x-scalar-ignore": true,
        "title": "Inbox message",
        "description": "For inbox messages, you must include `body_json`.",
        "allOf": [
          {
            "x-scalar-ignore": true,
            "type": "object",
            "example": {
              "rate_limit_email_rate": 500,
              "rate_limit_spread": true,
              "rate_limit_time_period": 60
            },
            "description": "Optional one-time send rate limiting. If you set `rate_limit_email_rate` or `rate_limit_time_period`, set both; `rate_limit_spread` can be set alone."
          }
        ],
        "properties": {
          "body_json": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "JSON body content for the inbox message, as a stringified JSON object. The fields you include depend on how you [set up your inbox](/journeys/channels/in-app/inbox/setup/):\n- `topics`—array, topics your audience can filter by in their inbox\n- `type`—string, context that helps render the inbox message\n- `properties`—object, your message info like the title, body, link, and image\n- `expiration`—object; if omitted, the message expires after 30 days. Otherwise set `type` (`relative` or `absolute`), `unit` (`seconds`, `minutes`, `hours`, or `days`; relative only), and `value` (number of units, or a unix timestamp if absolute)\n",
            "example": "{\"topics\": [\"general\", \"updates\"], \"type\": \"notification\", \"expiration\": {\"type\": \"relative\", \"value\": \"30\", \"unit\": \"days\"}, \"properties\": {\"title\": \"Welcome!\", \"message\": \"Thanks for signing up\", \"link\": \"https://customer.io\"}}"
          },
          "name": {
            "type": "string",
            "maxLength": 190,
            "description": "The name of the one-time send."
          },
          "recipients": {
            "type": "object",
            "description": "Filter conditions that define the one-time send's recipients. Combine `segment` and `attribute` conditions with `and`, `or`, and `not` operators.\n\nThis endpoint enforces a strict shape:\n\n* The outermost object must be a single `and` array.\n* Every operator or condition object takes exactly **one** key: `and`, `or`, `not`, `segment`, or `attribute`. An object with two keys—like `not` alongside `and`—is rejected with an \"Invalid filter spec\" error.\n* Segment conditions must be wrapped in an `or` array, even for a single segment—and `or` arrays can contain only segment conditions.\n* To exclude segments, `not` must contain an `or` of segment conditions and sit as its own item inside the `and` array.\n* Attribute conditions sit directly in the `and` array, unwrapped. To negate an attribute condition, set `inverse: true` on the attribute itself—`not` can't contain attribute conditions.\n\nThe email example on this operation shows or-wrapped segments combined with a negated attribute; for the common \"include segment A, exclude segment B\" pattern, see the **include one segment, exclude another** request example. See [Format API-triggered broadcasts](/messaging/send/broadcasts/api-triggered-data-format/#overriding-recipients) for general operator behavior.\n",
            "properties": {
              "and": {
                "type": "array",
                "description": "An array of conditions that must all be true.",
                "items": {
                  "type": "object"
                }
              },
              "attribute": {
                "type": "object",
                "description": "A customer attribute condition.",
                "properties": {
                  "field": {
                    "type": "string",
                    "description": "The attribute name."
                  },
                  "inverse": {
                    "type": "boolean",
                    "description": "Set to `true` for \"is not equal\" or \"does not exist\"."
                  },
                  "operator": {
                    "type": "string",
                    "description": "The comparison operator.",
                    "enum": [
                      "eq",
                      "exists"
                    ]
                  },
                  "value": {
                    "type": "string",
                    "description": "The value to compare against. Required when `operator` is `eq`."
                  }
                }
              },
              "not": {
                "type": "object",
                "description": "A condition or group of conditions to exclude. On this endpoint, `not` must contain an `or` of segment conditions and sit as its own item inside the `and` array. An object with both `and` and `not` keys is rejected with an \"Invalid filter spec\" error."
              },
              "or": {
                "type": "array",
                "description": "An array of conditions where at least one must be true. On this endpoint, `or` arrays can contain only segment conditions.",
                "items": {
                  "type": "object"
                }
              },
              "segment": {
                "type": "object",
                "description": "A segment condition.",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "The ID of a segment."
                  }
                }
              }
            }
          },
          "type": {
            "type": "string",
            "description": "The channel type for the one-time send.",
            "enum": [
              "inbox"
            ]
          },
          "rate_limit_email_rate": {
            "type": "integer",
            "minimum": 1,
            "description": "Maximum number of messages per time period. **NOTE:** Though this states `email_rate`, you can use this for other message channels. Only fixed rate limits are supported, not [daily ramp limits](/messaging/send/broadcasts/one-time-sends/#daily-ramp).\n"
          },
          "rate_limit_spread": {
            "type": "boolean",
            "description": "When `true`, spreads messages evenly across the time period. Otherwise, it sends as fast as possible up to the limit in each period."
          },
          "rate_limit_time_period": {
            "type": "integer",
            "enum": [
              60,
              3600,
              86400
            ],
            "description": "Time period in seconds for rate limiting. Must be one of 60 (minute), 3600 (hour), or 86400 (day)."
          },
          "scheduled_at": {
            "type": "integer",
            "format": "unix timestamp",
            "description": "A Unix timestamp indicating when to send the one-time send. The time must be in the future. You cannot set both `send_now` and `scheduled_at`."
          },
          "send_now": {
            "type": "boolean",
            "description": "If `true`, the one-time send is sent immediately after creation. You cannot set both `send_now` and `scheduled_at`."
          },
          "subscription_topic_id": {
            "type": "integer",
            "description": "The one-time send audience's subscription topic ID. Required when [subscription center](/journeys/channels/subscriptions/center/#enable-sub-center) is enabled; otherwise sends to globally subscribed profiles."
          }
        },
        "required": [
          "name",
          "type",
          "recipients",
          "body_json"
        ]
      },
      "createWebhookNewsletter": {
        "x-scalar-ignore": true,
        "title": "Webhook",
        "description": "For webhooks, you must include `body`, `request_method`, and `url`.",
        "allOf": [
          {
            "x-scalar-ignore": true,
            "type": "object",
            "example": {
              "rate_limit_email_rate": 500,
              "rate_limit_spread": true,
              "rate_limit_time_period": 60
            },
            "description": "Optional one-time send rate limiting. If you set `rate_limit_email_rate` or `rate_limit_time_period`, set both; `rate_limit_spread` can be set alone."
          }
        ],
        "properties": {
          "body": {
            "type": "string",
            "description": "The body content of the webhook request.",
            "example": "{\"channel\":\"#marketing\",\"text\":\"One-time send sent to {{ customer.email }}\"}"
          },
          "name": {
            "type": "string",
            "maxLength": 190,
            "description": "The name of the one-time send."
          },
          "recipients": {
            "type": "object",
            "description": "Filter conditions that define the one-time send's recipients. Combine `segment` and `attribute` conditions with `and`, `or`, and `not` operators.\n\nThis endpoint enforces a strict shape:\n\n* The outermost object must be a single `and` array.\n* Every operator or condition object takes exactly **one** key: `and`, `or`, `not`, `segment`, or `attribute`. An object with two keys—like `not` alongside `and`—is rejected with an \"Invalid filter spec\" error.\n* Segment conditions must be wrapped in an `or` array, even for a single segment—and `or` arrays can contain only segment conditions.\n* To exclude segments, `not` must contain an `or` of segment conditions and sit as its own item inside the `and` array.\n* Attribute conditions sit directly in the `and` array, unwrapped. To negate an attribute condition, set `inverse: true` on the attribute itself—`not` can't contain attribute conditions.\n\nThe email example on this operation shows or-wrapped segments combined with a negated attribute; for the common \"include segment A, exclude segment B\" pattern, see the **include one segment, exclude another** request example. See [Format API-triggered broadcasts](/messaging/send/broadcasts/api-triggered-data-format/#overriding-recipients) for general operator behavior.\n",
            "properties": {
              "and": {
                "type": "array",
                "description": "An array of conditions that must all be true.",
                "items": {
                  "type": "object"
                }
              },
              "attribute": {
                "type": "object",
                "description": "A customer attribute condition.",
                "properties": {
                  "field": {
                    "type": "string",
                    "description": "The attribute name."
                  },
                  "inverse": {
                    "type": "boolean",
                    "description": "Set to `true` for \"is not equal\" or \"does not exist\"."
                  },
                  "operator": {
                    "type": "string",
                    "description": "The comparison operator.",
                    "enum": [
                      "eq",
                      "exists"
                    ]
                  },
                  "value": {
                    "type": "string",
                    "description": "The value to compare against. Required when `operator` is `eq`."
                  }
                }
              },
              "not": {
                "type": "object",
                "description": "A condition or group of conditions to exclude. On this endpoint, `not` must contain an `or` of segment conditions and sit as its own item inside the `and` array. An object with both `and` and `not` keys is rejected with an \"Invalid filter spec\" error."
              },
              "or": {
                "type": "array",
                "description": "An array of conditions where at least one must be true. On this endpoint, `or` arrays can contain only segment conditions.",
                "items": {
                  "type": "object"
                }
              },
              "segment": {
                "type": "object",
                "description": "A segment condition.",
                "properties": {
                  "id": {
                    "type": "integer",
                    "description": "The ID of a segment."
                  }
                }
              }
            }
          },
          "request_method": {
            "type": "string",
            "description": "The HTTP method for the webhook request.",
            "enum": [
              "DELETE",
              "GET",
              "POST",
              "PUT",
              "PATCH"
            ]
          },
          "type": {
            "type": "string",
            "description": "The channel type for the one-time send.",
            "enum": [
              "webhook"
            ]
          },
          "url": {
            "type": "string",
            "description": "The URL to send the webhook request to."
          },
          "rate_limit_email_rate": {
            "type": "integer",
            "minimum": 1,
            "description": "Maximum number of messages per time period. **NOTE:** Though this states `email_rate`, you can use this for other message channels. Only fixed rate limits are supported, not [daily ramp limits](/messaging/send/broadcasts/one-time-sends/#daily-ramp).\n"
          },
          "rate_limit_spread": {
            "type": "boolean",
            "description": "When `true`, spreads messages evenly across the time period. Otherwise, it sends as fast as possible up to the limit in each period."
          },
          "rate_limit_time_period": {
            "type": "integer",
            "enum": [
              60,
              3600,
              86400
            ],
            "description": "Time period in seconds for rate limiting. Must be one of 60 (minute), 3600 (hour), or 86400 (day)."
          },
          "scheduled_at": {
            "type": "integer",
            "format": "unix timestamp",
            "description": "A Unix timestamp indicating when to send the one-time send. The time must be in the future. You cannot set both `send_now` and `scheduled_at`."
          },
          "send_now": {
            "type": "boolean",
            "description": "If `true`, the one-time send is sent immediately after creation. You cannot set both `send_now` and `scheduled_at`."
          },
          "subscription_topic_id": {
            "type": "integer",
            "description": "The one-time send audience's subscription topic ID. Required when [subscription center](/journeys/channels/subscriptions/center/#enable-sub-center) is enabled; otherwise sends to globally subscribed profiles."
          }
        },
        "required": [
          "name",
          "type",
          "recipients",
          "body",
          "request_method",
          "url"
        ]
      },
      "createLanguageVariantRequest": {
        "x-scalar-ignore": true,
        "description": "Add a language variant to a one-time send. The payload the endpoint accepts depends on the parent one-time send's channel type.",
        "oneOf": [
          {
            "x-scalar-ignore": true,
            "title": "Email",
            "description": "Add a language variant to an email one-time send. Requires `language`, `subject`, and `body`.",
            "properties": {
              "body": {
                "type": "string",
                "description": "The HTML body content for the variant.",
                "example": "<html><body><h1>¡Hola!</h1></body></html>"
              },
              "language": {
                "type": "string",
                "description": "The [language tag](/journeys/channels/localization/attribute/#supported-languages) for the new variant, e.g. `es`, `fr`, `de`.",
                "example": "es"
              },
              "subject": {
                "type": "string",
                "description": "The subject line for the variant.",
                "example": "¡Hola, {{ customer.name }}!"
              },
              "body_amp": {
                "type": "string",
                "description": "The AMP HTML body content for the variant."
              },
              "body_plain": {
                "type": "string",
                "description": "The plaintext body content for the variant."
              },
              "preheader_text": {
                "type": "string",
                "description": "The preheader text for the email variant.",
                "example": "Mira nuestras últimas novedades"
              }
            },
            "required": [
              "language",
              "subject",
              "body"
            ]
          },
          {
            "x-scalar-ignore": true,
            "title": "SMS",
            "description": "Add a language variant to an SMS one-time send. Requires `language` and `body`.",
            "properties": {
              "body": {
                "type": "string",
                "description": "The body content of the SMS message.",
                "example": "¡Hola {{ customer.first_name }}! Tu pedido ha sido enviado."
              },
              "language": {
                "type": "string",
                "description": "The [language tag](/journeys/channels/localization/attribute/#supported-languages) for the new variant, e.g. `es`, `fr`, `de`.",
                "example": "es"
              }
            },
            "required": [
              "language",
              "body"
            ]
          },
          {
            "x-scalar-ignore": true,
            "title": "Push",
            "description": "Add a language variant to a push notification one-time send. Requires `language` and at least one of `subject` or `body`.",
            "properties": {
              "language": {
                "type": "string",
                "description": "The [language tag](/journeys/channels/localization/attribute/#supported-languages) for the new variant, e.g. `es`, `fr`, `de`.",
                "example": "es"
              },
              "body": {
                "type": "string",
                "description": "The body content of the push notification.",
                "example": "Obtén 30% de descuento en todo."
              },
              "subject": {
                "type": "string",
                "description": "The title of the push notification.",
                "example": "¡Oferta por tiempo limitado!"
              }
            },
            "required": [
              "language"
            ]
          },
          {
            "x-scalar-ignore": true,
            "title": "Webhook",
            "description": "Add a language variant to a webhook one-time send. Requires `language` and `body`.",
            "properties": {
              "body": {
                "type": "string",
                "description": "The body content of the webhook request.",
                "example": "{\"channel\":\"#marketing\",\"text\":\"Boletín enviado a {{ customer.email }}\"}"
              },
              "language": {
                "type": "string",
                "description": "The [language tag](/journeys/channels/localization/attribute/#supported-languages) for the new variant, e.g. `es`, `fr`, `de`.",
                "example": "es"
              }
            },
            "required": [
              "language",
              "body"
            ]
          },
          {
            "x-scalar-ignore": true,
            "title": "Inbox message",
            "description": "Add a language variant to an inbox message one-time send. Requires `language` and `body_json`.",
            "properties": {
              "body_json": {
                "type": "string",
                "description": "JSON body content for the inbox message variant. Learn more about [message settings](/journeys/channels/in-app/inbox/send-inbox/) in our docs.",
                "example": "{\"topics\": [\"general\", \"updates\"], \"type\": \"notification\", \"expiration\": {\"type\": \"relative\", \"value\": \"30\", \"unit\": \"days\"}, \"properties\": {\"title\": \"Welcome!\", \"message\": \"Thanks for signing up\", \"link\": \"https://customer.io\"}}"
              },
              "language": {
                "type": "string",
                "description": "The [language tag](/journeys/channels/localization/attribute/#supported-languages) for the new variant, e.g. `es`, `fr`, `de`.",
                "example": "es"
              }
            },
            "required": [
              "language",
              "body_json"
            ]
          }
        ]
      },
      "createLanguageVariantCommon": {
        "x-scalar-ignore": true,
        "type": "object",
        "required": [
          "language"
        ],
        "properties": {
          "language": {
            "type": "string",
            "description": "The [language tag](/journeys/channels/localization/attribute/#supported-languages) for the new variant, e.g. `es`, `fr`, `de`.",
            "example": "es"
          }
        }
      },
      "createEmailLanguageVariant": {
        "x-scalar-ignore": true,
        "title": "Email",
        "description": "Add a language variant to an email one-time send. Requires `language`, `subject`, and `body`.",
        "properties": {
          "body": {
            "type": "string",
            "description": "The HTML body content for the variant.",
            "example": "<html><body><h1>¡Hola!</h1></body></html>"
          },
          "language": {
            "type": "string",
            "description": "The [language tag](/journeys/channels/localization/attribute/#supported-languages) for the new variant, e.g. `es`, `fr`, `de`.",
            "example": "es"
          },
          "subject": {
            "type": "string",
            "description": "The subject line for the variant.",
            "example": "¡Hola, {{ customer.name }}!"
          },
          "body_amp": {
            "type": "string",
            "description": "The AMP HTML body content for the variant."
          },
          "body_plain": {
            "type": "string",
            "description": "The plaintext body content for the variant."
          },
          "preheader_text": {
            "type": "string",
            "description": "The preheader text for the email variant.",
            "example": "Mira nuestras últimas novedades"
          }
        },
        "required": [
          "language",
          "subject",
          "body"
        ]
      },
      "createSmsLanguageVariant": {
        "x-scalar-ignore": true,
        "title": "SMS",
        "description": "Add a language variant to an SMS one-time send. Requires `language` and `body`.",
        "properties": {
          "body": {
            "type": "string",
            "description": "The body content of the SMS message.",
            "example": "¡Hola {{ customer.first_name }}! Tu pedido ha sido enviado."
          },
          "language": {
            "type": "string",
            "description": "The [language tag](/journeys/channels/localization/attribute/#supported-languages) for the new variant, e.g. `es`, `fr`, `de`.",
            "example": "es"
          }
        },
        "required": [
          "language",
          "body"
        ]
      },
      "createPushLanguageVariant": {
        "x-scalar-ignore": true,
        "title": "Push",
        "description": "Add a language variant to a push notification one-time send. Requires `language` and at least one of `subject` or `body`.",
        "properties": {
          "language": {
            "type": "string",
            "description": "The [language tag](/journeys/channels/localization/attribute/#supported-languages) for the new variant, e.g. `es`, `fr`, `de`.",
            "example": "es"
          },
          "body": {
            "type": "string",
            "description": "The body content of the push notification.",
            "example": "Obtén 30% de descuento en todo."
          },
          "subject": {
            "type": "string",
            "description": "The title of the push notification.",
            "example": "¡Oferta por tiempo limitado!"
          }
        },
        "required": [
          "language"
        ]
      },
      "createInAppLanguageVariant": {
        "x-scalar-ignore": true,
        "title": "In-App",
        "description": "Add a language variant to an in-app message one-time send. Requires `language` and `body_json`.",
        "properties": {
          "body_json": {
            "type": "string",
            "description": "JSON body content for the in-app message variant, as a stringified JSON object. Takes the same fields as the parent message's `body_json`.",
            "example": "{\"message_id\":\"welcome\",\"carta_content\":\"<x-base><x-message>¡Hola!</x-message></x-base>\"}"
          },
          "language": {
            "type": "string",
            "description": "The [language tag](/journeys/channels/localization/attribute/#supported-languages) for the new variant, e.g. `es`, `fr`, `de`.",
            "example": "es"
          }
        },
        "required": [
          "language",
          "body_json"
        ]
      },
      "createInboxLanguageVariant": {
        "x-scalar-ignore": true,
        "title": "Inbox message",
        "description": "Add a language variant to an inbox message one-time send. Requires `language` and `body_json`.",
        "properties": {
          "body_json": {
            "type": "string",
            "description": "JSON body content for the inbox message variant. Learn more about [message settings](/journeys/channels/in-app/inbox/send-inbox/) in our docs.",
            "example": "{\"topics\": [\"general\", \"updates\"], \"type\": \"notification\", \"expiration\": {\"type\": \"relative\", \"value\": \"30\", \"unit\": \"days\"}, \"properties\": {\"title\": \"Welcome!\", \"message\": \"Thanks for signing up\", \"link\": \"https://customer.io\"}}"
          },
          "language": {
            "type": "string",
            "description": "The [language tag](/journeys/channels/localization/attribute/#supported-languages) for the new variant, e.g. `es`, `fr`, `de`.",
            "example": "es"
          }
        },
        "required": [
          "language",
          "body_json"
        ]
      },
      "createWebhookLanguageVariant": {
        "x-scalar-ignore": true,
        "title": "Webhook",
        "description": "Add a language variant to a webhook one-time send. Requires `language` and `body`.",
        "properties": {
          "body": {
            "type": "string",
            "description": "The body content of the webhook request.",
            "example": "{\"channel\":\"#marketing\",\"text\":\"Boletín enviado a {{ customer.email }}\"}"
          },
          "language": {
            "type": "string",
            "description": "The [language tag](/journeys/channels/localization/attribute/#supported-languages) for the new variant, e.g. `es`, `fr`, `de`.",
            "example": "es"
          }
        },
        "required": [
          "language",
          "body"
        ]
      },
      "newsletterRateLimitOptions": {
        "x-scalar-ignore": true,
        "type": "object",
        "example": {
          "rate_limit_email_rate": 500,
          "rate_limit_spread": true,
          "rate_limit_time_period": 60
        },
        "description": "Optional one-time send rate limiting. If you set `rate_limit_email_rate` or `rate_limit_time_period`, set both; `rate_limit_spread` can be set alone.",
        "properties": {
          "rate_limit_email_rate": {
            "type": "integer",
            "minimum": 1,
            "description": "Maximum number of messages per time period. **NOTE:** Though this states `email_rate`, you can use this for other message channels. Only fixed rate limits are supported, not [daily ramp limits](/messaging/send/broadcasts/one-time-sends/#daily-ramp).\n"
          },
          "rate_limit_spread": {
            "type": "boolean",
            "description": "When `true`, spreads messages evenly across the time period. Otherwise, it sends as fast as possible up to the limit in each period."
          },
          "rate_limit_time_period": {
            "type": "integer",
            "enum": [
              60,
              3600,
              86400
            ],
            "description": "Time period in seconds for rate limiting. Must be one of 60 (minute), 3600 (hour), or 86400 (day)."
          }
        }
      },
      "newsletterScheduleRequest": {
        "x-scalar-ignore": true,
        "type": "object",
        "example": {
          "scheduled_at": 1719849600,
          "rate_limit_email_rate": 500,
          "rate_limit_spread": true,
          "rate_limit_time_period": 60,
          "timezone": "America/New_York",
          "tz_match_enabled": false
        },
        "allOf": [
          {
            "x-scalar-ignore": true,
            "type": "object",
            "example": {
              "rate_limit_email_rate": 500,
              "rate_limit_spread": true,
              "rate_limit_time_period": 60
            },
            "description": "Optional one-time send rate limiting. If you set `rate_limit_email_rate` or `rate_limit_time_period`, set both; `rate_limit_spread` can be set alone."
          }
        ],
        "properties": {
          "scheduled_at": {
            "type": "integer",
            "format": "unix timestamp",
            "description": "Unix timestamp for the send. Use `0` to deschedule. When greater than `0`, the time must be in the future and you must send `timezone` so the UI displays the time correctly.\n"
          },
          "rate_limit_email_rate": {
            "type": "integer",
            "minimum": 1,
            "description": "Maximum number of messages per time period. **NOTE:** Though this states `email_rate`, you can use this for other message channels. Only fixed rate limits are supported, not [daily ramp limits](/messaging/send/broadcasts/one-time-sends/#daily-ramp).\n"
          },
          "rate_limit_spread": {
            "type": "boolean",
            "description": "When `true`, spreads messages evenly across the time period. Otherwise, it sends as fast as possible up to the limit in each period."
          },
          "rate_limit_time_period": {
            "type": "integer",
            "enum": [
              60,
              3600,
              86400
            ],
            "description": "Time period in seconds for rate limiting. Must be one of 60 (minute), 3600 (hour), or 86400 (day)."
          },
          "timezone": {
            "type": "string",
            "description": "[IANA timezone name](/journeys/send/timezones/example-timezones/#region-format) (for example, `America/New_York`). Required when `scheduled_at` is greater than `0`. Not required when descheduling (`scheduled_at` is `0`).\n"
          },
          "tz_match_enabled": {
            "type": "boolean",
            "description": "When `true`, sends at the same local time in each recipient's timezone. If it's set to `true` and `rate_limit_time_period` is provided, then the period can't be greater than `3600` (1 hour)."
          }
        },
        "required": [
          "scheduled_at"
        ]
      },
      "newsletterObject": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "content_ids": {
            "type": "array",
            "description": "A list of message variants in a one-time send, where a variant is a translation or A/B test.",
            "items": {
              "type": "integer"
            }
          },
          "created": {
            "x-scalar-ignore": true,
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date time when the referenced ID was created.",
            "example": 1552341937,
            "readOnly": true
          },
          "deduplicate_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "readOnly": true,
            "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
            "example": "15:1492548073"
          },
          "id": {
            "x-scalar-ignore": true,
            "description": "The identifier for a one-time send.",
            "type": "integer",
            "example": 10
          },
          "name": {
            "type": "string",
            "description": "The name of the one-time send. Must be 190 characters or less.",
            "readOnly": true
          },
          "recipient_segment_ids": {
            "description": "If the recipient conditions included segments, this returns a list of those segment ids.",
            "type": "array",
            "items": {
              "type": "integer"
            }
          },
          "sent_at": {
            "type": "integer",
            "format": "unix timestamp",
            "description": "The last time the one-time send was sent."
          },
          "subscription_topic_id": {
            "type": "integer",
            "description": "If you enabled a [subscription center](/journeys/channels/subscriptions/center/) on your workspace, this returns the id of the subscription preference you set."
          },
          "tags": {
            "type": "array",
            "description": "An array of tags associated with the one-time send.",
            "items": {
              "type": "string"
            }
          },
          "type": {
            "x-scalar-ignore": true,
            "description": "Channel type for a one-time send or one-time send content variant.",
            "type": "string",
            "enum": [
              "email",
              "webhook",
              "twilio",
              "push",
              "in_app",
              "inbox"
            ],
            "readOnly": true,
            "example": "email"
          },
          "updated": {
            "x-scalar-ignore": true,
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date time when the referenced ID was last updated.",
            "example": 1552341937,
            "readOnly": true
          }
        },
        "example": {
          "content_ids": [
            45
          ],
          "created": 1481653919,
          "deduplicate_id": "128275:1484870424",
          "id": 128275,
          "name": "Weekly Product Update",
          "recipient_segment_ids": [
            42,
            99
          ],
          "sent_at": 1481653929,
          "subscription_topic_id": 5,
          "tags": [
            "Product Updates"
          ],
          "type": "email",
          "updated": 1481653929
        }
      },
      "customer_events": {
        "x-scalar-ignore": true,
        "description": "Describes the customer events reported from Customer.io to a webhook.",
        "type": "object",
        "properties": {
          "customer_subscribed": {
            "type": "boolean",
            "description": "A person's `unsubscribed` attribute was explicitly set to `false`. Set to true to report `subscribed` events."
          },
          "customer_subscription_preferences_changed": {
            "type": "boolean",
            "description": "A person's subscription preferences changed. [Learn more about the subscription center](/journeys/channels/subscriptions/center/)."
          },
          "customer_unsubscribed": {
            "type": "boolean",
            "description": "A person's `unsubscribed` attribute was explicitly set to `true`. Set to true to report `unsubscribed` events."
          }
        }
      },
      "email_events": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "Describes the email events reported from Customer.io to a webhook.",
        "properties": {
          "email_attempted": {
            "type": "boolean",
            "description": "Reports when a message cannot be sent to the delivery provider and will retry. Set to true to report this event type."
          },
          "email_bounced": {
            "type": "boolean",
            "description": "Reports when the delivery provider is unable to deliver a message. Set to true to report this event type."
          },
          "email_clicked": {
            "type": "boolean",
            "description": "Reports when a person clicks a tracked link in a message. Set to true to report this event type."
          },
          "email_converted": {
            "type": "boolean",
            "description": "Reports a conversion. Set to true to report this event type."
          },
          "email_deferred": {
            "type": "boolean",
            "description": "Reports when the delivery provider couldn't send a message and will retry. Set to true to report this event type."
          },
          "email_delivered": {
            "type": "boolean",
            "description": "Reports when the delivery provider reports that a message is delivered to an inbox. Set to true to report this event type."
          },
          "email_drafted": {
            "type": "boolean",
            "description": "Reports when a message draft is created. Set to true to report this event type."
          },
          "email_dropped": {
            "type": "boolean",
            "description": "Reports when a message isn't sent because the recipient is suppressed. Set to true to report this event type."
          },
          "email_failed": {
            "type": "boolean",
            "description": "Reports when an email couldn't be sent to the delivery provider. Set to true to report this event type."
          },
          "email_opened": {
            "type": "boolean",
            "description": "Reports when a recipient opens a message. Set to true to report this event type."
          },
          "email_sent": {
            "type": "boolean",
            "description": "Reports when a message is sent from Customer.io to the delivery provider. Set to true to report this event type."
          },
          "email_spammed": {
            "type": "boolean",
            "description": "Reports a recipient marks a message as spam. Set to true to report this even type."
          },
          "email_unsubscribed": {
            "type": "boolean",
            "description": "Reports when a person unsubscribes through a particular email. Set to true to report this event type."
          }
        }
      },
      "push_events": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "Describes the push events reported from Customer.io to a webhook.",
        "properties": {
          "push_attempted": {
            "type": "boolean",
            "description": "Reports when a push notification could not be sent to the delivery provider will retry. Set to true to report this event type."
          },
          "push_bounced": {
            "type": "boolean",
            "description": "Reports when the delivery provider is unable to deliver a message. Set to true to report this event type."
          },
          "push_clicked": {
            "type": "boolean",
            "description": "Reports when a person clicks a tracked link in a message. Set to true to report this event type."
          },
          "push_converted": {
            "type": "boolean",
            "description": "Reports a conversion. Set to true to report this event type."
          },
          "push_delivered": {
            "type": "boolean",
            "description": "An app reports that the recipient's device received a message. Set to true to report this event type."
          },
          "push_drafted": {
            "type": "boolean",
            "description": "Reports when a message draft is created. Set to true to report this event type."
          },
          "push_dropped": {
            "type": "boolean",
            "description": "Reports when a message isn't sent because the recipient is suppressed. Set to true to report this event type."
          },
          "push_failed": {
            "type": "boolean",
            "description": "Reports when a message couldn't be sent to the delivery provider. Set to true to report this event type."
          },
          "push_opened": {
            "type": "boolean",
            "description": "The app on a recipient's device reports that the recipient opened the message. Set to true to report this event type."
          },
          "push_sent": {
            "type": "boolean",
            "description": "Reports when a message is sent from Customer.io to the delivery provider. Set to true to report this event type."
          }
        }
      },
      "sms_events": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "Describes the SMS events reported from Customer.io to a webhook.",
        "properties": {
          "sms_attempted": {
            "type": "boolean",
            "description": "Reports when a push notification could not be sent to the delivery provider will retry. Set to true to report this event type."
          },
          "sms_bounced": {
            "type": "boolean",
            "description": "Reports when the delivery provider is unable to deliver a message to the recipient. Set to true to report this event type."
          },
          "sms_clicked": {
            "type": "boolean",
            "description": "Reports when a person clicks a tracked link in a message. Set to true to report this event type."
          },
          "sms_converted": {
            "type": "boolean",
            "description": "Reports when a person matches conversion criteria attributed to a a message. Set to true to report this event type."
          },
          "sms_delivered": {
            "type": "boolean",
            "description": "The delivery provider reports that the message is delivered. Set to true to report this event type."
          },
          "sms_drafted": {
            "type": "boolean",
            "description": "Reports when a message draft is created. Set to true to report this event type."
          },
          "sms_failed": {
            "type": "boolean",
            "description": "Reports when a message couldn't be sent to the delivery provider. Set to true to report this event type."
          },
          "sms_sent": {
            "type": "boolean",
            "description": "Reports when a message is sent from Customer.io to the delivery provider. Set to true to report this event type."
          }
        }
      },
      "slack_events": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "Describes the slack events reported from Customer.io to a webhook.",
        "properties": {
          "slack_attempted": {
            "type": "boolean",
            "description": "Reports when a message could not be sent to the delivery provider will retry. Set to true to report this event type."
          },
          "slack_clicked": {
            "type": "boolean",
            "description": "Reports when a person clicks a tracked link in a message. Set to true to report this event type."
          },
          "slack_converted": {
            "type": "boolean",
            "description": "Reports when a person matches conversion criteria attributed to a a message. Set to true to report this event type."
          },
          "slack_drafted": {
            "type": "boolean",
            "description": "Reports when a message draft is created. Set to true to report this event type."
          },
          "slack_failed": {
            "type": "boolean",
            "description": "Reports when a message couldn't be sent to the delivery provider. Set to true to report this event type."
          },
          "slack_sent": {
            "type": "boolean",
            "description": "Reports when a message is sent from Customer.io to the delivery provider. Set to true to report this event type."
          }
        }
      },
      "webhook_events": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "Describes the webhook events reported from Customer.io to a webhook.",
        "properties": {
          "webhook_attempted": {
            "type": "boolean",
            "description": "Reports when a webhook could not be sent and will retry. Set to true to report this event type."
          },
          "webhook_clicked": {
            "type": "boolean",
            "description": "Reports when a tracked link in a webhook payload is opened. Set to true to report this event type."
          },
          "webhook_drafted": {
            "type": "boolean",
            "description": "A webhook draft is created. Set to true to report this event type."
          },
          "webhook_failed": {
            "type": "boolean",
            "description": "Reports when a webhook couldn't be sent to the webhook URL. Set to true to report this event type."
          },
          "webhook_sent": {
            "type": "boolean",
            "description": "Reports when a webhook is sent from Customer.io to the webhook URL. Set to true to report this event type."
          }
        }
      },
      "body_content": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "Message content in reporting webhooks when Body Content is enabled and the metric is `sent`. Email content includes headers; push and in-app content is stringified payload."
      },
      "reportingWebhook": {
        "x-scalar-ignore": true,
        "type": "object",
        "required": [
          "name",
          "endpoint",
          "events"
        ],
        "properties": {
          "endpoint": {
            "type": "string",
            "format": "url",
            "description": "The webhook URL.",
            "example": "https://example.com/webhook"
          },
          "events": {
            "description": "Specifies the types of events you want to report to your webhook. See our [reporting webhooks reference](/integrations/api/webhooks/) for more information about event types and the information they return.",
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "string",
              "enum": [
                "customer_subscribed",
                "customer_unsubscribed",
                "customer_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",
                "in_app_drafted",
                "in_app_attempted",
                "in_app_sent",
                "in_app_opened",
                "in_app_clicked",
                "in_app_converted",
                "in_app_failed",
                "in_app_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_dropped",
                "sms_failed",
                "sms_undeliverable",
                "sms_replied",
                "whatsapp_drafted",
                "whatsapp_attempted",
                "whatsapp_sent",
                "whatsapp_delivered",
                "whatsapp_opened",
                "whatsapp_clicked",
                "whatsapp_converted",
                "whatsapp_bounced",
                "whatsapp_dropped",
                "whatsapp_failed",
                "whatsapp_undeliverable",
                "whatsapp_replied",
                "webhook_drafted",
                "webhook_attempted",
                "webhook_sent",
                "webhook_clicked",
                "webhook_converted",
                "webhook_failed",
                "webhook_undeliverable"
              ]
            },
            "example": [
              "email_failed",
              "webhook_failed"
            ]
          },
          "name": {
            "type": "string",
            "description": "The name of your webhook.",
            "example": "my cool webhook"
          },
          "disabled": {
            "type": "boolean",
            "description": "Set to `true` to quit sending events to the webhook URL. Set to `false` to enable the webhook.",
            "example": false
          },
          "full_resolution": {
            "type": "boolean",
            "description": "Set to `false` to send unique open and click events to the webhook. Set to `true` to send all events.",
            "default": false,
            "example": true
          },
          "id": {
            "type": "integer",
            "description": "The identifier for the webhook.",
            "readOnly": true,
            "example": 4
          },
          "type": {
            "type": "string",
            "description": "The type of webhook—`webhook` for a standard reporting webhook or `js` for a JavaScript webhook.",
            "enum": [
              "webhook",
              "js"
            ],
            "readOnly": true,
            "example": "webhook"
          },
          "with_content": {
            "type": "boolean",
            "description": "Set to `true` to include the message `body` in `_sent` events.",
            "example": false
          }
        }
      },
      "url": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The URL of a webhook or action.",
        "example": "https://example.com/webhook"
      },
      "request_method": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The method used in conjunction with a webhook `url`.",
        "enum": [
          "GET",
          "POST",
          "PUT",
          "DELETE",
          "PATCH"
        ],
        "example": "POST"
      },
      "forgotten": {
        "x-scalar-ignore": true,
        "type": "boolean",
        "description": "If true, Customer.io does not retain the message content.",
        "example": false
      },
      "archivedMessageObject": {
        "x-scalar-ignore": true,
        "description": "An archived message, including a complete message body.\n",
        "type": "object",
        "properties": {
          "bcc": {
            "x-scalar-ignore": true,
            "readOnly": true,
            "description": "The blind-copy address(es) for this action.",
            "type": "string"
          },
          "body": {
            "type": "string",
            "description": "The body of the variant. You cannot modify the body if you created it with our drag-and-drop editor.",
            "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>"
          },
          "cc": {
            "x-scalar-ignore": true,
            "readOnly": true,
            "description": "The carbon-copy address(es) for this action.",
            "type": "string"
          },
          "fake_bcc": {
            "x-scalar-ignore": true,
            "readOnly": true,
            "type": "boolean",
            "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"
          },
          "forgotten": {
            "x-scalar-ignore": true,
            "type": "boolean",
            "description": "If true, Customer.io does not retain the message content.",
            "example": false
          },
          "from": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The address that the message is from, relevant if the action `type` is `email`.",
            "readOnly": true,
            "example": "sentFrom@example.com"
          },
          "headers": {
            "x-scalar-ignore": true,
            "description": "A JSON string containing header objects with `name` and `value`. Names and values must be strings, with no non-ASCII characters or spaces. You can't overwrite reserved headers.",
            "type": "string",
            "format": "json",
            "example": "[{\"name\":\"X-Mailgun-Tag\",\"value\":\"my-cool-tag\"},{\"name\":\"X-Custom-Header\",\"value\":\"custom-value\"}]"
          },
          "id": {
            "x-scalar-ignore": true,
            "description": "The identifier for a delivery—the instance of a message intended for an individual recipient.",
            "type": "string",
            "readOnly": true,
            "example": "dgOq6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek="
          },
          "preheader_text": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "[Also known as \"preview text\"](/journeys/channels/email/headers/custom-preheader-text/), this is the small block of text shown in an email inbox next to or underneath the subject line.\n"
          },
          "recipient": {
            "description": "The recipient address for an action.",
            "type": "string",
            "example": "person@example.com"
          },
          "reply_to": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The address that receives replies for the message, if applicable.",
            "readOnly": true,
            "example": "replyto@example.com"
          },
          "request_method": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The method used in conjunction with a webhook `url`.",
            "enum": [
              "GET",
              "POST",
              "PUT",
              "DELETE",
              "PATCH"
            ],
            "example": "POST"
          },
          "subject": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The subject line for an `email` action.",
            "example": "Did you get that thing I sent you?"
          },
          "url": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The URL of a webhook or action.",
            "example": "https://example.com/webhook"
          }
        }
      },
      "commonTriggerProps": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "description": "Contains information you want to use to populate your broadcast.",
            "additionalProperties": {
              "x-additionalPropertiesName": "Broadcast liquid data",
              "description": "Insert key-values that you want to reference in your message here."
            },
            "example": {
              "headline": "Roadrunner spotted in Albuquerque!",
              "date": 1511315635,
              "text": "We received reports of a roadrunner in your immediate area! Head to your dashboard to view more information!"
            }
          },
          "email_add_duplicates": {
            "type": "boolean",
            "default": false,
            "description": "an email address associated with more than one profile id is an error."
          },
          "email_ignore_missing": {
            "type": "boolean",
            "default": false,
            "description": "If false, a missing email causes the broadcast to error and fail. If true, the broadcast will skip over any people in your audience who don't have emails, and continue sending to the rest of your audience."
          },
          "id_ignore_missing": {
            "type": "boolean",
            "default": false,
            "description": "If false, a missing customer ID causes the broadcast to error and fail. If true, the broadcast will skip over any people in your audience who don't have IDs, and continue sending to the rest of your audience."
          }
        }
      },
      "campaignRequest": {
        "x-scalar-ignore": true,
        "oneOf": [
          {
            "title": "Default audience",
            "description": "Send your broadcast to the default set of recipients defined in the UI.",
            "properties": {
              "data": {
                "type": "object",
                "description": "Contains information you want to use to populate your broadcast.",
                "additionalProperties": {
                  "x-additionalPropertiesName": "Broadcast liquid data",
                  "description": "Insert key-values that you want to reference in your message here."
                },
                "example": {
                  "headline": "Roadrunner spotted in Albuquerque!",
                  "date": 1511315635,
                  "text": "We received reports of a roadrunner in your immediate area! Head to your dashboard to view more information!"
                }
              },
              "email_add_duplicates": {
                "type": "boolean",
                "default": false,
                "description": "an email address associated with more than one profile id is an error."
              },
              "email_ignore_missing": {
                "type": "boolean",
                "default": false,
                "description": "If false, a missing email causes the broadcast to error and fail. If true, the broadcast will skip over any people in your audience who don't have emails, and continue sending to the rest of your audience."
              },
              "id_ignore_missing": {
                "type": "boolean",
                "default": false,
                "description": "If false, a missing customer ID causes the broadcast to error and fail. If true, the broadcast will skip over any people in your audience who don't have IDs, and continue sending to the rest of your audience."
              }
            }
          },
          {
            "title": "Custom recipients",
            "description": "Send your broadcast to a group of people defined by a set of filters.",
            "example": {
              "recipients": {
                "and": [
                  {
                    "segment": {
                      "id": 3
                    }
                  },
                  {
                    "or": [
                      {
                        "attribute": {
                          "field": "interest",
                          "operator": "eq",
                          "value": "roadrunners"
                        }
                      },
                      {
                        "attribute": {
                          "field": "state",
                          "operator": "eq",
                          "value": "NM"
                        }
                      },
                      {
                        "not": {
                          "attribute": {
                            "field": "species",
                            "operator": "eq",
                            "value": "roadrunners"
                          }
                        }
                      }
                    ]
                  }
                ]
              },
              "data": {
                "headline": "Roadrunner spotted in Albuquerque!",
                "date": 1511315635,
                "text": "We received reports of a roadrunner in your immediate area! Head to your dashboard to view more information!"
              }
            },
            "properties": {
              "recipients": {
                "x-scalar-ignore": true,
                "title": "Audience Filter",
                "description": "Use `and`, `or`, and `not` to combine segment and attribute conditions. The top-level object accepts one property; nest groups for complex filters.",
                "oneOf": [
                  {
                    "x-scalar-ignore": true,
                    "title": "and",
                    "type": "object",
                    "properties": {
                      "and": {
                        "type": "array",
                        "description": "Match *all* conditions to return results.",
                        "items": {
                          "type": "object",
                          "properties": {
                            "attribute": {
                              "x-scalar-ignore": true,
                              "title": "attribute",
                              "description": "Filter your audience by attribute.",
                              "type": "object",
                              "required": [
                                "field",
                                "operator"
                              ],
                              "properties": {
                                "field": {
                                  "type": "string",
                                  "description": "The name of the attribute you want to filter against.",
                                  "example": "first_name"
                                },
                                "operator": {
                                  "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.",
                                  "enum": [
                                    "eq",
                                    "exists"
                                  ]
                                },
                                "value": {
                                  "type": "string",
                                  "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                }
                              },
                              "example": {
                                "field": "unsubscribed",
                                "operator": "eq",
                                "value": true
                              }
                            },
                            "not": {
                              "description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object.",
                              "oneOf": [
                                {
                                  "title": "and",
                                  "type": "object",
                                  "properties": {
                                    "and": {
                                      "type": "array",
                                      "description": "Match *all* conditions to return results.",
                                      "items": {
                                        "x-scalar-ignore": true,
                                        "anyOf": [
                                          {
                                            "title": "segment",
                                            "description": "Filter for people who belong to a segment.",
                                            "type": "object",
                                            "properties": {
                                              "segment": {
                                                "x-scalar-ignore": true,
                                                "title": "segment",
                                                "type": "object",
                                                "description": "Provide the `id` of a segment containing people you want to search for.",
                                                "properties": {
                                                  "id": {
                                                    "type": "integer",
                                                    "description": "The ID of the segment you want to return people from.",
                                                    "example": 4
                                                  }
                                                }
                                              }
                                            }
                                          },
                                          {
                                            "title": "audience",
                                            "type": "object",
                                            "description": "filter for people who have an attribute or an attribute value.",
                                            "properties": {
                                              "attribute": {
                                                "x-scalar-ignore": true,
                                                "title": "attribute",
                                                "description": "Filter your audience by attribute.",
                                                "type": "object",
                                                "required": [
                                                  "field",
                                                  "operator"
                                                ],
                                                "properties": {
                                                  "field": {
                                                    "type": "string",
                                                    "description": "The name of the attribute you want to filter against.",
                                                    "example": "first_name"
                                                  },
                                                  "operator": {
                                                    "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.",
                                                    "enum": [
                                                      "eq",
                                                      "exists"
                                                    ]
                                                  },
                                                  "value": {
                                                    "type": "string",
                                                    "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                                  }
                                                },
                                                "example": {
                                                  "field": "unsubscribed",
                                                  "operator": "eq",
                                                  "value": true
                                                }
                                              }
                                            }
                                          }
                                        ]
                                      }
                                    }
                                  }
                                },
                                {
                                  "title": "or",
                                  "type": "object",
                                  "properties": {
                                    "or": {
                                      "type": "array",
                                      "description": "Match *any* condition to return results.",
                                      "items": {
                                        "x-scalar-ignore": true,
                                        "anyOf": [
                                          {
                                            "title": "segment",
                                            "description": "Filter for people who belong to a segment.",
                                            "type": "object",
                                            "properties": {
                                              "segment": {
                                                "x-scalar-ignore": true,
                                                "title": "segment",
                                                "type": "object",
                                                "description": "Provide the `id` of a segment containing people you want to search for.",
                                                "properties": {
                                                  "id": {
                                                    "type": "integer",
                                                    "description": "The ID of the segment you want to return people from.",
                                                    "example": 4
                                                  }
                                                }
                                              }
                                            }
                                          },
                                          {
                                            "title": "audience",
                                            "type": "object",
                                            "description": "filter for people who have an attribute or an attribute value.",
                                            "properties": {
                                              "attribute": {
                                                "x-scalar-ignore": true,
                                                "title": "attribute",
                                                "description": "Filter your audience by attribute.",
                                                "type": "object",
                                                "required": [
                                                  "field",
                                                  "operator"
                                                ],
                                                "properties": {
                                                  "field": {
                                                    "type": "string",
                                                    "description": "The name of the attribute you want to filter against.",
                                                    "example": "first_name"
                                                  },
                                                  "operator": {
                                                    "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.",
                                                    "enum": [
                                                      "eq",
                                                      "exists"
                                                    ]
                                                  },
                                                  "value": {
                                                    "type": "string",
                                                    "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                                  }
                                                },
                                                "example": {
                                                  "field": "unsubscribed",
                                                  "operator": "eq",
                                                  "value": true
                                                }
                                              }
                                            }
                                          }
                                        ]
                                      }
                                    }
                                  }
                                },
                                {
                                  "title": "segment",
                                  "type": "object",
                                  "properties": {
                                    "segment": {
                                      "x-scalar-ignore": true,
                                      "title": "segment",
                                      "type": "object",
                                      "description": "Provide the `id` of a segment containing people you want to search for.",
                                      "properties": {
                                        "id": {
                                          "type": "integer",
                                          "description": "The ID of the segment you want to return people from.",
                                          "example": 4
                                        }
                                      }
                                    }
                                  }
                                },
                                {
                                  "title": "attribute",
                                  "type": "object",
                                  "properties": {
                                    "attribute": {
                                      "x-scalar-ignore": true,
                                      "title": "attribute",
                                      "description": "Filter your audience by attribute.",
                                      "type": "object",
                                      "required": [
                                        "field",
                                        "operator"
                                      ],
                                      "properties": {
                                        "field": {
                                          "type": "string",
                                          "description": "The name of the attribute you want to filter against.",
                                          "example": "first_name"
                                        },
                                        "operator": {
                                          "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.",
                                          "enum": [
                                            "eq",
                                            "exists"
                                          ]
                                        },
                                        "value": {
                                          "type": "string",
                                          "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                        }
                                      },
                                      "example": {
                                        "field": "unsubscribed",
                                        "operator": "eq",
                                        "value": true
                                      }
                                    }
                                  }
                                }
                              ]
                            },
                            "or": {
                              "type": "array",
                              "description": "Returns results matching *any* conditions.",
                              "items": {
                                "x-scalar-ignore": true,
                                "anyOf": [
                                  {
                                    "title": "segment",
                                    "description": "Filter for people who belong to a segment.",
                                    "type": "object",
                                    "properties": {
                                      "segment": {
                                        "x-scalar-ignore": true,
                                        "title": "segment",
                                        "type": "object",
                                        "description": "Provide the `id` of a segment containing people you want to search for.",
                                        "properties": {
                                          "id": {
                                            "type": "integer",
                                            "description": "The ID of the segment you want to return people from.",
                                            "example": 4
                                          }
                                        }
                                      }
                                    }
                                  },
                                  {
                                    "title": "audience",
                                    "type": "object",
                                    "description": "filter for people who have an attribute or an attribute value.",
                                    "properties": {
                                      "attribute": {
                                        "x-scalar-ignore": true,
                                        "title": "attribute",
                                        "description": "Filter your audience by attribute.",
                                        "type": "object",
                                        "required": [
                                          "field",
                                          "operator"
                                        ],
                                        "properties": {
                                          "field": {
                                            "type": "string",
                                            "description": "The name of the attribute you want to filter against.",
                                            "example": "first_name"
                                          },
                                          "operator": {
                                            "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.",
                                            "enum": [
                                              "eq",
                                              "exists"
                                            ]
                                          },
                                          "value": {
                                            "type": "string",
                                            "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                          }
                                        },
                                        "example": {
                                          "field": "unsubscribed",
                                          "operator": "eq",
                                          "value": true
                                        }
                                      }
                                    }
                                  }
                                ]
                              }
                            },
                            "segment": {
                              "x-scalar-ignore": true,
                              "title": "segment",
                              "type": "object",
                              "description": "Provide the `id` of a segment containing people you want to search for.",
                              "properties": {
                                "id": {
                                  "type": "integer",
                                  "description": "The ID of the segment you want to return people from.",
                                  "example": 4
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  {
                    "x-scalar-ignore": true,
                    "title": "or",
                    "type": "object",
                    "properties": {
                      "or": {
                        "type": "array",
                        "description": "Match *any* condition to return results.",
                        "items": {
                          "type": "object",
                          "properties": {
                            "and": {
                              "type": "array",
                              "description": "Returns results matching *all* conditions.",
                              "items": {
                                "x-scalar-ignore": true,
                                "anyOf": [
                                  {
                                    "title": "segment",
                                    "description": "Filter for people who belong to a segment.",
                                    "type": "object",
                                    "properties": {
                                      "segment": {
                                        "x-scalar-ignore": true,
                                        "title": "segment",
                                        "type": "object",
                                        "description": "Provide the `id` of a segment containing people you want to search for.",
                                        "properties": {
                                          "id": {
                                            "type": "integer",
                                            "description": "The ID of the segment you want to return people from.",
                                            "example": 4
                                          }
                                        }
                                      }
                                    }
                                  },
                                  {
                                    "title": "audience",
                                    "type": "object",
                                    "description": "filter for people who have an attribute or an attribute value.",
                                    "properties": {
                                      "attribute": {
                                        "x-scalar-ignore": true,
                                        "title": "attribute",
                                        "description": "Filter your audience by attribute.",
                                        "type": "object",
                                        "required": [
                                          "field",
                                          "operator"
                                        ],
                                        "properties": {
                                          "field": {
                                            "type": "string",
                                            "description": "The name of the attribute you want to filter against.",
                                            "example": "first_name"
                                          },
                                          "operator": {
                                            "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.",
                                            "enum": [
                                              "eq",
                                              "exists"
                                            ]
                                          },
                                          "value": {
                                            "type": "string",
                                            "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                          }
                                        },
                                        "example": {
                                          "field": "unsubscribed",
                                          "operator": "eq",
                                          "value": true
                                        }
                                      }
                                    }
                                  }
                                ]
                              }
                            },
                            "attribute": {
                              "x-scalar-ignore": true,
                              "title": "attribute",
                              "description": "Filter your audience by attribute.",
                              "type": "object",
                              "required": [
                                "field",
                                "operator"
                              ],
                              "properties": {
                                "field": {
                                  "type": "string",
                                  "description": "The name of the attribute you want to filter against.",
                                  "example": "first_name"
                                },
                                "operator": {
                                  "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.",
                                  "enum": [
                                    "eq",
                                    "exists"
                                  ]
                                },
                                "value": {
                                  "type": "string",
                                  "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                }
                              },
                              "example": {
                                "field": "unsubscribed",
                                "operator": "eq",
                                "value": true
                              }
                            },
                            "not": {
                              "description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object.",
                              "oneOf": [
                                {
                                  "title": "and",
                                  "type": "object",
                                  "properties": {
                                    "and": {
                                      "type": "array",
                                      "description": "Match *all* conditions to return results.",
                                      "items": {
                                        "x-scalar-ignore": true,
                                        "anyOf": [
                                          {
                                            "title": "segment",
                                            "description": "Filter for people who belong to a segment.",
                                            "type": "object",
                                            "properties": {
                                              "segment": {
                                                "x-scalar-ignore": true,
                                                "title": "segment",
                                                "type": "object",
                                                "description": "Provide the `id` of a segment containing people you want to search for.",
                                                "properties": {
                                                  "id": {
                                                    "type": "integer",
                                                    "description": "The ID of the segment you want to return people from.",
                                                    "example": 4
                                                  }
                                                }
                                              }
                                            }
                                          },
                                          {
                                            "title": "audience",
                                            "type": "object",
                                            "description": "filter for people who have an attribute or an attribute value.",
                                            "properties": {
                                              "attribute": {
                                                "x-scalar-ignore": true,
                                                "title": "attribute",
                                                "description": "Filter your audience by attribute.",
                                                "type": "object",
                                                "required": [
                                                  "field",
                                                  "operator"
                                                ],
                                                "properties": {
                                                  "field": {
                                                    "type": "string",
                                                    "description": "The name of the attribute you want to filter against.",
                                                    "example": "first_name"
                                                  },
                                                  "operator": {
                                                    "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.",
                                                    "enum": [
                                                      "eq",
                                                      "exists"
                                                    ]
                                                  },
                                                  "value": {
                                                    "type": "string",
                                                    "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                                  }
                                                },
                                                "example": {
                                                  "field": "unsubscribed",
                                                  "operator": "eq",
                                                  "value": true
                                                }
                                              }
                                            }
                                          }
                                        ]
                                      }
                                    }
                                  }
                                },
                                {
                                  "title": "or",
                                  "type": "object",
                                  "properties": {
                                    "or": {
                                      "type": "array",
                                      "description": "Match *any* condition to return results.",
                                      "items": {
                                        "x-scalar-ignore": true,
                                        "anyOf": [
                                          {
                                            "title": "segment",
                                            "description": "Filter for people who belong to a segment.",
                                            "type": "object",
                                            "properties": {
                                              "segment": {
                                                "x-scalar-ignore": true,
                                                "title": "segment",
                                                "type": "object",
                                                "description": "Provide the `id` of a segment containing people you want to search for.",
                                                "properties": {
                                                  "id": {
                                                    "type": "integer",
                                                    "description": "The ID of the segment you want to return people from.",
                                                    "example": 4
                                                  }
                                                }
                                              }
                                            }
                                          },
                                          {
                                            "title": "audience",
                                            "type": "object",
                                            "description": "filter for people who have an attribute or an attribute value.",
                                            "properties": {
                                              "attribute": {
                                                "x-scalar-ignore": true,
                                                "title": "attribute",
                                                "description": "Filter your audience by attribute.",
                                                "type": "object",
                                                "required": [
                                                  "field",
                                                  "operator"
                                                ],
                                                "properties": {
                                                  "field": {
                                                    "type": "string",
                                                    "description": "The name of the attribute you want to filter against.",
                                                    "example": "first_name"
                                                  },
                                                  "operator": {
                                                    "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.",
                                                    "enum": [
                                                      "eq",
                                                      "exists"
                                                    ]
                                                  },
                                                  "value": {
                                                    "type": "string",
                                                    "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                                  }
                                                },
                                                "example": {
                                                  "field": "unsubscribed",
                                                  "operator": "eq",
                                                  "value": true
                                                }
                                              }
                                            }
                                          }
                                        ]
                                      }
                                    }
                                  }
                                },
                                {
                                  "title": "segment",
                                  "type": "object",
                                  "properties": {
                                    "segment": {
                                      "x-scalar-ignore": true,
                                      "title": "segment",
                                      "type": "object",
                                      "description": "Provide the `id` of a segment containing people you want to search for.",
                                      "properties": {
                                        "id": {
                                          "type": "integer",
                                          "description": "The ID of the segment you want to return people from.",
                                          "example": 4
                                        }
                                      }
                                    }
                                  }
                                },
                                {
                                  "title": "attribute",
                                  "type": "object",
                                  "properties": {
                                    "attribute": {
                                      "x-scalar-ignore": true,
                                      "title": "attribute",
                                      "description": "Filter your audience by attribute.",
                                      "type": "object",
                                      "required": [
                                        "field",
                                        "operator"
                                      ],
                                      "properties": {
                                        "field": {
                                          "type": "string",
                                          "description": "The name of the attribute you want to filter against.",
                                          "example": "first_name"
                                        },
                                        "operator": {
                                          "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.",
                                          "enum": [
                                            "eq",
                                            "exists"
                                          ]
                                        },
                                        "value": {
                                          "type": "string",
                                          "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                        }
                                      },
                                      "example": {
                                        "field": "unsubscribed",
                                        "operator": "eq",
                                        "value": true
                                      }
                                    }
                                  }
                                }
                              ]
                            },
                            "segment": {
                              "x-scalar-ignore": true,
                              "title": "segment",
                              "type": "object",
                              "description": "Provide the `id` of a segment containing people you want to search for.",
                              "properties": {
                                "id": {
                                  "type": "integer",
                                  "description": "The ID of the segment you want to return people from.",
                                  "example": 4
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  {
                    "x-scalar-ignore": true,
                    "title": "not",
                    "description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object.",
                    "oneOf": [
                      {
                        "title": "and",
                        "type": "object",
                        "properties": {
                          "and": {
                            "type": "array",
                            "description": "Match *all* conditions to return results.",
                            "items": {
                              "x-scalar-ignore": true,
                              "title": "People Filter",
                              "type": "object",
                              "description": "Filter people with `and`, `or`, and `not` groups made from `segment` and `attribute` conditions.",
                              "properties": {
                                "and": {
                                  "type": "array",
                                  "description": "Returns results matching *all* conditions.",
                                  "items": {
                                    "x-scalar-ignore": true,
                                    "anyOf": [
                                      {
                                        "title": "segment",
                                        "description": "Filter for people who belong to a segment.",
                                        "type": "object",
                                        "properties": {
                                          "segment": {
                                            "x-scalar-ignore": true,
                                            "title": "segment",
                                            "type": "object",
                                            "description": "Provide the `id` of a segment containing people you want to search for.",
                                            "properties": {
                                              "id": {
                                                "type": "integer",
                                                "description": "The ID of the segment you want to return people from.",
                                                "example": 4
                                              }
                                            }
                                          }
                                        }
                                      },
                                      {
                                        "title": "audience",
                                        "type": "object",
                                        "description": "filter for people who have an attribute or an attribute value.",
                                        "properties": {
                                          "attribute": {
                                            "x-scalar-ignore": true,
                                            "title": "attribute",
                                            "description": "Filter your audience by attribute.",
                                            "type": "object",
                                            "required": [
                                              "field",
                                              "operator"
                                            ],
                                            "properties": {
                                              "field": {
                                                "type": "string",
                                                "description": "The name of the attribute you want to filter against.",
                                                "example": "first_name"
                                              },
                                              "operator": {
                                                "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.",
                                                "enum": [
                                                  "eq",
                                                  "exists"
                                                ]
                                              },
                                              "value": {
                                                "type": "string",
                                                "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                              }
                                            },
                                            "example": {
                                              "field": "unsubscribed",
                                              "operator": "eq",
                                              "value": true
                                            }
                                          }
                                        }
                                      }
                                    ]
                                  }
                                },
                                "attribute": {
                                  "x-scalar-ignore": true,
                                  "title": "attribute",
                                  "description": "Filter your audience by attribute.",
                                  "type": "object",
                                  "required": [
                                    "field",
                                    "operator"
                                  ],
                                  "properties": {
                                    "field": {
                                      "type": "string",
                                      "description": "The name of the attribute you want to filter against.",
                                      "example": "first_name"
                                    },
                                    "operator": {
                                      "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.",
                                      "enum": [
                                        "eq",
                                        "exists"
                                      ]
                                    },
                                    "value": {
                                      "type": "string",
                                      "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                    }
                                  },
                                  "example": {
                                    "field": "unsubscribed",
                                    "operator": "eq",
                                    "value": true
                                  }
                                },
                                "not": {
                                  "description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object.",
                                  "oneOf": [
                                    {
                                      "title": "and",
                                      "type": "object",
                                      "properties": {
                                        "and": {
                                          "type": "array",
                                          "description": "Match *all* conditions to return results.",
                                          "items": {
                                            "x-scalar-ignore": true,
                                            "anyOf": [
                                              {
                                                "title": "segment",
                                                "description": "Filter for people who belong to a segment.",
                                                "type": "object",
                                                "properties": {
                                                  "segment": {
                                                    "x-scalar-ignore": true,
                                                    "title": "segment",
                                                    "type": "object",
                                                    "description": "Provide the `id` of a segment containing people you want to search for.",
                                                    "properties": {
                                                      "id": {
                                                        "type": "integer",
                                                        "description": "The ID of the segment you want to return people from.",
                                                        "example": 4
                                                      }
                                                    }
                                                  }
                                                }
                                              },
                                              {
                                                "title": "audience",
                                                "type": "object",
                                                "description": "filter for people who have an attribute or an attribute value.",
                                                "properties": {
                                                  "attribute": {
                                                    "x-scalar-ignore": true,
                                                    "title": "attribute",
                                                    "description": "Filter your audience by attribute.",
                                                    "type": "object",
                                                    "required": [
                                                      "field",
                                                      "operator"
                                                    ],
                                                    "properties": {
                                                      "field": {
                                                        "type": "string",
                                                        "description": "The name of the attribute you want to filter against.",
                                                        "example": "first_name"
                                                      },
                                                      "operator": {
                                                        "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.",
                                                        "enum": [
                                                          "eq",
                                                          "exists"
                                                        ]
                                                      },
                                                      "value": {
                                                        "type": "string",
                                                        "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                                      }
                                                    },
                                                    "example": {
                                                      "field": "unsubscribed",
                                                      "operator": "eq",
                                                      "value": true
                                                    }
                                                  }
                                                }
                                              }
                                            ]
                                          }
                                        }
                                      }
                                    },
                                    {
                                      "title": "or",
                                      "type": "object",
                                      "properties": {
                                        "or": {
                                          "type": "array",
                                          "description": "Match *any* condition to return results.",
                                          "items": {
                                            "x-scalar-ignore": true,
                                            "anyOf": [
                                              {
                                                "title": "segment",
                                                "description": "Filter for people who belong to a segment.",
                                                "type": "object",
                                                "properties": {
                                                  "segment": {
                                                    "x-scalar-ignore": true,
                                                    "title": "segment",
                                                    "type": "object",
                                                    "description": "Provide the `id` of a segment containing people you want to search for.",
                                                    "properties": {
                                                      "id": {
                                                        "type": "integer",
                                                        "description": "The ID of the segment you want to return people from.",
                                                        "example": 4
                                                      }
                                                    }
                                                  }
                                                }
                                              },
                                              {
                                                "title": "audience",
                                                "type": "object",
                                                "description": "filter for people who have an attribute or an attribute value.",
                                                "properties": {
                                                  "attribute": {
                                                    "x-scalar-ignore": true,
                                                    "title": "attribute",
                                                    "description": "Filter your audience by attribute.",
                                                    "type": "object",
                                                    "required": [
                                                      "field",
                                                      "operator"
                                                    ],
                                                    "properties": {
                                                      "field": {
                                                        "type": "string",
                                                        "description": "The name of the attribute you want to filter against.",
                                                        "example": "first_name"
                                                      },
                                                      "operator": {
                                                        "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.",
                                                        "enum": [
                                                          "eq",
                                                          "exists"
                                                        ]
                                                      },
                                                      "value": {
                                                        "type": "string",
                                                        "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                                      }
                                                    },
                                                    "example": {
                                                      "field": "unsubscribed",
                                                      "operator": "eq",
                                                      "value": true
                                                    }
                                                  }
                                                }
                                              }
                                            ]
                                          }
                                        }
                                      }
                                    },
                                    {
                                      "title": "segment",
                                      "type": "object",
                                      "properties": {
                                        "segment": {
                                          "x-scalar-ignore": true,
                                          "title": "segment",
                                          "type": "object",
                                          "description": "Provide the `id` of a segment containing people you want to search for.",
                                          "properties": {
                                            "id": {
                                              "type": "integer",
                                              "description": "The ID of the segment you want to return people from.",
                                              "example": 4
                                            }
                                          }
                                        }
                                      }
                                    },
                                    {
                                      "title": "attribute",
                                      "type": "object",
                                      "properties": {
                                        "attribute": {
                                          "x-scalar-ignore": true,
                                          "title": "attribute",
                                          "description": "Filter your audience by attribute.",
                                          "type": "object",
                                          "required": [
                                            "field",
                                            "operator"
                                          ],
                                          "properties": {
                                            "field": {
                                              "type": "string",
                                              "description": "The name of the attribute you want to filter against.",
                                              "example": "first_name"
                                            },
                                            "operator": {
                                              "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.",
                                              "enum": [
                                                "eq",
                                                "exists"
                                              ]
                                            },
                                            "value": {
                                              "type": "string",
                                              "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                            }
                                          },
                                          "example": {
                                            "field": "unsubscribed",
                                            "operator": "eq",
                                            "value": true
                                          }
                                        }
                                      }
                                    }
                                  ]
                                },
                                "or": {
                                  "type": "array",
                                  "description": "Returns results matching *any* conditions.",
                                  "items": {
                                    "x-scalar-ignore": true,
                                    "anyOf": [
                                      {
                                        "title": "segment",
                                        "description": "Filter for people who belong to a segment.",
                                        "type": "object",
                                        "properties": {
                                          "segment": {
                                            "x-scalar-ignore": true,
                                            "title": "segment",
                                            "type": "object",
                                            "description": "Provide the `id` of a segment containing people you want to search for.",
                                            "properties": {
                                              "id": {
                                                "type": "integer",
                                                "description": "The ID of the segment you want to return people from.",
                                                "example": 4
                                              }
                                            }
                                          }
                                        }
                                      },
                                      {
                                        "title": "audience",
                                        "type": "object",
                                        "description": "filter for people who have an attribute or an attribute value.",
                                        "properties": {
                                          "attribute": {
                                            "x-scalar-ignore": true,
                                            "title": "attribute",
                                            "description": "Filter your audience by attribute.",
                                            "type": "object",
                                            "required": [
                                              "field",
                                              "operator"
                                            ],
                                            "properties": {
                                              "field": {
                                                "type": "string",
                                                "description": "The name of the attribute you want to filter against.",
                                                "example": "first_name"
                                              },
                                              "operator": {
                                                "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.",
                                                "enum": [
                                                  "eq",
                                                  "exists"
                                                ]
                                              },
                                              "value": {
                                                "type": "string",
                                                "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                              }
                                            },
                                            "example": {
                                              "field": "unsubscribed",
                                              "operator": "eq",
                                              "value": true
                                            }
                                          }
                                        }
                                      }
                                    ]
                                  }
                                },
                                "segment": {
                                  "x-scalar-ignore": true,
                                  "title": "segment",
                                  "type": "object",
                                  "description": "Provide the `id` of a segment containing people you want to search for.",
                                  "properties": {
                                    "id": {
                                      "type": "integer",
                                      "description": "The ID of the segment you want to return people from.",
                                      "example": 4
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      },
                      {
                        "title": "or",
                        "type": "object",
                        "properties": {
                          "or": {
                            "type": "array",
                            "description": "Match *any* condition to return results.",
                            "items": {
                              "x-scalar-ignore": true,
                              "title": "People Filter",
                              "type": "object",
                              "description": "Filter people with `and`, `or`, and `not` groups made from `segment` and `attribute` conditions.",
                              "properties": {
                                "and": {
                                  "type": "array",
                                  "description": "Returns results matching *all* conditions.",
                                  "items": {
                                    "x-scalar-ignore": true,
                                    "anyOf": [
                                      {
                                        "title": "segment",
                                        "description": "Filter for people who belong to a segment.",
                                        "type": "object",
                                        "properties": {
                                          "segment": {
                                            "x-scalar-ignore": true,
                                            "title": "segment",
                                            "type": "object",
                                            "description": "Provide the `id` of a segment containing people you want to search for.",
                                            "properties": {
                                              "id": {
                                                "type": "integer",
                                                "description": "The ID of the segment you want to return people from.",
                                                "example": 4
                                              }
                                            }
                                          }
                                        }
                                      },
                                      {
                                        "title": "audience",
                                        "type": "object",
                                        "description": "filter for people who have an attribute or an attribute value.",
                                        "properties": {
                                          "attribute": {
                                            "x-scalar-ignore": true,
                                            "title": "attribute",
                                            "description": "Filter your audience by attribute.",
                                            "type": "object",
                                            "required": [
                                              "field",
                                              "operator"
                                            ],
                                            "properties": {
                                              "field": {
                                                "type": "string",
                                                "description": "The name of the attribute you want to filter against.",
                                                "example": "first_name"
                                              },
                                              "operator": {
                                                "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.",
                                                "enum": [
                                                  "eq",
                                                  "exists"
                                                ]
                                              },
                                              "value": {
                                                "type": "string",
                                                "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                              }
                                            },
                                            "example": {
                                              "field": "unsubscribed",
                                              "operator": "eq",
                                              "value": true
                                            }
                                          }
                                        }
                                      }
                                    ]
                                  }
                                },
                                "attribute": {
                                  "x-scalar-ignore": true,
                                  "title": "attribute",
                                  "description": "Filter your audience by attribute.",
                                  "type": "object",
                                  "required": [
                                    "field",
                                    "operator"
                                  ],
                                  "properties": {
                                    "field": {
                                      "type": "string",
                                      "description": "The name of the attribute you want to filter against.",
                                      "example": "first_name"
                                    },
                                    "operator": {
                                      "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.",
                                      "enum": [
                                        "eq",
                                        "exists"
                                      ]
                                    },
                                    "value": {
                                      "type": "string",
                                      "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                    }
                                  },
                                  "example": {
                                    "field": "unsubscribed",
                                    "operator": "eq",
                                    "value": true
                                  }
                                },
                                "not": {
                                  "description": "Returns results if a condition is false. While and/or support an array of items, `not` supports a single filter object.",
                                  "oneOf": [
                                    {
                                      "title": "and",
                                      "type": "object",
                                      "properties": {
                                        "and": {
                                          "type": "array",
                                          "description": "Match *all* conditions to return results.",
                                          "items": {
                                            "x-scalar-ignore": true,
                                            "anyOf": [
                                              {
                                                "title": "segment",
                                                "description": "Filter for people who belong to a segment.",
                                                "type": "object",
                                                "properties": {
                                                  "segment": {
                                                    "x-scalar-ignore": true,
                                                    "title": "segment",
                                                    "type": "object",
                                                    "description": "Provide the `id` of a segment containing people you want to search for.",
                                                    "properties": {
                                                      "id": {
                                                        "type": "integer",
                                                        "description": "The ID of the segment you want to return people from.",
                                                        "example": 4
                                                      }
                                                    }
                                                  }
                                                }
                                              },
                                              {
                                                "title": "audience",
                                                "type": "object",
                                                "description": "filter for people who have an attribute or an attribute value.",
                                                "properties": {
                                                  "attribute": {
                                                    "x-scalar-ignore": true,
                                                    "title": "attribute",
                                                    "description": "Filter your audience by attribute.",
                                                    "type": "object",
                                                    "required": [
                                                      "field",
                                                      "operator"
                                                    ],
                                                    "properties": {
                                                      "field": {
                                                        "type": "string",
                                                        "description": "The name of the attribute you want to filter against.",
                                                        "example": "first_name"
                                                      },
                                                      "operator": {
                                                        "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.",
                                                        "enum": [
                                                          "eq",
                                                          "exists"
                                                        ]
                                                      },
                                                      "value": {
                                                        "type": "string",
                                                        "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                                      }
                                                    },
                                                    "example": {
                                                      "field": "unsubscribed",
                                                      "operator": "eq",
                                                      "value": true
                                                    }
                                                  }
                                                }
                                              }
                                            ]
                                          }
                                        }
                                      }
                                    },
                                    {
                                      "title": "or",
                                      "type": "object",
                                      "properties": {
                                        "or": {
                                          "type": "array",
                                          "description": "Match *any* condition to return results.",
                                          "items": {
                                            "x-scalar-ignore": true,
                                            "anyOf": [
                                              {
                                                "title": "segment",
                                                "description": "Filter for people who belong to a segment.",
                                                "type": "object",
                                                "properties": {
                                                  "segment": {
                                                    "x-scalar-ignore": true,
                                                    "title": "segment",
                                                    "type": "object",
                                                    "description": "Provide the `id` of a segment containing people you want to search for.",
                                                    "properties": {
                                                      "id": {
                                                        "type": "integer",
                                                        "description": "The ID of the segment you want to return people from.",
                                                        "example": 4
                                                      }
                                                    }
                                                  }
                                                }
                                              },
                                              {
                                                "title": "audience",
                                                "type": "object",
                                                "description": "filter for people who have an attribute or an attribute value.",
                                                "properties": {
                                                  "attribute": {
                                                    "x-scalar-ignore": true,
                                                    "title": "attribute",
                                                    "description": "Filter your audience by attribute.",
                                                    "type": "object",
                                                    "required": [
                                                      "field",
                                                      "operator"
                                                    ],
                                                    "properties": {
                                                      "field": {
                                                        "type": "string",
                                                        "description": "The name of the attribute you want to filter against.",
                                                        "example": "first_name"
                                                      },
                                                      "operator": {
                                                        "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.",
                                                        "enum": [
                                                          "eq",
                                                          "exists"
                                                        ]
                                                      },
                                                      "value": {
                                                        "type": "string",
                                                        "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                                      }
                                                    },
                                                    "example": {
                                                      "field": "unsubscribed",
                                                      "operator": "eq",
                                                      "value": true
                                                    }
                                                  }
                                                }
                                              }
                                            ]
                                          }
                                        }
                                      }
                                    },
                                    {
                                      "title": "segment",
                                      "type": "object",
                                      "properties": {
                                        "segment": {
                                          "x-scalar-ignore": true,
                                          "title": "segment",
                                          "type": "object",
                                          "description": "Provide the `id` of a segment containing people you want to search for.",
                                          "properties": {
                                            "id": {
                                              "type": "integer",
                                              "description": "The ID of the segment you want to return people from.",
                                              "example": 4
                                            }
                                          }
                                        }
                                      }
                                    },
                                    {
                                      "title": "attribute",
                                      "type": "object",
                                      "properties": {
                                        "attribute": {
                                          "x-scalar-ignore": true,
                                          "title": "attribute",
                                          "description": "Filter your audience by attribute.",
                                          "type": "object",
                                          "required": [
                                            "field",
                                            "operator"
                                          ],
                                          "properties": {
                                            "field": {
                                              "type": "string",
                                              "description": "The name of the attribute you want to filter against.",
                                              "example": "first_name"
                                            },
                                            "operator": {
                                              "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.",
                                              "enum": [
                                                "eq",
                                                "exists"
                                              ]
                                            },
                                            "value": {
                                              "type": "string",
                                              "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                            }
                                          },
                                          "example": {
                                            "field": "unsubscribed",
                                            "operator": "eq",
                                            "value": true
                                          }
                                        }
                                      }
                                    }
                                  ]
                                },
                                "or": {
                                  "type": "array",
                                  "description": "Returns results matching *any* conditions.",
                                  "items": {
                                    "x-scalar-ignore": true,
                                    "anyOf": [
                                      {
                                        "title": "segment",
                                        "description": "Filter for people who belong to a segment.",
                                        "type": "object",
                                        "properties": {
                                          "segment": {
                                            "x-scalar-ignore": true,
                                            "title": "segment",
                                            "type": "object",
                                            "description": "Provide the `id` of a segment containing people you want to search for.",
                                            "properties": {
                                              "id": {
                                                "type": "integer",
                                                "description": "The ID of the segment you want to return people from.",
                                                "example": 4
                                              }
                                            }
                                          }
                                        }
                                      },
                                      {
                                        "title": "audience",
                                        "type": "object",
                                        "description": "filter for people who have an attribute or an attribute value.",
                                        "properties": {
                                          "attribute": {
                                            "x-scalar-ignore": true,
                                            "title": "attribute",
                                            "description": "Filter your audience by attribute.",
                                            "type": "object",
                                            "required": [
                                              "field",
                                              "operator"
                                            ],
                                            "properties": {
                                              "field": {
                                                "type": "string",
                                                "description": "The name of the attribute you want to filter against.",
                                                "example": "first_name"
                                              },
                                              "operator": {
                                                "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.",
                                                "enum": [
                                                  "eq",
                                                  "exists"
                                                ]
                                              },
                                              "value": {
                                                "type": "string",
                                                "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                                              }
                                            },
                                            "example": {
                                              "field": "unsubscribed",
                                              "operator": "eq",
                                              "value": true
                                            }
                                          }
                                        }
                                      }
                                    ]
                                  }
                                },
                                "segment": {
                                  "x-scalar-ignore": true,
                                  "title": "segment",
                                  "type": "object",
                                  "description": "Provide the `id` of a segment containing people you want to search for.",
                                  "properties": {
                                    "id": {
                                      "type": "integer",
                                      "description": "The ID of the segment you want to return people from.",
                                      "example": 4
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      },
                      {
                        "title": "segment",
                        "type": "object",
                        "properties": {
                          "segment": {
                            "x-scalar-ignore": true,
                            "title": "segment",
                            "type": "object",
                            "description": "Provide the `id` of a segment containing people you want to search for.",
                            "properties": {
                              "id": {
                                "type": "integer",
                                "description": "The ID of the segment you want to return people from.",
                                "example": 4
                              }
                            }
                          }
                        }
                      },
                      {
                        "title": "attribute",
                        "type": "object",
                        "properties": {
                          "attribute": {
                            "x-scalar-ignore": true,
                            "title": "attribute",
                            "description": "Filter your audience by attribute.",
                            "type": "object",
                            "required": [
                              "field",
                              "operator"
                            ],
                            "properties": {
                              "field": {
                                "type": "string",
                                "description": "The name of the attribute you want to filter against.",
                                "example": "first_name"
                              },
                              "operator": {
                                "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.",
                                "enum": [
                                  "eq",
                                  "exists"
                                ]
                              },
                              "value": {
                                "type": "string",
                                "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                              }
                            },
                            "example": {
                              "field": "unsubscribed",
                              "operator": "eq",
                              "value": true
                            }
                          }
                        }
                      }
                    ]
                  },
                  {
                    "title": "segment",
                    "description": "Filter for people who belong to a segment.",
                    "type": "object",
                    "properties": {
                      "segment": {
                        "x-scalar-ignore": true,
                        "title": "segment",
                        "type": "object",
                        "description": "Provide the `id` of a segment containing people you want to search for.",
                        "properties": {
                          "id": {
                            "type": "integer",
                            "description": "The ID of the segment you want to return people from.",
                            "example": 4
                          }
                        }
                      }
                    }
                  },
                  {
                    "title": "audience",
                    "type": "object",
                    "description": "filter for people who have an attribute or an attribute value.",
                    "properties": {
                      "attribute": {
                        "x-scalar-ignore": true,
                        "title": "attribute",
                        "description": "Filter your audience by attribute.",
                        "type": "object",
                        "required": [
                          "field",
                          "operator"
                        ],
                        "properties": {
                          "field": {
                            "type": "string",
                            "description": "The name of the attribute you want to filter against.",
                            "example": "first_name"
                          },
                          "operator": {
                            "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.",
                            "enum": [
                              "eq",
                              "exists"
                            ]
                          },
                          "value": {
                            "type": "string",
                            "description": "The value you want to match for this attribute. You must include a value if you use the `eq` operator."
                          }
                        },
                        "example": {
                          "field": "unsubscribed",
                          "operator": "eq",
                          "value": true
                        }
                      }
                    }
                  }
                ]
              },
              "data": {
                "type": "object",
                "description": "Contains information you want to use to populate your broadcast.",
                "additionalProperties": {
                  "x-additionalPropertiesName": "Broadcast liquid data",
                  "description": "Insert key-values that you want to reference in your message here."
                },
                "example": {
                  "headline": "Roadrunner spotted in Albuquerque!",
                  "date": 1511315635,
                  "text": "We received reports of a roadrunner in your immediate area! Head to your dashboard to view more information!"
                }
              },
              "email_add_duplicates": {
                "type": "boolean",
                "default": false,
                "description": "an email address associated with more than one profile id is an error."
              },
              "email_ignore_missing": {
                "type": "boolean",
                "default": false,
                "description": "If false, a missing email causes the broadcast to error and fail. If true, the broadcast will skip over any people in your audience who don't have emails, and continue sending to the rest of your audience."
              },
              "id_ignore_missing": {
                "type": "boolean",
                "default": false,
                "description": "If false, a missing customer ID causes the broadcast to error and fail. If true, the broadcast will skip over any people in your audience who don't have IDs, and continue sending to the rest of your audience."
              }
            },
            "required": [
              "recipients"
            ]
          },
          {
            "title": "Emails",
            "description": "An array of emails you want to send the broadcast to. These addresses must already exist; your request cannot create a new person.",
            "properties": {
              "emails": {
                "description": "An array of email addresses you want to send the broadcast to. These addresses must already exist; your request cannot create a new person.",
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "email"
                },
                "example": [
                  "recipient1@example.com",
                  "anotherRecipient@example.com"
                ]
              },
              "data": {
                "type": "object",
                "description": "Contains information you want to use to populate your broadcast.",
                "additionalProperties": {
                  "x-additionalPropertiesName": "Broadcast liquid data",
                  "description": "Insert key-values that you want to reference in your message here."
                },
                "example": {
                  "headline": "Roadrunner spotted in Albuquerque!",
                  "date": 1511315635,
                  "text": "We received reports of a roadrunner in your immediate area! Head to your dashboard to view more information!"
                }
              },
              "email_add_duplicates": {
                "type": "boolean",
                "default": false,
                "description": "an email address associated with more than one profile id is an error."
              },
              "email_ignore_missing": {
                "type": "boolean",
                "default": false,
                "description": "If false, a missing email causes the broadcast to error and fail. If true, the broadcast will skip over any people in your audience who don't have emails, and continue sending to the rest of your audience."
              },
              "id_ignore_missing": {
                "type": "boolean",
                "default": false,
                "description": "If false, a missing customer ID causes the broadcast to error and fail. If true, the broadcast will skip over any people in your audience who don't have IDs, and continue sending to the rest of your audience."
              }
            },
            "required": [
              "emails"
            ]
          },
          {
            "title": "IDs",
            "description": "An array of customer ids that you want to send the broadcast to. These IDs must already exist; your request cannot create a new person.",
            "properties": {
              "ids": {
                "description": "An array of IDs you want to send a broadcast to. **NOTE**: If your workspace identifies people by `email`, don't use this option. Identify your audience by `emails` instead.\n",
                "type": "array",
                "maxItems": 10000,
                "items": {
                  "type": "string"
                },
                "example": [
                  "id1",
                  "id4"
                ]
              },
              "data": {
                "type": "object",
                "description": "Contains information you want to use to populate your broadcast.",
                "additionalProperties": {
                  "x-additionalPropertiesName": "Broadcast liquid data",
                  "description": "Insert key-values that you want to reference in your message here."
                },
                "example": {
                  "headline": "Roadrunner spotted in Albuquerque!",
                  "date": 1511315635,
                  "text": "We received reports of a roadrunner in your immediate area! Head to your dashboard to view more information!"
                }
              },
              "email_add_duplicates": {
                "type": "boolean",
                "default": false,
                "description": "an email address associated with more than one profile id is an error."
              },
              "email_ignore_missing": {
                "type": "boolean",
                "default": false,
                "description": "If false, a missing email causes the broadcast to error and fail. If true, the broadcast will skip over any people in your audience who don't have emails, and continue sending to the rest of your audience."
              },
              "id_ignore_missing": {
                "type": "boolean",
                "default": false,
                "description": "If false, a missing customer ID causes the broadcast to error and fail. If true, the broadcast will skip over any people in your audience who don't have IDs, and continue sending to the rest of your audience."
              }
            },
            "required": [
              "ids"
            ]
          },
          {
            "title": "User Maps",
            "description": "An array of JSON objects containing `id` or `email` keys and a `data` key. Each object represents a person you want to send the broadcast to and data you want to personalize their message with using liquid.",
            "properties": {
              "per_user_data": {
                "description": "The people you want to send a broadcast to, with custom data to personalize each message. Each person must already exist in your workspace—a broadcast trigger can't create people.",
                "type": "array",
                "maxItems": 10000,
                "items": {
                  "oneOf": [
                    {
                      "title": "ids",
                      "type": "object",
                      "required": [
                        "id"
                      ],
                      "properties": {
                        "id": {
                          "type": "string",
                          "description": "The ID of the recipient.",
                          "example": 1
                        },
                        "data": {
                          "type": "object",
                          "description": "Merge data associated with the recipient.",
                          "additionalProperties": {
                            "x-additionalPropertiesName": "Liquid merge data",
                            "description": "Insert key-values that you want to reference in your message here."
                          },
                          "example": {
                            "firstName": "Hugh",
                            "lastName": "Mann",
                            "purchase": "shoes"
                          }
                        }
                      }
                    },
                    {
                      "title": "emails",
                      "type": "object",
                      "required": [
                        "email"
                      ],
                      "properties": {
                        "email": {
                          "type": "string",
                          "description": "The email address of the recipient. This address must be unique in your workspace. If more than one person has the same `email` attribute, your request will produce an error.",
                          "example": "recipient1@example.com"
                        },
                        "data": {
                          "description": "Merge data associated with the recipient.",
                          "type": "object",
                          "additionalProperties": {
                            "x-additionalPropertiesName": "Liquid merge data",
                            "description": "Insert key-values that you want to reference in your message here."
                          },
                          "example": {
                            "firstName": "Hugh",
                            "lastName": "Mann",
                            "purchase": "shoes"
                          }
                        }
                      }
                    }
                  ]
                },
                "example": [
                  {
                    "id": "wiley_coyote",
                    "data": {
                      "voucher_code": "FESwYm"
                    }
                  },
                  {
                    "email": "road@runner.net",
                    "data": {
                      "voucher_code": "cYm6XJ"
                    }
                  }
                ]
              },
              "data": {
                "type": "object",
                "description": "Contains information you want to use to populate your broadcast.",
                "additionalProperties": {
                  "x-additionalPropertiesName": "Broadcast liquid data",
                  "description": "Insert key-values that you want to reference in your message here."
                },
                "example": {
                  "headline": "Roadrunner spotted in Albuquerque!",
                  "date": 1511315635,
                  "text": "We received reports of a roadrunner in your immediate area! Head to your dashboard to view more information!"
                }
              },
              "email_add_duplicates": {
                "type": "boolean",
                "default": false,
                "description": "an email address associated with more than one profile id is an error."
              },
              "email_ignore_missing": {
                "type": "boolean",
                "default": false,
                "description": "If false, a missing email causes the broadcast to error and fail. If true, the broadcast will skip over any people in your audience who don't have emails, and continue sending to the rest of your audience."
              },
              "id_ignore_missing": {
                "type": "boolean",
                "default": false,
                "description": "If false, a missing customer ID causes the broadcast to error and fail. If true, the broadcast will skip over any people in your audience who don't have IDs, and continue sending to the rest of your audience."
              }
            },
            "required": [
              "per_user_data"
            ]
          },
          {
            "title": "Data file URL",
            "description": "The URL of a data file with one JSON object per line, using either `id` and `data` or `email` and `data`. The people you reference must already exist in your workspace. The file may be gzip-compressed to reduce transfer size (recommended for large files); if compressed, it must use gzip and the hosting server must return a `Content-Encoding` header set to `gzip` when the file is downloaded.",
            "properties": {
              "data_file_url": {
                "description": "The URL of a JSON Lines file with one person per line, using `id` and `data` or `email` and `data`. The people you reference must already exist in your workspace. The file may be gzip-compressed to reduce transfer size (recommended for large files); if compressed, it must use gzip and the hosting server must return a `Content-Encoding` header set to `gzip` when the file is downloaded.",
                "type": "string",
                "format": "url",
                "example": "https://myFile.example.com"
              },
              "data": {
                "type": "object",
                "description": "Contains information you want to use to populate your broadcast.",
                "additionalProperties": {
                  "x-additionalPropertiesName": "Broadcast liquid data",
                  "description": "Insert key-values that you want to reference in your message here."
                },
                "example": {
                  "headline": "Roadrunner spotted in Albuquerque!",
                  "date": 1511315635,
                  "text": "We received reports of a roadrunner in your immediate area! Head to your dashboard to view more information!"
                }
              },
              "email_add_duplicates": {
                "type": "boolean",
                "default": false,
                "description": "an email address associated with more than one profile id is an error."
              },
              "email_ignore_missing": {
                "type": "boolean",
                "default": false,
                "description": "If false, a missing email causes the broadcast to error and fail. If true, the broadcast will skip over any people in your audience who don't have emails, and continue sending to the rest of your audience."
              },
              "id_ignore_missing": {
                "type": "boolean",
                "default": false,
                "description": "If false, a missing customer ID causes the broadcast to error and fail. If true, the broadcast will skip over any people in your audience who don't have IDs, and continue sending to the rest of your audience."
              }
            },
            "required": [
              "data_file_url"
            ]
          }
        ]
      },
      "customer_id": {
        "x-scalar-ignore": true,
        "type": [
          "string",
          "null"
        ],
        "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.",
        "example": "42"
      },
      "object_type_id": {
        "x-scalar-ignore": true,
        "type": "string",
        "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.",
        "example": "1"
      },
      "object_identifiers": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "identifiers": {
            "description": "The identifiers for a particular object. You can use either the `object_type_id` and `object_id` (where `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object) or the `cio_object_id`.",
            "oneOf": [
              {
                "title": "Object ID",
                "type": "object",
                "required": [
                  "object_type_id",
                  "object_id"
                ],
                "properties": {
                  "object_id": {
                    "type": "string",
                    "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                    "example": "acme"
                  },
                  "object_type_id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "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.",
                    "example": "1"
                  }
                }
              },
              {
                "title": "CIO Object ID",
                "type": "object",
                "required": [
                  "cio_object_id"
                ],
                "properties": {
                  "cio_object_id": {
                    "type": "string",
                    "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                    "example": "obb7fd050101"
                  }
                }
              }
            ]
          }
        }
      },
      "not_nullable_customer_id": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
        "example": "42"
      },
      "not_nullable_email_address": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The email address of the customer.",
        "example": "test@example.com"
      },
      "email_address": {
        "x-scalar-ignore": true,
        "type": [
          "string",
          "null"
        ],
        "description": "The email address of the customer.",
        "example": "test@example.com"
      },
      "device_id": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The identifier for a person's device—typically a device token."
      },
      "created": {
        "x-scalar-ignore": true,
        "type": "integer",
        "format": "unix timestamp",
        "description": "The date time when the referenced ID was created.",
        "example": 1552341937,
        "readOnly": true
      },
      "updated": {
        "x-scalar-ignore": true,
        "type": "integer",
        "format": "unix timestamp",
        "description": "The date time when the referenced ID was last updated.",
        "example": 1552341937,
        "readOnly": true
      },
      "segment_id": {
        "x-scalar-ignore": true,
        "type": "integer",
        "description": "The identifier for a segment; used to target a segment in requests.",
        "example": 7
      },
      "deduplicate_id": {
        "x-scalar-ignore": true,
        "type": "string",
        "readOnly": true,
        "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
        "example": "15:1492548073"
      },
      "segment_name": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The name of the segment.",
        "example": "Manual Segment 1"
      },
      "segment_description": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "A description for the segment. This can help you understand the purpose of the segment when you encounter it in other requests or in the UI.",
        "example": "My first manual segment"
      },
      "segmentResponseObject": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "created_at": {
            "x-scalar-ignore": true,
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date time when the referenced ID was created.",
            "example": 1552341937,
            "readOnly": true
          },
          "deduplicate_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "readOnly": true,
            "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
            "example": "15:1492548073"
          },
          "description": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A description for the segment. This can help you understand the purpose of the segment when you encounter it in other requests or in the UI.",
            "example": "My first manual segment"
          },
          "id": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The identifier for a segment; used to target a segment in requests.",
            "example": 7
          },
          "name": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The name of the segment.",
            "example": "Manual Segment 1"
          },
          "progress": {
            "type": [
              "integer",
              "null"
            ],
            "description": "If Customer.io has not finished processing the segment, this indicates the percentage complete. Otherwise, this key is null.",
            "example": null
          },
          "state": {
            "type": "string",
            "description": "The segment build state:\n- `events`—handling event conditions for this segment\n- `build`—handling profile attribute conditions for this segment\n- `events_queued`—waiting to start handling event conditions\n- `build_queued`—waiting to start handling profile attribute conditions\n- `finished`—the segment is finished building\n",
            "enum": [
              "events",
              "build",
              "events_queued",
              "build_queued",
              "finished"
            ]
          },
          "tags": {
            "type": [
              "array",
              "null"
            ],
            "description": "The tags assigned to the segment, if any. Tags may help you sort through your segments.",
            "items": {
              "type": "string"
            },
            "example": null
          },
          "type": {
            "type": "string",
            "description": "The type of segment.",
            "enum": [
              "dynamic",
              "manual"
            ],
            "example": "manual"
          },
          "updated_at": {
            "x-scalar-ignore": true,
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date time when the referenced ID was last updated.",
            "example": 1552341937,
            "readOnly": true
          }
        }
      },
      "broadcast_id": {
        "x-scalar-ignore": true,
        "type": "integer",
        "description": "The identifier for a broadcast.",
        "example": 2
      },
      "msg_template_ids": {
        "x-scalar-ignore": true,
        "type": "array",
        "deprecated": true,
        "description": "Indicates the message template(s) used in this broadcast.",
        "items": {
          "type": "object",
          "properties": {
            "id": {
              "type": "integer",
              "description": "The identifier for the template."
            },
            "type": {
              "type": "string",
              "description": "The type of template.",
              "enum": [
                "email",
                "webhook",
                "push",
                "sms",
                "slack"
              ]
            }
          }
        }
      },
      "broadcastTriggerObject": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "You can get triggers to know when you triggered a broadcast and whether or not it's been processed.",
        "properties": {
          "broadcast_id": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The identifier for a broadcast.",
            "example": 2
          },
          "created_at": {
            "x-scalar-ignore": true,
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date time when the referenced ID was created.",
            "example": 1552341937,
            "readOnly": true
          },
          "id": {
            "type": "integer",
            "description": "The identifier for a broadcast trigger."
          },
          "processed_at": {
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date-time when Customer.io processed the trigger."
          }
        }
      },
      "broadcastObject": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "actions": {
            "type": "array",
            "description": "A list of actions used by the broadcast.",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "The identifier for the action."
                },
                "type": {
                  "type": "string",
                  "description": "The type of action.",
                  "enum": [
                    "email",
                    "webhook",
                    "push",
                    "sms",
                    "slack"
                  ]
                }
              }
            }
          },
          "active": {
            "type": "boolean",
            "description": "If true, the broadcast is active."
          },
          "created": {
            "x-scalar-ignore": true,
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date time when the referenced ID was created.",
            "example": 1552341937,
            "readOnly": true
          },
          "deduplicate_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "readOnly": true,
            "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
            "example": "15:1492548073"
          },
          "first_started": {
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date and time when you activated the broadcast.",
            "example": 1552341937
          },
          "id": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The identifier for a broadcast.",
            "example": 2
          },
          "msg_template_ids": {
            "x-scalar-ignore": true,
            "type": "array",
            "deprecated": true,
            "description": "Indicates the message template(s) used in this broadcast.",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "The identifier for the template."
                },
                "type": {
                  "type": "string",
                  "description": "The type of template.",
                  "enum": [
                    "email",
                    "webhook",
                    "push",
                    "sms",
                    "slack"
                  ]
                }
              }
            }
          },
          "name": {
            "type": "string",
            "description": "The name of the broadcast.",
            "readOnly": true
          },
          "state": {
            "type": "string",
            "description": "The state of the broadcast.",
            "enum": [
              "running",
              "draft"
            ]
          },
          "tags": {
            "type": "array",
            "description": "An array of tags you set on this broadcast.",
            "items": {
              "type": "string"
            }
          },
          "type": {
            "type": "string",
            "description": "The type of broadcast.",
            "enum": [
              "triggered_broadcast"
            ]
          },
          "updated": {
            "x-scalar-ignore": true,
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date time when the referenced ID was last updated.",
            "example": 1552341937,
            "readOnly": true
          }
        },
        "example": {
          "actions": [
            {
              "id": 3,
              "type": "email"
            },
            {
              "id": 4
            },
            {
              "type": "webhook"
            }
          ],
          "active": true,
          "created": 1520467200,
          "deduplicate_id": "2:1520467200",
          "first_started": 1520467200,
          "id": 2,
          "name": "basic",
          "state": "running",
          "tags": "nil",
          "type": "triggered_broadcast",
          "updated": 1520467200,
          "created_by": "ExamplePerson"
        }
      },
      "sendpush": {
        "x-scalar-ignore": true,
        "example": {
          "identifiers": {
            "id": 12345
          },
          "transactional_message_id": 44,
          "message_data": {
            "password_reset_token": "abcde-12345-fghij-d888",
            "account_id": "123dj"
          },
          "title": "Did you really login from a new location?"
        },
        "properties": {
          "identifiers": {
            "description": "Identifies the person represented by your transactional message by one of, and only one of, `id`, `email`, or `cio_id`.",
            "oneOf": [
              {
                "title": "id",
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The identifier for the person represented by the transactional message. **NOTE**: If your workspace identifies people by email, use the `email` identifier instead.\n",
                    "example": 12345
                  }
                }
              },
              {
                "title": "email",
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "type": "string",
                    "description": "The identifier for the person represented by the transactional message. Use this option if your workspace identifies people by email rather than by `id`.",
                    "example": "cool.person@example.com"
                  }
                }
              },
              {
                "title": "cio_id",
                "type": "object",
                "required": [
                  "cio_id"
                ],
                "properties": {
                  "cio_id": {
                    "type": "string",
                    "description": "A unique, immutable identifier for a person, set by Customer.io when you add a person.",
                    "example": 3000001
                  }
                }
              }
            ]
          },
          "transactional_message_id": {
            "description": "The transactional message template that you want to use for your message. You can call the template by its numerical ID or by the *Trigger Name* that you assigned to the template in the UI (case insensitive).",
            "oneOf": [
              {
                "title": "ID (integer)",
                "type": "integer",
                "description": "The ID of the transactional message you want to send.",
                "example": 44
              },
              {
                "title": "Trigger Name (string)",
                "type": "string",
                "description": "The name of trigger for the transactional message you want to send; you set the trigger name in the *Configure Settings* step when setting up your message. This is case insensitive.",
                "example": "pwdreset"
              }
            ]
          },
          "auto_create": {
            "type": "boolean",
            "default": false,
            "description": "If `true` and your `transactional_message_id` doesn't match a record, Customer.io creates an empty record using that value as the *Trigger Name*. The ID must be a string. If the name already belongs to another channel, the request fails with `400`, and numeric IDs ignore this setting. See [details](/journeys/transactional-email/#auto-create-transactional-message-records)."
          },
          "custom_data": {
            "type": "object",
            "description": "Optional key/value pairs you want to attach to the push payload. Firebase only supports string values. This overrides the Custom Data from your transactional template."
          },
          "custom_device": {
            "description": "A device to perform an upsert operation at the time of send. The device will be added/updated on the profile from the Identifiers block.",
            "properties": {
              "platform": {
                "type": "string",
                "enum": [
                  "ios",
                  "android"
                ],
                "description": "The device/messaging platform."
              },
              "token": {
                "description": "The device token.",
                "type": "string"
              },
              "attributes": {
                "type": "object",
                "description": "Attributes that you can reference to segment your audience—like a person's attributes, but specific to a device. These can be either the attributes defined below or custom key-value attributes.",
                "properties": {
                  "_last_status": {
                    "type": "string",
                    "readOnly": true,
                    "description": "The delivery status of the last message sent to the device—sent, bounced, or suppressed. An empty string indicates that that the device hasn't received a push yet.",
                    "enum": [
                      "",
                      "bounced",
                      "sent",
                      "suppressed"
                    ]
                  },
                  "app_identifier": {
                    "type": "string",
                    "description": "The app that the device belongs to—the **Bundle ID / App identifier** you entered with that app's push credentials. If you have more than one app, we use this attribute to send push notifications to the right app. A device without an app identifier receives push notifications you send to your [default app](/messaging/channels/push/getting-started/#the-default-app)."
                  },
                  "app_version": {
                    "type": "string",
                    "description": "The version of your app that a customer uses. You might target app versions to let people know when they need to update, or expose them to new features when they do."
                  },
                  "cio_sdk_version": {
                    "type": "string",
                    "description": "The version of the Customer.io SDK in the app."
                  },
                  "device_locale": {
                    "type": "string",
                    "description": "The device's [IETF language code](/journeys/channels/localization/getting-started/#supported-languages), such as `en-MX` or `es-ES`."
                  },
                  "device_model": {
                    "type": "string",
                    "description": "The model of the device a person uses."
                  },
                  "device_os": {
                    "type": "string",
                    "description": "The operating system, including the version, on the device."
                  },
                  "push_enabled": {
                    "type": "string",
                    "description": "If `\"true\"`, the device is opted-in and can receive push notifications.",
                    "enum": [
                      "true",
                      "false"
                    ]
                  }
                },
                "additionalProperties": {
                  "x-additionalPropertiesName": "Custom Device Attributes",
                  "description": "Custom properties that you want to associate with the device.",
                  "type": "string"
                }
              },
              "last_used": {
                "type": "integer",
                "format": "unix timestamp",
                "description": "The `timestamp` when you last identified this device. If you don't pass a timestamp when you add or update a device, we use the time of the request itself. Our SDKs identify a device when a person launches their app."
              }
            },
            "required": [
              "token",
              "platform"
            ]
          },
          "custom_payload": {
            "type": "object",
            "description": "Optional key/value pairs you want to attach to the push payload. Firebase only supports string values. This overrides all other payload values, including the Custom Payload from your transactional template.",
            "properties": {
              "android": {
                "x-scalar-ignore": true,
                "type": "object",
                "description": "A custom push payload for Android devices.",
                "required": [
                  "message"
                ],
                "properties": {
                  "message": {
                    "type": "object",
                    "description": "The parent object for Android custom push payloads.",
                    "properties": {
                      "android": {
                        "type": "object",
                        "description": "Contains custom push options for your notification.",
                        "properties": {
                          "notification": {
                            "x-scalar-ignore": true,
                            "type": "object",
                            "description": "Properties supported specifically by Android on FCM.",
                            "properties": {
                              "body_loc_arg": {
                                "type": "string",
                                "description": "Variable string values used in place of the format specifiers in `body_loc_key` to localize the body text to the user's current localization. See Formatting and Styling for more information."
                              },
                              "body_loc_key": {
                                "type": "string",
                                "description": "String resource key used to localize the body text. See Android [String resources](https://developer.android.com/guide/topics/resources/string-resource/)."
                              },
                              "click_action": {
                                "type": "string",
                                "description": "The action that occurs when a user taps on the notification. Launches an activity with a matching intent filter when a person taps the notification."
                              },
                              "color": {
                                "type": "string",
                                "description": "The notification's icon color in `#rrggbb` format."
                              },
                              "icon": {
                                "type": "string",
                                "description": "Sets the notification icon to `myicon` for drawable resource `myicon`. If you don't send this key, FCM displays the launcher icon from your app manifest."
                              },
                              "sound": {
                                "type": "string",
                                "description": "The sound that plays when the device receives the notification. Supports `\"default\"` or the filename of a sound resource bundled in your app. Sound files must reside in `/res/raw/`."
                              },
                              "tag": {
                                "type": "string",
                                "description": "An identifier you use to replace an existing notification. If a notification with the same tag is already showing, the new one replaces it. Leave it empty to create a new notification each time."
                              },
                              "title_loc_arg": {
                                "type": "string",
                                "description": "Variable string values used in place of the format specifiers in `title_loc_key` to localize the title text to the user's current localization. See Formatting and Styling for more information."
                              },
                              "title_loc_key": {
                                "type": "string",
                                "description": "String resource key used to localize the title text. See Android [String resources](https://developer.android.com/guide/topics/resources/string-resource/)."
                              }
                            }
                          }
                        }
                      },
                      "data": {
                        "type": "object",
                        "description": "Contains key-value pairs that your app interprets.",
                        "additionalProperties": {
                          "x-additionalPropertiesName": "Attachment Names",
                          "x-doNotRender": true,
                          "type": "string"
                        }
                      },
                      "notification": {
                        "type": "object",
                        "description": "Contains the push body and title.",
                        "properties": {
                          "body": {
                            "x-scalar-ignore": true,
                            "type": "string",
                            "description": "The body of your push notification."
                          },
                          "title": {
                            "x-scalar-ignore": true,
                            "type": "string",
                            "description": "The title of your push notification."
                          }
                        }
                      }
                    }
                  }
                }
              },
              "ios": {
                "x-scalar-ignore": true,
                "description": "Your payload changes depending on whether you send to iOS devices through Google's Firebase Cloud Messaging (FCM) or Apple's Push Notification service (APNs).",
                "oneOf": [
                  {
                    "x-scalar-ignore": true,
                    "type": "object",
                    "required": [
                      "message"
                    ],
                    "properties": {
                      "message": {
                        "type": "object",
                        "description": "The base object for all FCM payloads.",
                        "required": [
                          "apns"
                        ],
                        "properties": {
                          "apns": {
                            "type": "object",
                            "required": [
                              "payload"
                            ],
                            "description": "Defines a payload for iOS devices sent through Firebase Cloud Messaging (FCM).",
                            "properties": {
                              "payload": {
                                "type": "object",
                                "description": "Contains a push payload.",
                                "properties": {
                                  "aps": {
                                    "x-scalar-ignore": true,
                                    "type": "object",
                                    "description": "A push payload intended for an iOS device.",
                                    "properties": {
                                      "alert": {
                                        "oneOf": [
                                          {
                                            "title": "Simple alert",
                                            "type": "string",
                                            "description": "A simple alert message."
                                          },
                                          {
                                            "title": "Complex alert",
                                            "type": "object",
                                            "properties": {
                                              "body": {
                                                "x-scalar-ignore": true,
                                                "type": "string",
                                                "description": "The body of your push notification."
                                              },
                                              "launch-image": {
                                                "description": "The name of the launch image file you want to display. When a user launches your app, they'll see this image or storyboard file rather than your app’s normal launch image.",
                                                "type": "string"
                                              },
                                              "loc-args": {
                                                "type": "array",
                                                "description": "An array of replacement value strings for variables in your message text. Each %@ character in the loc-key is replaced by a value from this array, in the order they appear in the message body.",
                                                "items": {
                                                  "type": "string"
                                                }
                                              },
                                              "loc-key": {
                                                "description": "The key for a localized message string in your app’s Localizable.strings file.",
                                                "type": "string"
                                              },
                                              "subtitle": {
                                                "description": "Additional information that explains the purpose of the notification.",
                                                "type": "string"
                                              },
                                              "subtitle-loc-args": {
                                                "type": "array",
                                                "description": "An array of replacement value strings for variables in your subtitle string. Each %@ character in the subtitle-loc-key is replaced by a value from this array, in the order they appear in the subtitle string.",
                                                "items": {
                                                  "type": "string"
                                                }
                                              },
                                              "subtitle-loc-key": {
                                                "description": "The key for a localized subtitle string in your app’s Localizable.strings file.",
                                                "type": "string"
                                              },
                                              "title": {
                                                "x-scalar-ignore": true,
                                                "type": "string",
                                                "description": "The title of your push notification."
                                              },
                                              "title-loc-args": {
                                                "type": "array",
                                                "description": "An array of replacement value strings for variables in your title string. Each %@ character in the title-loc-key is replaced by a value from this array, in the order they appear in the title string.",
                                                "items": {
                                                  "type": "string"
                                                }
                                              },
                                              "title-loc-key": {
                                                "description": "The key for a localized title string in your app’s Localizable.strings files.",
                                                "type": "string"
                                              }
                                            }
                                          }
                                        ]
                                      },
                                      "badge": {
                                        "type": "integer",
                                        "description": "The number you want to display on your app's icon. Set to 0 to remove the current badge, if any."
                                      },
                                      "category": {
                                        "type": "string",
                                        "description": "The notification’s type. This string must correspond to the identifier of one of the `UNNotificationCategory` objects you register at launch time."
                                      },
                                      "content-available": {
                                        "type": "integer",
                                        "description": "The background notification flag. Use `1` without an `alert` to perform a silent update. `0` indicates a normal push notification."
                                      },
                                      "interruption-level": {
                                        "type": "string",
                                        "description": "Indicates the importance and delivery timing of a notification.",
                                        "enum": [
                                          "passive",
                                          "active",
                                          "time-sensitive",
                                          "critical"
                                        ]
                                      },
                                      "mutable-content": {
                                        "type": "integer",
                                        "description": "Set this to `1` if you use the Customer.io SDK, so you can support images and delivered metrics in your push notifications. It passes the notification to your service extension before delivery."
                                      },
                                      "relevance-score": {
                                        "type": "number",
                                        "description": "A number between 0 and 1. The highest score is considered the \"most relevant\"  and is featured in the notification summary."
                                      },
                                      "sound": {
                                        "oneOf": [
                                          {
                                            "title": "Regular alert",
                                            "type": "string",
                                            "description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound. For critical alerts, you'll pass an object instead."
                                          },
                                          {
                                            "title": "Critical alert",
                                            "type": "object",
                                            "properties": {
                                              "critical": {
                                                "type": "integer",
                                                "description": "1 indicates critical. 0 is not critical."
                                              },
                                              "name": {
                                                "type": "string",
                                                "description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound."
                                              },
                                              "volume": {
                                                "type": "number",
                                                "description": "The volume for a critical alert between 0 and 1, where 0 is silent and 1 is full volume."
                                              }
                                            }
                                          }
                                        ]
                                      },
                                      "target-content-id": {
                                        "type": "string",
                                        "description": "The identifier of the window brought forward."
                                      },
                                      "thread-id": {
                                        "type": "string",
                                        "description": "An identifier to group related notifications."
                                      }
                                    }
                                  },
                                  "CIO": {
                                    "type": "object",
                                    "description": "Contains properties interpreted by the Customer.io iOS SDK.",
                                    "required": [
                                      "push"
                                    ],
                                    "properties": {
                                      "push": {
                                        "type": "object",
                                        "description": "A push payload for the iOS SDK.",
                                        "properties": {
                                          "body": {
                                            "x-scalar-ignore": true,
                                            "type": "string",
                                            "description": "The body of your push notification."
                                          },
                                          "image": {
                                            "x-scalar-ignore": true,
                                            "type": "string",
                                            "description": "The URL of an HTTPS image that you want to use for your message."
                                          },
                                          "link": {
                                            "x-scalar-ignore": true,
                                            "type": "string",
                                            "description": "A deep link (to a page in your app), or a link to a web page."
                                          },
                                          "title": {
                                            "x-scalar-ignore": true,
                                            "type": "string",
                                            "description": "The title of your push notification."
                                          }
                                        }
                                      }
                                    }
                                  }
                                },
                                "additionalProperties": {
                                  "description": "Additional properties that you've set up your app to interpret outside of the Customer.io SDK.",
                                  "x-additionalPropertiesName": "Custom key-value pairs"
                                }
                              },
                              "headers": {
                                "description": "Headers defined by [Apple's payload reference](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns) that you want to pass through FCM.",
                                "type": "object"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  {
                    "x-scalar-ignore": true,
                    "type": "object",
                    "properties": {
                      "aps": {
                        "x-scalar-ignore": true,
                        "type": "object",
                        "description": "A push payload intended for an iOS device.",
                        "properties": {
                          "alert": {
                            "oneOf": [
                              {
                                "title": "Simple alert",
                                "type": "string",
                                "description": "A simple alert message."
                              },
                              {
                                "title": "Complex alert",
                                "type": "object",
                                "properties": {
                                  "body": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The body of your push notification."
                                  },
                                  "launch-image": {
                                    "description": "The name of the launch image file you want to display. When a user launches your app, they'll see this image or storyboard file rather than your app’s normal launch image.",
                                    "type": "string"
                                  },
                                  "loc-args": {
                                    "type": "array",
                                    "description": "An array of replacement value strings for variables in your message text. Each %@ character in the loc-key is replaced by a value from this array, in the order they appear in the message body.",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "loc-key": {
                                    "description": "The key for a localized message string in your app’s Localizable.strings file.",
                                    "type": "string"
                                  },
                                  "subtitle": {
                                    "description": "Additional information that explains the purpose of the notification.",
                                    "type": "string"
                                  },
                                  "subtitle-loc-args": {
                                    "type": "array",
                                    "description": "An array of replacement value strings for variables in your subtitle string. Each %@ character in the subtitle-loc-key is replaced by a value from this array, in the order they appear in the subtitle string.",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "subtitle-loc-key": {
                                    "description": "The key for a localized subtitle string in your app’s Localizable.strings file.",
                                    "type": "string"
                                  },
                                  "title": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The title of your push notification."
                                  },
                                  "title-loc-args": {
                                    "type": "array",
                                    "description": "An array of replacement value strings for variables in your title string. Each %@ character in the title-loc-key is replaced by a value from this array, in the order they appear in the title string.",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "title-loc-key": {
                                    "description": "The key for a localized title string in your app’s Localizable.strings files.",
                                    "type": "string"
                                  }
                                }
                              }
                            ]
                          },
                          "badge": {
                            "type": "integer",
                            "description": "The number you want to display on your app's icon. Set to 0 to remove the current badge, if any."
                          },
                          "category": {
                            "type": "string",
                            "description": "The notification’s type. This string must correspond to the identifier of one of the `UNNotificationCategory` objects you register at launch time."
                          },
                          "content-available": {
                            "type": "integer",
                            "description": "The background notification flag. Use `1` without an `alert` to perform a silent update. `0` indicates a normal push notification."
                          },
                          "interruption-level": {
                            "type": "string",
                            "description": "Indicates the importance and delivery timing of a notification.",
                            "enum": [
                              "passive",
                              "active",
                              "time-sensitive",
                              "critical"
                            ]
                          },
                          "mutable-content": {
                            "type": "integer",
                            "description": "Set this to `1` if you use the Customer.io SDK, so you can support images and delivered metrics in your push notifications. It passes the notification to your service extension before delivery."
                          },
                          "relevance-score": {
                            "type": "number",
                            "description": "A number between 0 and 1. The highest score is considered the \"most relevant\"  and is featured in the notification summary."
                          },
                          "sound": {
                            "oneOf": [
                              {
                                "title": "Regular alert",
                                "type": "string",
                                "description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound. For critical alerts, you'll pass an object instead."
                              },
                              {
                                "title": "Critical alert",
                                "type": "object",
                                "properties": {
                                  "critical": {
                                    "type": "integer",
                                    "description": "1 indicates critical. 0 is not critical."
                                  },
                                  "name": {
                                    "type": "string",
                                    "description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound."
                                  },
                                  "volume": {
                                    "type": "number",
                                    "description": "The volume for a critical alert between 0 and 1, where 0 is silent and 1 is full volume."
                                  }
                                }
                              }
                            ]
                          },
                          "target-content-id": {
                            "type": "string",
                            "description": "The identifier of the window brought forward."
                          },
                          "thread-id": {
                            "type": "string",
                            "description": "An identifier to group related notifications."
                          }
                        }
                      },
                      "CIO": {
                        "type": "object",
                        "required": [
                          "push"
                        ],
                        "description": "Contains options supported by the Customer.io SDK.",
                        "properties": {
                          "push": {
                            "type": "object",
                            "description": "Describes push notification options supported by the CIO SDK.",
                            "properties": {
                              "image": {
                                "x-scalar-ignore": true,
                                "type": "string",
                                "description": "The URL of an HTTPS image that you want to use for your message."
                              },
                              "link": {
                                "x-scalar-ignore": true,
                                "type": "string",
                                "description": "A deep link (to a page in your app), or a link to a web page."
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                ]
              }
            }
          },
          "disable_message_retention": {
            "x-scalar-ignore": true,
            "type": "boolean",
            "default": false,
            "description": "If true, the message body is not retained in delivery history. Setting this value overrides the value set in the settings of your `transactional_message_id`."
          },
          "image_url": {
            "type": "string",
            "description": "An image URL to show in the push. This overrides Image from the transactional template (referenced by `transactional_message_id`)."
          },
          "language": {
            "type": "string",
            "description": "Overrides language preferences for the person you want to send your transactional message to. Use one of our [supported two- or four-letter language codes](/journeys/channels/localization/getting-started/#supported-languages)."
          },
          "link": {
            "type": "string",
            "description": "A deep link to open when the push is tapped. This overrides Link from the transactional template (referenced by `transactional_message_id`)."
          },
          "message": {
            "type": "string",
            "description": "The message body for your notification. This overrides the notification body of the transactional template (referenced by `transactional_message_id`)."
          },
          "message_data": {
            "type": "object",
            "description": "An object containing the key-value pairs referenced using liquid in your message.",
            "additionalProperties": {
              "x-additionalPropertiesName": "Liquid Data",
              "description": "Insert key-values that you want to reference in your message here."
            },
            "example": {
              "password_reset_token": "abcde-12345-fghij-d888",
              "account_id": "123dj"
            }
          },
          "queue_draft": {
            "x-scalar-ignore": true,
            "type": "boolean",
            "description": "If true, your transactional message is held as a draft in Customer.io and not sent directly to your audience. You must go to the Deliveries and Drafts page to send your message.",
            "default": false
          },
          "send_at": {
            "type": "integer",
            "description": "A unix timestamp (seconds since epoch) determining when the message will be sent. The timestamp can be up to 90 days in the future. If this value is in the past, your message is sent immediately."
          },
          "send_to_unsubscribed": {
            "x-scalar-ignore": true,
            "type": "boolean",
            "default": true,
            "description": "If false, your message is not sent to unsubscribed recipients. Setting this value overrides the value set in the settings of your `transactional_message_id`."
          },
          "sound": {
            "type": "string",
            "description": "**For iOS Only**: your notification can alert users with the device's default notification sound or play no sound at all.\n",
            "enum": [
              "default",
              "none"
            ],
            "default": "default"
          },
          "title": {
            "type": "string",
            "description": "The title for your notification. This overrides the title of the transactional template (referenced by `transactional_message_id`)."
          },
          "to": {
            "type": "string",
            "description": "The devices you want to send this push to—`all`, `last_used`, or a custom device token from the identified profile. Defaults to `all` and overrides the `To` value from your transactional template.",
            "enum": [
              "all",
              "last_used",
              "$device_token"
            ],
            "default": "all"
          }
        },
        "required": [
          "transactional_message_id",
          "identifiers"
        ]
      },
      "sendinbox": {
        "x-scalar-ignore": true,
        "example": {
          "identifiers": {
            "id": "user_123"
          },
          "transactional_message_id": "order_shipped",
          "message_data": {
            "order_id": "ORD-5678",
            "tracking_url": "https://track.example.com/5678",
            "product_name": "Blue Widget",
            "product_image": "https://cdn.example.com/widget.jpg"
          }
        },
        "properties": {
          "identifiers": {
            "description": "Identifies the person represented by your transactional message by one of, and only one of, `id`, `email`, or `cio_id`.",
            "oneOf": [
              {
                "title": "id",
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The identifier for the person represented by the transactional message. **NOTE**: If your workspace identifies people by email, use the `email` identifier instead.\n",
                    "example": "user_123"
                  }
                }
              },
              {
                "title": "email",
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "type": "string",
                    "description": "The identifier for the person represented by the transactional message. Use this option if your workspace identifies people by email rather than by `id`.",
                    "example": "user@example.com"
                  }
                }
              },
              {
                "title": "cio_id",
                "type": "object",
                "required": [
                  "cio_id"
                ],
                "properties": {
                  "cio_id": {
                    "type": "string",
                    "description": "A unique, immutable identifier for a person, set by Customer.io when you add a person.",
                    "example": 3000001
                  }
                }
              }
            ]
          },
          "transactional_message_id": {
            "description": "The transactional message template that you want to use for your message. You can call the template by its numerical ID or by the *Trigger Name* that you assigned to the template in the UI (case insensitive).",
            "oneOf": [
              {
                "title": "ID (integer)",
                "type": "integer",
                "description": "The ID of the transactional message you want to send.",
                "example": 44
              },
              {
                "title": "Trigger Name (string)",
                "type": "string",
                "description": "The name of trigger for the transactional message you want to send; you set the trigger name in the *Configure Settings* step when setting up your message. This is case insensitive.",
                "example": "order_shipped"
              }
            ]
          },
          "auto_create": {
            "type": "boolean",
            "default": false,
            "description": "Accepted for inbox sends, but of limited use. An auto-created record has no content or layout until you populate it in the UI, so we recommend [creating the inbox message in the UI](/journeys/channels/in-app/inbox/send-inbox-txnl/) instead. Your `transactional_message_id` must be a new string."
          },
          "language": {
            "type": "string",
            "description": "Overrides language preferences for the person you want to send your transactional message to. Use one of our [supported two- or four-letter language codes](/journeys/channels/localization/getting-started/#supported-languages)."
          },
          "message_data": {
            "type": "object",
            "description": "An object containing the key-value pairs referenced using liquid in the format `{{trigger.<property_name>}}` in your inbox message. These values will populate the `properties` field in the message received by your application.",
            "additionalProperties": {
              "x-additionalPropertiesName": "Liquid Data",
              "description": "Insert key-values that you want to reference in your message here."
            },
            "example": {
              "order_id": "ORD-5678",
              "tracking_url": "https://track.example.com/5678"
            }
          },
          "queue_draft": {
            "x-scalar-ignore": true,
            "type": "boolean",
            "description": "If true, your transactional message is held as a draft in Customer.io and not sent directly to your audience. You must go to the Deliveries and Drafts page to send your message.",
            "default": false
          },
          "send_at": {
            "type": "integer",
            "description": "A unix timestamp (seconds since epoch) determining when the message will be sent. The timestamp can be up to 90 days in the future. If this value is in the past, your message is sent immediately."
          },
          "to": {
            "type": "string",
            "description": "Optional override for the recipient. This is typically not needed as the message is sent to the person identified by `identifiers`."
          }
        },
        "required": [
          "transactional_message_id",
          "identifiers"
        ]
      },
      "sendinapp": {
        "x-scalar-ignore": true,
        "example": {
          "identifiers": {
            "id": "user_123"
          },
          "transactional_message_id": "order_confirmation",
          "message_data": {
            "order_id": "ORD-5678",
            "tracking_url": "https://track.example.com/5678"
          }
        },
        "properties": {
          "identifiers": {
            "description": "Identifies the person represented by your transactional message by one of, and only one of, `id`, `email`, or `cio_id`.",
            "oneOf": [
              {
                "title": "id",
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The identifier for the person represented by the transactional message. **NOTE**: If your workspace identifies people by email, use the `email` identifier instead.\n",
                    "example": "user_123"
                  }
                }
              },
              {
                "title": "email",
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "type": "string",
                    "description": "The identifier for the person represented by the transactional message. Use this option if your workspace identifies people by email rather than by `id`.",
                    "example": "user@example.com"
                  }
                }
              },
              {
                "title": "cio_id",
                "type": "object",
                "required": [
                  "cio_id"
                ],
                "properties": {
                  "cio_id": {
                    "type": "string",
                    "description": "A unique, immutable identifier for a person, set by Customer.io when you add a person.",
                    "example": 3000001
                  }
                }
              }
            ]
          },
          "transactional_message_id": {
            "description": "The transactional message template that you want to use for your message. You can call the template by its numerical ID or by the *Trigger Name* that you assigned to the template in the UI (case insensitive).",
            "oneOf": [
              {
                "title": "ID (integer)",
                "type": "integer",
                "description": "The ID of the transactional message you want to send.",
                "example": 44
              },
              {
                "title": "Trigger Name (string)",
                "type": "string",
                "description": "The name of trigger for the transactional message you want to send; you set the trigger name in the *Configure Settings* step when setting up your message. This is case insensitive.",
                "example": "order_confirmation"
              }
            ]
          },
          "auto_create": {
            "type": "boolean",
            "default": false,
            "description": "Accepted for in-app sends, but of limited use. An auto-created record has no content or layout until you populate it in the UI, so we recommend [creating the in-app message in the UI](/journeys/send/transactional/in-app/) instead. Your `transactional_message_id` must be a new string."
          },
          "language": {
            "type": "string",
            "description": "Overrides language preferences for the person you want to send your transactional message to. Use one of our [supported two- or four-letter language codes](/journeys/channels/localization/getting-started/#supported-languages)."
          },
          "message_data": {
            "type": "object",
            "description": "An object containing the key-value pairs referenced using liquid in the format `{{trigger.<property_name>}}` in your in-app message. These values populate the `properties` field in the message that the SDK delivers to your application.",
            "additionalProperties": {
              "x-additionalPropertiesName": "Liquid Data",
              "description": "Insert key-values that you want to reference in your message here."
            },
            "example": {
              "order_id": "ORD-5678",
              "tracking_url": "https://track.example.com/5678"
            }
          },
          "queue_draft": {
            "x-scalar-ignore": true,
            "type": "boolean",
            "description": "If true, your transactional message is held as a draft in Customer.io and not sent directly to your audience. You must go to the Deliveries and Drafts page to send your message.",
            "default": false
          },
          "send_at": {
            "type": "integer",
            "description": "A unix timestamp (seconds since epoch) determining when the message will be sent. The timestamp can be up to 90 days in the future. If this value is in the past, your message is sent immediately."
          }
        },
        "required": [
          "transactional_message_id",
          "identifiers"
        ]
      },
      "sendemail": {
        "x-scalar-ignore": true,
        "example": {
          "to": "cool.person@example.com",
          "attachments": {
            "file1.csv": "base64encodedcontent",
            "file2.pdf": "base64encodedcontent"
          },
          "bcc": "bcc@example.com",
          "disable_css_preprocessing": true,
          "disable_message_retention": false,
          "from": "override-templated-address@example.com",
          "headers": {
            "X-Mailgun-Tag": "my-cool-tag"
          },
          "identifiers": {
            "email": "cool.person@example.com"
          },
          "message_data": {
            "password_reset_token": "abcde-12345-fghij-d888",
            "account_id": "123dj"
          },
          "queue_draft": false,
          "send_to_unsubscribed": true,
          "subject": "Order receipt",
          "tracked": true,
          "transactional_message_id": 44
        },
        "properties": {
          "to": {
            "type": "string",
            "description": "The recipients you want to send to, separated by commas. You can include up to 15 total recipients across `to`, `cc`, and `bcc`, with optional display names in quotes.",
            "example": "cool.person@example.com"
          },
          "attachments": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "A dictionary of attachments where the filename is the key and the value is the base64-encoded contents. The filename must include the extension (i.e. `name.csv`). The total size of all attachments must be less than 2 MB.",
            "properties": {
              "<file-name>": {
                "type": "string",
                "format": "base64"
              }
            }
          },
          "auto_create": {
            "type": "boolean",
            "default": false,
            "description": "If `true` and your `transactional_message_id` doesn't match a record, Customer.io creates an empty record using that value as the *Trigger Name*. The ID must be a string. If the name already belongs to another channel, the request fails with `400`, and numeric IDs ignore this setting. See [details](/journeys/transactional-email/#auto-create-transactional-message-records)."
          },
          "bcc": {
            "type": "string",
            "description": "Blind copy message recipients. Supports multiple addresses separated by commas. Your request can contain up to 15 total recipients between the `to`, `cc`, and `bcc` keys.",
            "example": "bcc@example.com"
          },
          "body": {
            "type": "string",
            "description": "The HTML body of your message. If you provide a `transactional_message_id`, this overrides the template's body. It's also the fallback when you send AMP email (`body_amp`) to a client that doesn't support AMP.",
            "example": "Your temporary password is {{message_data.password_reset_token}}"
          },
          "body_amp": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "AMP-enabled content for your email. If a recipient's email client doesn't support AMP, they receive your `body` content instead. Make sure you're [set up to send AMP](/journeys/channels/email/layouts/amp-for-email/) first."
          },
          "body_plain": {
            "type": "string",
            "description": "The plaintext body of your message. If you provide `transactional_message_id`, this overrides the template's plaintext body."
          },
          "cc": {
            "type": "string",
            "description": "Carbon copy message recipients, separated by commas. Unlike BCC recipients, CC recipients are visible to everyone who receives the message. Their opens, clicks, and bounces count toward your message metrics. CC recipients count toward the limit of 15 total recipients across the `to`, `cc`, and `bcc` keys.",
            "example": "cc@example.com"
          },
          "disable_css_preprocessing": {
            "type": "boolean",
            "description": "Set to `true` to disable CSS preprocessing. This setting overrides the CSS preprocessing setting on the `transactional_message_id` as set in the user interface. Transactional emails have CSS preprocessing enabled by default.",
            "example": false,
            "default": false
          },
          "disable_message_retention": {
            "x-scalar-ignore": true,
            "type": "boolean",
            "default": false,
            "description": "If true, the message body is not retained in delivery history. Setting this value overrides the value set in the settings of your `transactional_message_id`."
          },
          "fake_bcc": {
            "type": "boolean",
            "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"
          },
          "from": {
            "type": "string",
            "description": "The address your email is from. It must be a [verified sender](/journeys/channels/email/deliverability/authentication/). Quote any display name, like `\\\"Person\\\" <person@example.com>`. This overrides the template's sender; omit it to use the template or your workspace default.",
            "example": "support@example.com"
          },
          "headers": {
            "x-scalar-ignore": true,
            "description": "A JSON string containing header objects with `name` and `value`. Names and values must be strings, with no non-ASCII characters or spaces. You can't overwrite reserved headers.",
            "type": "string",
            "format": "json",
            "example": "[{\"name\":\"X-Mailgun-Tag\",\"value\":\"my-cool-tag\"},{\"name\":\"X-Custom-Header\",\"value\":\"custom-value\"}]"
          },
          "identifiers": {
            "description": "Identifies the person represented by your transactional message by one of, and only one of, `id`, `email`, or `cio_id`.",
            "oneOf": [
              {
                "title": "id",
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The identifier for the person represented by the transactional message. **NOTE**: If your workspace identifies people by email, use the `email` identifier instead.\n",
                    "example": 12345
                  }
                }
              },
              {
                "title": "email",
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "type": "string",
                    "description": "The identifier for the person represented by the transactional message. Use this option if your workspace identifies people by email rather than by `id`.",
                    "example": "cool.person@example.com"
                  }
                }
              },
              {
                "title": "cio_id",
                "type": "object",
                "required": [
                  "cio_id"
                ],
                "properties": {
                  "cio_id": {
                    "type": "string",
                    "description": "A unique, immutable identifier for a person, set by Customer.io when you add a person.",
                    "example": 3000001
                  }
                }
              }
            ]
          },
          "language": {
            "type": "string",
            "description": "Overrides language preferences for the person you want to send your transactional message to. Use one of our [supported two- or four-letter language codes](/journeys/channels/localization/getting-started/#supported-languages)."
          },
          "message_data": {
            "type": "object",
            "description": "An object containing the key-value pairs referenced using liquid in your message.",
            "additionalProperties": {
              "x-additionalPropertiesName": "Liquid Data",
              "description": "Insert key-values that you want to reference in your message here."
            },
            "example": {
              "password_reset_token": "abcde-12345-fghij-d888",
              "account_id": "123dj"
            }
          },
          "preheader": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "Also known as \"preview text\", this is the block block of text that users see next to, or underneath, the subject line in their inbox."
          },
          "queue_draft": {
            "x-scalar-ignore": true,
            "type": "boolean",
            "description": "If true, your transactional message is held as a draft in Customer.io and not sent directly to your audience. You must go to the Deliveries and Drafts page to send your message.",
            "default": false
          },
          "reply_to": {
            "type": "string",
            "description": "The address that recipients can reply to, if different from the `from` address.",
            "example": "replyto@example.com"
          },
          "send_at": {
            "type": "integer",
            "description": "A unix timestamp (seconds since epoch) determining when the message will be sent. The timestamp can be up to 90 days in the future. If this value is in the past, your message is sent immediately."
          },
          "send_to_unsubscribed": {
            "x-scalar-ignore": true,
            "type": "boolean",
            "default": true,
            "description": "If false, your message is not sent to unsubscribed recipients. Setting this value overrides the value set in the settings of your `transactional_message_id`."
          },
          "subject": {
            "type": "string",
            "description": "The subject line for your message. If you provide `transactional_message_id`, this overrides the template's subject.",
            "example": "Reset your password!"
          },
          "tracked": {
            "x-scalar-ignore": true,
            "type": "boolean",
            "description": "If true, Customer.io tracks opens and link clicks in your message.",
            "default": true
          },
          "transactional_message_id": {
            "description": "The transactional message template you want to use. You can call the template by its numerical ID or by the *Trigger Name* that you assigned to the template in the UI (case insensitive).",
            "oneOf": [
              {
                "title": "ID (integer)",
                "type": "integer",
                "description": "The ID of the transactional message you want to send.",
                "example": 44
              },
              {
                "title": "Trigger Name (string)",
                "type": "string",
                "description": "The name of trigger for the transactional message you want to send. You set the trigger name in the **Configure Settings** step in the UI when setting up your message. This is case insensitive.",
                "example": "pwdreset"
              }
            ]
          }
        },
        "required": [
          "to"
        ]
      },
      "sendsms": {
        "x-scalar-ignore": true,
        "example": {
          "identifiers": {
            "id": "123456"
          },
          "to": "+15559876543",
          "transactional_message_id": "confirmation code",
          "from": "+15551234567",
          "message_data": {
            "confirmation_code": "123456",
            "account_name": "Jane Doe"
          }
        },
        "properties": {
          "identifiers": {
            "description": "Identifies the person represented by your transactional message by one of, and only one of, `id`, `email`, or `cio_id`.",
            "oneOf": [
              {
                "title": "id",
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The identifier for the person represented by the transactional message. **NOTE**: If your workspace identifies people by email, use the `email` identifier instead.\n",
                    "example": 12345
                  }
                }
              },
              {
                "title": "email",
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "type": "string",
                    "description": "The identifier for the person represented by the transactional message. Use this option if your workspace identifies people by email rather than by `id`.",
                    "example": "cool.person@example.com"
                  }
                }
              },
              {
                "title": "cio_id",
                "type": "object",
                "required": [
                  "cio_id"
                ],
                "properties": {
                  "cio_id": {
                    "type": "string",
                    "description": "A unique, immutable identifier for a person, set by Customer.io when you add a person.",
                    "example": 3000001
                  }
                }
              }
            ]
          },
          "to": {
            "type": "string",
            "description": "The phone number you want to send your SMS to. Use E.164 format, like `+15551234567`, or Liquid if you store phone numbers as attributes.",
            "example": "{{customer.phone}}"
          },
          "transactional_message_id": {
            "description": "The transactional message template that you want to use for your message. You can call the template by its numerical ID or by the *Trigger Name* that you assigned to the template in the UI (case insensitive).",
            "oneOf": [
              {
                "title": "ID (integer)",
                "type": "integer",
                "description": "The ID of the transactional message you want to send.",
                "example": 44
              },
              {
                "title": "Trigger Name (string)",
                "type": "string",
                "description": "The name of trigger for the transactional message you want to send; you set the trigger name in the *Configure Settings* step when setting up your message. This is case insensitive.",
                "example": "verification_code"
              }
            ]
          },
          "auto_create": {
            "type": "boolean",
            "default": false,
            "description": "If `true` and your `transactional_message_id` doesn't match a record, Customer.io creates an empty record using that value as the *Trigger Name*. The ID must be a string. If the name already belongs to another channel, the request fails with `400`, and numeric IDs ignore this setting. See [details](/journeys/transactional-email/#auto-create-transactional-message-records)."
          },
          "disable_message_retention": {
            "x-scalar-ignore": true,
            "type": "boolean",
            "default": false,
            "description": "If true, the message body is not retained in delivery history. Setting this value overrides the value set in the settings of your `transactional_message_id`."
          },
          "from": {
            "type": "string",
            "description": "The phone number or sender ID your SMS is from. It must be verified in your Twilio account. This overrides the template's sender. Use E.164 format for a phone number.",
            "example": "+15551234567"
          },
          "language": {
            "type": "string",
            "description": "Overrides language preferences for the person you want to send your transactional message to. Use one of our [supported two- or four-letter language codes](/journeys/channels/localization/getting-started/#supported-languages)."
          },
          "message_data": {
            "type": "object",
            "description": "An object containing the key-value pairs referenced using liquid in your message.",
            "additionalProperties": {
              "x-additionalPropertiesName": "Liquid Data",
              "description": "Insert key-values that you want to reference in your message here."
            },
            "example": {
              "password_reset_token": "abcde-12345-fghij-d888",
              "account_id": "123dj"
            }
          },
          "queue_draft": {
            "x-scalar-ignore": true,
            "type": "boolean",
            "description": "If true, your transactional message is held as a draft in Customer.io and not sent directly to your audience. You must go to the Deliveries and Drafts page to send your message.",
            "default": false
          },
          "send_at": {
            "type": "integer",
            "description": "A unix timestamp (seconds since epoch) determining when the message will be sent. The timestamp can be up to 90 days in the future. If this value is in the past, your message is sent immediately."
          },
          "send_to_unsubscribed": {
            "x-scalar-ignore": true,
            "type": "boolean",
            "default": true,
            "description": "If false, your message is not sent to unsubscribed recipients. Setting this value overrides the value set in the settings of your `transactional_message_id`."
          },
          "tracked": {
            "type": "boolean",
            "default": true,
            "description": "Whether to track link clicks for this SMS. Defaults to the transactional message's own tracking setting."
          }
        },
        "required": [
          "transactional_message_id",
          "identifiers",
          "to"
        ]
      },
      "sendwhatsapp": {
        "x-scalar-ignore": true,
        "example": {
          "identifiers": {
            "id": "123456"
          },
          "to": "+15559876543",
          "transactional_message_id": "confirmation code",
          "from": "+15551234567",
          "message_data": {
            "confirmation_code": "123456",
            "account_name": "Jane Doe"
          }
        },
        "properties": {
          "identifiers": {
            "description": "Identifies the person represented by your transactional message by one of, and only one of, `id`, `email`, or `cio_id`.",
            "oneOf": [
              {
                "title": "id",
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "The identifier for the person represented by the transactional message. **NOTE**: If your workspace identifies people by email, use the `email` identifier instead.\n",
                    "example": 12345
                  }
                }
              },
              {
                "title": "email",
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "type": "string",
                    "description": "The identifier for the person represented by the transactional message. Use this option if your workspace identifies people by email rather than by `id`.",
                    "example": "cool.person@example.com"
                  }
                }
              },
              {
                "title": "cio_id",
                "type": "object",
                "required": [
                  "cio_id"
                ],
                "properties": {
                  "cio_id": {
                    "type": "string",
                    "description": "A unique, immutable identifier for a person, set by Customer.io when you add a person.",
                    "example": 3000001
                  }
                }
              }
            ]
          },
          "to": {
            "type": "string",
            "description": "The WhatsApp phone number you want to send your message to. Use E.164 format, like `+15551234567`, or Liquid if you store phone numbers as attributes. The recipient must be able to receive WhatsApp messages.",
            "example": "{{customer.phone}}"
          },
          "transactional_message_id": {
            "description": "The transactional message template that you want to use for your message. You can call the template by its numerical ID or by the *Trigger Name* that you assigned to the template in the UI (case insensitive).",
            "oneOf": [
              {
                "title": "ID (integer)",
                "type": "integer",
                "description": "The ID of the transactional message you want to send.",
                "example": 44
              },
              {
                "title": "Trigger Name (string)",
                "type": "string",
                "description": "The name of trigger for the transactional message you want to send; you set the trigger name in the *Configure Settings* step when setting up your message. This is case insensitive.",
                "example": "verification_code"
              }
            ]
          },
          "disable_message_retention": {
            "x-scalar-ignore": true,
            "type": "boolean",
            "default": false,
            "description": "If true, the message body is not retained in delivery history. Setting this value overrides the value set in the settings of your `transactional_message_id`."
          },
          "from": {
            "type": "string",
            "description": "The WhatsApp-approved sender (phone number or sender ID) that your message is from. It must be a WhatsApp-approved sender configured in your workspace. This overrides the template's sender. Use E.164 format for a phone number.",
            "example": "+15551234567"
          },
          "language": {
            "type": "string",
            "description": "Overrides language preferences for the person you want to send your transactional message to. Use one of our [supported two- or four-letter language codes](/messaging/channels/localization/getting-started/#supported-languages)."
          },
          "message_data": {
            "type": "object",
            "description": "An object containing the key-value pairs referenced using liquid in your message.",
            "additionalProperties": {
              "x-additionalPropertiesName": "Liquid Data",
              "description": "Insert key-values that you want to reference in your message here."
            },
            "example": {
              "password_reset_token": "abcde-12345-fghij-d888",
              "account_id": "123dj"
            }
          },
          "queue_draft": {
            "x-scalar-ignore": true,
            "type": "boolean",
            "description": "If true, your transactional message is held as a draft in Customer.io and not sent directly to your audience. You must go to the Deliveries and Drafts page to send your message.",
            "default": false
          },
          "send_at": {
            "type": "integer",
            "description": "A unix timestamp (seconds since epoch) determining when the message will be sent. The timestamp can be up to 90 days in the future. If this value is in the past, your message is sent immediately."
          },
          "send_to_unsubscribed": {
            "x-scalar-ignore": true,
            "type": "boolean",
            "default": true,
            "description": "If false, your message is not sent to unsubscribed recipients. Setting this value overrides the value set in the settings of your `transactional_message_id`."
          },
          "tracked": {
            "type": "boolean",
            "default": true,
            "description": "Whether to track link clicks for this WhatsApp message. Defaults to the transactional message's own tracking setting."
          }
        },
        "required": [
          "transactional_message_id",
          "identifiers",
          "to"
        ]
      },
      "transactionalObject": {
        "x-scalar-ignore": true,
        "description": "Contains information about a transactional message.",
        "type": "object",
        "properties": {
          "created_at": {
            "x-scalar-ignore": true,
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date time when the referenced ID was created.",
            "example": 1552341937,
            "readOnly": true
          },
          "description": {
            "type": "string",
            "description": "A description of the transactional message.",
            "example": "sends a temporary password and lets the customer reset their password."
          },
          "hide_message_body": {
            "type": "boolean",
            "description": "If true, message contents are not retained in delivery history—you cannot recall the exact contents of the message."
          },
          "id": {
            "type": "integer",
            "description": "The identifier Customer.io assigned to the transactional message",
            "example": 2
          },
          "link_tracking": {
            "type": "boolean",
            "description": "If true, link tracking is enabled for this message."
          },
          "name": {
            "type": "string",
            "description": "The name you set for the transactional message.",
            "example": "password reset"
          },
          "open_tracking": {
            "type": "boolean",
            "description": "If true, open-tracking is enabled for this message."
          },
          "queue_drafts": {
            "type": "boolean",
            "description": "If true, messages do not send automatically, and queue as drafts instead. You must send drafts through the *Deliveries & Drafts* page in the user interface."
          },
          "send_to_unsubscribed": {
            "type": "boolean",
            "description": "If true, people with an `unsubscribed` attribute set to `true` can trigger the message."
          },
          "updated_at": {
            "x-scalar-ignore": true,
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date time when the referenced ID was last updated.",
            "example": 1552341937,
            "readOnly": true
          }
        }
      },
      "updateContentRequest": {
        "x-scalar-ignore": true,
        "oneOf": [
          {
            "x-scalar-ignore": true,
            "title": "Email",
            "description": "Update the contents of an email one-time send variant. You can set the sender with `from_id`. If you don't provide it, the existing sender is preserved.\n",
            "properties": {
              "type": {
                "x-scalar-ignore": true,
                "description": "Channel type for a one-time send or one-time send content variant.",
                "type": "string",
                "enum": [
                  "email"
                ],
                "readOnly": true,
                "example": "email"
              },
              "body": {
                "type": "string",
                "description": "The HTML body of the email. You cannot modify the body if you created the one-time send with Design Studio or the drag-and-drop editor."
              },
              "body_amp": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "AMP-enabled content for your email. If a recipient's email client doesn't support AMP, they receive your `body` content instead. Make sure you're [set up to send AMP](/journeys/channels/email/layouts/amp-for-email/) first."
              },
              "body_plain": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "By default, your workspace generates a plaintext version of your message body for each delivery. Use this key to override the default plain text body."
              },
              "deduplicate_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "readOnly": true,
                "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
                "example": "15:1492548073"
              },
              "from_id": {
                "x-scalar-ignore": true,
                "type": "integer",
                "description": "The identifier of the `from` address, commonly known as the \"sender\". Use [List sender identities](/integrations/api/app/tag/sender-identities/listSenders/) to find valid IDs.",
                "example": 1
              },
              "preheader_text": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "[Also known as \"preview text\"](/journeys/channels/email/headers/custom-preheader-text/), this is the small block of text shown in an email inbox next to or underneath the subject line.\n"
              },
              "recipient": {
                "type": "string",
                "description": "The recipient address for the one-time send. By default, it's `{{customer.email}}`."
              },
              "reply_to_id": {
                "x-scalar-ignore": true,
                "type": [
                  "integer",
                  "null"
                ],
                "description": "The identifier for the `reply_to` address, if applicable. Use [List sender identities](/integrations/api/app/tag/sender-identities/listSenders/) to find valid IDs.",
                "example": 38
              },
              "subject": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The subject line for an `email` action.",
                "example": "Did you get that thing I sent you?"
              }
            }
          },
          {
            "x-scalar-ignore": true,
            "title": "SMS",
            "description": "Update the contents of an SMS one-time send variant.",
            "properties": {
              "type": {
                "x-scalar-ignore": true,
                "description": "Channel type for a one-time send or one-time send content variant.",
                "type": "string",
                "enum": [
                  "twilio"
                ],
                "readOnly": true,
                "example": "email"
              },
              "body": {
                "type": "string",
                "description": "The body of the SMS message.",
                "example": "Hi {{ customer.first_name }}, check out our latest deals!"
              },
              "deduplicate_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "readOnly": true,
                "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
                "example": "15:1492548073"
              }
            }
          },
          {
            "x-scalar-ignore": true,
            "title": "Push",
            "description": "Update the contents of a push notification one-time send variant.",
            "properties": {
              "type": {
                "x-scalar-ignore": true,
                "description": "Channel type for a one-time send or one-time send content variant.",
                "type": "string",
                "enum": [
                  "push"
                ],
                "readOnly": true,
                "example": "email"
              },
              "body": {
                "type": "string",
                "description": "The body of the push notification.",
                "example": "Get 30% off everything. Tap to shop now."
              },
              "deduplicate_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "readOnly": true,
                "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
                "example": "15:1492548073"
              },
              "subject": {
                "type": "string",
                "description": "The title of the push notification.",
                "example": "24-hour flash sale!"
              }
            }
          },
          {
            "x-scalar-ignore": true,
            "title": "Webhook",
            "description": "Update the contents of a webhook one-time send variant.",
            "properties": {
              "type": {
                "x-scalar-ignore": true,
                "description": "Channel type for a one-time send or one-time send content variant.",
                "type": "string",
                "enum": [
                  "webhook"
                ],
                "readOnly": true,
                "example": "email"
              },
              "body": {
                "type": "string",
                "description": "The body content of the webhook request.",
                "example": "{\"channel\":\"#marketing\",\"text\":\"One-time send sent to {{ customer.email }}\"}"
              },
              "deduplicate_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "readOnly": true,
                "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
                "example": "15:1492548073"
              },
              "headers": {
                "x-scalar-ignore": true,
                "description": "Headers you want to add or update. Names and values must be strings, with no non-ASCII characters or spaces. You can't overwrite reserved headers.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "The name of the header."
                    },
                    "value": {
                      "type": "string",
                      "description": "The value of the header."
                    }
                  },
                  "example": [
                    {
                      "name": "X-Mailgun-Tag",
                      "value": "my-cool-tag"
                    }
                  ]
                }
              }
            }
          },
          {
            "x-scalar-ignore": true,
            "title": "In-App",
            "description": "You can't update in-app message content through the API—you can only set it when you [create the message](/integrations/api/app/tag/newsletters/createNewsletter/). Use the message editor to update the content of your message.\n",
            "properties": {
              "type": {
                "x-scalar-ignore": true,
                "description": "Channel type for a one-time send or one-time send content variant.",
                "type": "string",
                "enum": [
                  "in_app"
                ],
                "readOnly": true,
                "example": "email"
              },
              "deduplicate_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "readOnly": true,
                "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
                "example": "15:1492548073"
              }
            }
          },
          {
            "x-scalar-ignore": true,
            "title": "Inbox message",
            "description": "You can't update inbox message content through the API—you can only set it when you [create the message](/integrations/api/app/tag/newsletters/createNewsletter/). Use the message editor to update the content of your inbox message.\n",
            "properties": {
              "type": {
                "x-scalar-ignore": true,
                "description": "Channel type for a one-time send or one-time send content variant.",
                "type": "string",
                "enum": [
                  "inbox"
                ],
                "readOnly": true,
                "example": "email"
              },
              "deduplicate_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "readOnly": true,
                "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
                "example": "15:1492548073"
              }
            }
          }
        ],
        "discriminator": {
          "propertyName": "type"
        }
      },
      "updateContentCommon": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "deduplicate_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "readOnly": true,
            "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
            "example": "15:1492548073"
          },
          "type": {
            "x-scalar-ignore": true,
            "description": "Channel type for a one-time send or one-time send content variant.",
            "type": "string",
            "enum": [
              "email",
              "webhook",
              "twilio",
              "push",
              "in_app",
              "inbox"
            ],
            "readOnly": true,
            "example": "email"
          }
        }
      },
      "updateEmailContent": {
        "x-scalar-ignore": true,
        "title": "Email",
        "description": "Update the contents of an email one-time send variant. You can set the sender with `from_id`. If you don't provide it, the existing sender is preserved.\n",
        "properties": {
          "body": {
            "type": "string",
            "description": "The HTML body of the email. You cannot modify the body if you created the one-time send with Design Studio or the drag-and-drop editor."
          },
          "body_amp": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "AMP-enabled content for your email. If a recipient's email client doesn't support AMP, they receive your `body` content instead. Make sure you're [set up to send AMP](/journeys/channels/email/layouts/amp-for-email/) first."
          },
          "body_plain": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "By default, your workspace generates a plaintext version of your message body for each delivery. Use this key to override the default plain text body."
          },
          "deduplicate_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "readOnly": true,
            "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
            "example": "15:1492548073"
          },
          "from_id": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The identifier of the `from` address, commonly known as the \"sender\". Use [List sender identities](/integrations/api/app/tag/sender-identities/listSenders/) to find valid IDs.",
            "example": 1
          },
          "preheader_text": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "[Also known as \"preview text\"](/journeys/channels/email/headers/custom-preheader-text/), this is the small block of text shown in an email inbox next to or underneath the subject line.\n"
          },
          "recipient": {
            "type": "string",
            "description": "The recipient address for the one-time send. By default, it's `{{customer.email}}`."
          },
          "reply_to_id": {
            "x-scalar-ignore": true,
            "type": [
              "integer",
              "null"
            ],
            "description": "The identifier for the `reply_to` address, if applicable. Use [List sender identities](/integrations/api/app/tag/sender-identities/listSenders/) to find valid IDs.",
            "example": 38
          },
          "subject": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The subject line for an `email` action.",
            "example": "Did you get that thing I sent you?"
          },
          "type": {
            "x-scalar-ignore": true,
            "description": "Channel type for a one-time send or one-time send content variant.",
            "type": "string",
            "enum": [
              "email"
            ],
            "readOnly": true,
            "example": "email"
          }
        }
      },
      "updateSmsContent": {
        "x-scalar-ignore": true,
        "title": "SMS",
        "description": "Update the contents of an SMS one-time send variant.",
        "properties": {
          "body": {
            "type": "string",
            "description": "The body of the SMS message.",
            "example": "Hi {{ customer.first_name }}, check out our latest deals!"
          },
          "deduplicate_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "readOnly": true,
            "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
            "example": "15:1492548073"
          },
          "type": {
            "x-scalar-ignore": true,
            "description": "Channel type for a one-time send or one-time send content variant.",
            "type": "string",
            "enum": [
              "twilio"
            ],
            "readOnly": true,
            "example": "email"
          }
        }
      },
      "updatePushContent": {
        "x-scalar-ignore": true,
        "title": "Push",
        "description": "Update the contents of a push notification one-time send variant.",
        "properties": {
          "body": {
            "type": "string",
            "description": "The body of the push notification.",
            "example": "Get 30% off everything. Tap to shop now."
          },
          "deduplicate_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "readOnly": true,
            "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
            "example": "15:1492548073"
          },
          "subject": {
            "type": "string",
            "description": "The title of the push notification.",
            "example": "24-hour flash sale!"
          },
          "type": {
            "x-scalar-ignore": true,
            "description": "Channel type for a one-time send or one-time send content variant.",
            "type": "string",
            "enum": [
              "push"
            ],
            "readOnly": true,
            "example": "email"
          }
        }
      },
      "updateInAppContent": {
        "x-scalar-ignore": true,
        "title": "In-App",
        "description": "You can't update in-app message content through the API—you can only set it when you [create the message](/integrations/api/app/tag/newsletters/createNewsletter/). Use the message editor to update the content of your message.\n",
        "properties": {
          "deduplicate_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "readOnly": true,
            "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
            "example": "15:1492548073"
          },
          "type": {
            "x-scalar-ignore": true,
            "description": "Channel type for a one-time send or one-time send content variant.",
            "type": "string",
            "enum": [
              "in_app"
            ],
            "readOnly": true,
            "example": "email"
          }
        }
      },
      "updateInboxContent": {
        "x-scalar-ignore": true,
        "title": "Inbox message",
        "description": "You can't update inbox message content through the API—you can only set it when you [create the message](/integrations/api/app/tag/newsletters/createNewsletter/). Use the message editor to update the content of your inbox message.\n",
        "properties": {
          "deduplicate_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "readOnly": true,
            "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
            "example": "15:1492548073"
          },
          "type": {
            "x-scalar-ignore": true,
            "description": "Channel type for a one-time send or one-time send content variant.",
            "type": "string",
            "enum": [
              "inbox"
            ],
            "readOnly": true,
            "example": "email"
          }
        }
      },
      "updateWebhookContent": {
        "x-scalar-ignore": true,
        "title": "Webhook",
        "description": "Update the contents of a webhook one-time send variant.",
        "properties": {
          "body": {
            "type": "string",
            "description": "The body content of the webhook request.",
            "example": "{\"channel\":\"#marketing\",\"text\":\"One-time send sent to {{ customer.email }}\"}"
          },
          "deduplicate_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "readOnly": true,
            "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
            "example": "15:1492548073"
          },
          "headers": {
            "x-scalar-ignore": true,
            "description": "Headers you want to add or update. Names and values must be strings, with no non-ASCII characters or spaces. You can't overwrite reserved headers.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "description": "The name of the header."
                },
                "value": {
                  "type": "string",
                  "description": "The value of the header."
                }
              },
              "example": [
                {
                  "name": "X-Mailgun-Tag",
                  "value": "my-cool-tag"
                }
              ]
            }
          },
          "type": {
            "x-scalar-ignore": true,
            "description": "Channel type for a one-time send or one-time send content variant.",
            "type": "string",
            "enum": [
              "webhook"
            ],
            "readOnly": true,
            "example": "email"
          }
        }
      },
      "getContentObject": {
        "x-scalar-ignore": true,
        "properties": {
          "bcc": {
            "x-scalar-ignore": true,
            "readOnly": true,
            "description": "The blind-copy address(es) for this action.",
            "type": "string"
          },
          "body": {
            "type": "string",
            "description": "The body of the variant. You cannot modify the body if you created it with our drag-and-drop editor.",
            "example": "<strong>Hello from the API</strong>"
          },
          "body_amp": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "AMP-enabled content for your email. If a recipient's email client doesn't support AMP, they receive your `body` content instead. Make sure you're [set up to send AMP](/journeys/channels/email/layouts/amp-for-email/) first."
          },
          "cc": {
            "x-scalar-ignore": true,
            "readOnly": true,
            "description": "The carbon-copy address(es) for this action.",
            "type": "string"
          },
          "deduplicate_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "readOnly": true,
            "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
            "example": "15:1492548073"
          },
          "fake_bcc": {
            "x-scalar-ignore": true,
            "readOnly": true,
            "type": "boolean",
            "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"
          },
          "from": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The address that the message is from, relevant if the action `type` is `email`.",
            "readOnly": true,
            "example": "sentFrom@example.com"
          },
          "from_id": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The identifier of the `from` address, commonly known as the \"sender\". Use [List sender identities](/integrations/api/app/tag/sender-identities/listSenders/) to find valid IDs.",
            "example": 1
          },
          "headers": {
            "x-scalar-ignore": true,
            "description": "A JSON string containing header objects with `name` and `value`. Names and values must be strings, with no non-ASCII characters or spaces. You can't overwrite reserved headers.",
            "type": "string",
            "format": "json",
            "example": "[{\"name\":\"X-Mailgun-Tag\",\"value\":\"my-cool-tag\"},{\"name\":\"X-Custom-Header\",\"value\":\"custom-value\"}]"
          },
          "id": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The identifier of a one-time send variant—a language in a multi-language one-time send or a test in an A/B test.",
            "readOnly": true
          },
          "language": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The language variant for your message. If you don't use our [localization feature](/journeys/channels/localization/getting-started), or this is the default message, this value is an empty string.",
            "example": "fr",
            "readOnly": true
          },
          "layout": {
            "type": "string",
            "description": "The layout used for the variant, if it exists.",
            "example": "<html><body>{{ content }}</body></html>",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "The name of the variant, if it exists.",
            "readOnly": true,
            "example": "one-time send variant A"
          },
          "newsletter_id": {
            "x-scalar-ignore": true,
            "description": "The identifier for a one-time send.",
            "type": "integer",
            "example": 10
          },
          "preheader_text": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "[Also known as \"preview text\"](/journeys/channels/email/headers/custom-preheader-text/), this is the small block of text shown in an email inbox next to or underneath the subject line.\n"
          },
          "preprocessor": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "If CSS pre-processing is enabled, this key is populated with `premailer`. Note, Juice replaced Premailer as the pre-processor, but you will only see `premailer` as the value.",
            "enum": [
              "premailer"
            ],
            "readOnly": true
          },
          "recipient": {
            "x-scalar-ignore": true,
            "description": "The recipient address for an action.",
            "type": "string",
            "example": "{{customer.email}}"
          },
          "reply_to": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The address that receives replies for the message, if applicable.",
            "readOnly": true,
            "example": "replyto@example.com"
          },
          "reply_to_id": {
            "x-scalar-ignore": true,
            "type": [
              "integer",
              "null"
            ],
            "description": "The identifier for the `reply_to` address, if applicable. Use [List sender identities](/integrations/api/app/tag/sender-identities/listSenders/) to find valid IDs.",
            "example": 38
          },
          "subject": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The subject line for an `email` action.",
            "example": "Did you get that thing I sent you?"
          },
          "type": {
            "x-scalar-ignore": true,
            "description": "Channel type for a one-time send or one-time send content variant.",
            "type": "string",
            "enum": [
              "email",
              "webhook",
              "twilio",
              "push",
              "in_app",
              "inbox"
            ],
            "readOnly": true,
            "example": "email"
          }
        }
      },
      "contentObject": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "bcc": {
            "x-scalar-ignore": true,
            "readOnly": true,
            "description": "The blind-copy address(es) for this action.",
            "type": "string"
          },
          "body": {
            "type": "string",
            "description": "The body of the variant. You cannot modify the body if you created it with our drag-and-drop editor.",
            "example": "<strong>Hello from the API</strong>"
          },
          "body_amp": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "AMP-enabled content for your email. If a recipient's email client doesn't support AMP, they receive your `body` content instead. Make sure you're [set up to send AMP](/journeys/channels/email/layouts/amp-for-email/) first."
          },
          "cc": {
            "x-scalar-ignore": true,
            "readOnly": true,
            "description": "The carbon-copy address(es) for this action.",
            "type": "string"
          },
          "deduplicate_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "readOnly": true,
            "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
            "example": "15:1492548073"
          },
          "fake_bcc": {
            "x-scalar-ignore": true,
            "readOnly": true,
            "type": "boolean",
            "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"
          },
          "from": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The address that the message is from, relevant if the action `type` is `email`.",
            "readOnly": true,
            "example": "sentFrom@example.com"
          },
          "from_id": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The identifier of the `from` address, commonly known as the \"sender\". Use [List sender identities](/integrations/api/app/tag/sender-identities/listSenders/) to find valid IDs.",
            "example": 1
          },
          "id": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The identifier of a one-time send variant—a language in a multi-language one-time send or a test in an A/B test.",
            "readOnly": true
          },
          "language": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The language variant for your message. If you don't use our [localization feature](/journeys/channels/localization/getting-started), or this is the default message, this value is an empty string.",
            "example": "fr",
            "readOnly": true
          },
          "layout": {
            "type": "string",
            "description": "The layout used for the variant, if it exists.",
            "example": "<html><body>{{ content }}</body></html>",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "The name of the variant, if it exists.",
            "readOnly": true,
            "example": "one-time send variant A"
          },
          "newsletter_id": {
            "x-scalar-ignore": true,
            "description": "The identifier for a one-time send.",
            "type": "integer",
            "example": 10
          },
          "preheader_text": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "[Also known as \"preview text\"](/journeys/channels/email/headers/custom-preheader-text/), this is the small block of text shown in an email inbox next to or underneath the subject line.\n"
          },
          "preprocessor": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "If CSS pre-processing is enabled, this key is populated with `premailer`. Note, Juice replaced Premailer as the pre-processor, but you will only see `premailer` as the value.",
            "enum": [
              "premailer"
            ],
            "readOnly": true
          },
          "recipient": {
            "x-scalar-ignore": true,
            "description": "The recipient address for an action.",
            "type": "string",
            "example": "{{customer.email}}"
          },
          "reply_to": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The address that receives replies for the message, if applicable.",
            "readOnly": true,
            "example": "replyto@example.com"
          },
          "reply_to_id": {
            "x-scalar-ignore": true,
            "type": [
              "integer",
              "null"
            ],
            "description": "The identifier for the `reply_to` address, if applicable. Use [List sender identities](/integrations/api/app/tag/sender-identities/listSenders/) to find valid IDs.",
            "example": 38
          },
          "subject": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The subject line for an `email` action.",
            "example": "Did you get that thing I sent you?"
          },
          "type": {
            "x-scalar-ignore": true,
            "description": "Channel type for a one-time send or one-time send content variant.",
            "type": "string",
            "enum": [
              "email",
              "webhook",
              "twilio",
              "push",
              "in_app",
              "inbox"
            ],
            "readOnly": true,
            "example": "email"
          }
        }
      },
      "action_id": {
        "x-scalar-ignore": true,
        "description": "The identifier for an action.",
        "type": "integer",
        "readOnly": true,
        "example": 96
      },
      "campaign_id": {
        "x-scalar-ignore": true,
        "description": "The identifier for an automation.",
        "type": "integer",
        "example": 5
      },
      "message_id": {
        "x-scalar-ignore": true,
        "description": "The identifier for a delivery—the instance of a message intended for an individual recipient.",
        "type": "string",
        "readOnly": true,
        "example": "dgOq6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek="
      },
      "message_template_id": {
        "x-scalar-ignore": true,
        "description": "The identifier of the message template used to create a message.",
        "type": "integer",
        "readOnly": true,
        "deprecated": true
      },
      "recipient": {
        "x-scalar-ignore": true,
        "description": "The recipient address for an action.",
        "type": "string",
        "example": "{{customer.email}}"
      },
      "recipient_not_templated": {
        "x-scalar-ignore": true,
        "description": "The recipient address for an action.",
        "type": "string",
        "example": "test@example.com"
      },
      "subject": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The subject line for an `email` action.",
        "example": "Did you get that thing I sent you?"
      },
      "newsletter_id": {
        "x-scalar-ignore": true,
        "description": "The identifier for a one-time send.",
        "type": "integer",
        "example": 10
      },
      "content_id": {
        "x-scalar-ignore": true,
        "description": "The identifier for a message in a one-time send. One-time sends can have multiple content IDs (for multi-language messages or A/B tests).",
        "type": "integer",
        "readOnly": true,
        "example": 1
      },
      "newsletterMessageType": {
        "x-scalar-ignore": true,
        "description": "Channel type for a one-time send or one-time send content variant.",
        "type": "string",
        "enum": [
          "email",
          "webhook",
          "twilio",
          "push",
          "in_app",
          "inbox"
        ],
        "readOnly": true,
        "example": "email"
      },
      "messageType": {
        "x-scalar-ignore": true,
        "description": "The type of message or action for a delivery, automation action, or related object. Includes channels that one-time sends do not support (for example, `slack` and `whatsapp`).",
        "type": "string",
        "enum": [
          "email",
          "webhook",
          "twilio",
          "push",
          "in_app",
          "slack",
          "whatsapp",
          "live_notification"
        ],
        "readOnly": true,
        "example": "email"
      },
      "from": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The address that the message is from, relevant if the action `type` is `email`.",
        "readOnly": true,
        "example": "sentFrom@example.com"
      },
      "from_id": {
        "x-scalar-ignore": true,
        "type": "integer",
        "description": "The identifier of the `from` address, commonly known as the \"sender\". Use [List sender identities](/integrations/api/app/tag/sender-identities/listSenders/) to find valid IDs.",
        "example": 1
      },
      "reply_to": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The address that receives replies for the message, if applicable.",
        "readOnly": true,
        "example": "replyto@example.com"
      },
      "reply_to_settable": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The address that receives replies for the message, if applicable.",
        "example": "replyto@example.com"
      },
      "from_address": {
        "x-scalar-ignore": true,
        "type": "string",
        "format": "email",
        "description": "The address you want to trigger messages from, overriding the `from` field in emails triggered by the event."
      },
      "reply_to_id": {
        "x-scalar-ignore": true,
        "type": [
          "integer",
          "null"
        ],
        "description": "The identifier for the `reply_to` address, if applicable. Use [List sender identities](/integrations/api/app/tag/sender-identities/listSenders/) to find valid IDs.",
        "example": 38
      },
      "preprocessor": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "If CSS pre-processing is enabled, this key is populated with `premailer`. Note, Juice replaced Premailer as the pre-processor, but you will only see `premailer` as the value.",
        "enum": [
          "premailer"
        ],
        "readOnly": true
      },
      "cc": {
        "x-scalar-ignore": true,
        "readOnly": true,
        "description": "The carbon-copy address(es) for this action.",
        "type": "string"
      },
      "bcc": {
        "x-scalar-ignore": true,
        "readOnly": true,
        "description": "The blind-copy address(es) for this action.",
        "type": "string"
      },
      "fake_bcc": {
        "x-scalar-ignore": true,
        "readOnly": true,
        "type": "boolean",
        "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"
      },
      "preheader_text": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "[Also known as \"preview text\"](/journeys/channels/email/headers/custom-preheader-text/), this is the small block of text shown in an email inbox next to or underneath the subject line.\n"
      },
      "trigger_event_id": {
        "x-scalar-ignore": true,
        "type": [
          "string",
          "null"
        ],
        "description": "The ID of an event that triggered an automation or action."
      },
      "body_amp": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "AMP-enabled content for your email. If a recipient's email client doesn't support AMP, they receive your `body` content instead. Make sure you're [set up to send AMP](/journeys/channels/email/layouts/amp-for-email/) first."
      },
      "language": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The language variant for your message. If you don't use our [localization feature](/journeys/channels/localization/getting-started), or this is the default message, this value is an empty string.",
        "example": "fr",
        "readOnly": true
      },
      "messageObjectBase": {
        "x-scalar-ignore": true,
        "type": "object",
        "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.",
        "properties": {
          "action_id": {
            "x-scalar-ignore": true,
            "description": "The identifier for an action.",
            "type": "integer",
            "readOnly": true,
            "example": 96
          },
          "broadcast_id": {
            "oneOf": [
              {
                "x-scalar-ignore": true,
                "type": "integer",
                "description": "The identifier for a broadcast.",
                "example": 2
              },
              {
                "type": "null"
              }
            ]
          },
          "campaign_id": {
            "oneOf": [
              {
                "x-scalar-ignore": true,
                "description": "The identifier for an automation.",
                "type": "integer",
                "example": 5
              },
              {
                "type": "null"
              }
            ]
          },
          "content_id": {
            "x-scalar-ignore": true,
            "description": "The identifier for a message in a one-time send. One-time sends can have multiple content IDs (for multi-language messages or A/B tests).",
            "type": "integer",
            "readOnly": true,
            "example": 1
          },
          "created": {
            "x-scalar-ignore": true,
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date time when the referenced ID was created.",
            "example": 1552341937,
            "readOnly": true
          },
          "customer_id": {
            "x-scalar-ignore": true,
            "type": [
              "string",
              "null"
            ],
            "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.",
            "example": "42"
          },
          "customer_identifiers": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "Identifiers for the person in a response—`id`, `cio_id`, and `email`. Unset `id` or `email` values are `null`. We recommend this object over the less descriptive `customer_id`. This object doesn't include `phone`, even if your workspace uses phone numbers as an identifier; look for the person's `phone` attribute instead.",
            "required": [
              "email",
              "id",
              "cio_id"
            ],
            "properties": {
              "cio_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                "example": "a3000001"
              },
              "email": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "email",
                "description": "A person's email address, if set.",
                "example": "test@example.com"
              },
              "id": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "A person's unique ID, if set. This is the same as the `customer_id` if present.",
                "example": 2
              }
            }
          },
          "deduplicate_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "readOnly": true,
            "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
            "example": "15:1492548073"
          },
          "failure_message": {
            "type": [
              "string",
              "null"
            ],
            "description": "Explains why a message failed, if applicable."
          },
          "forgotten": {
            "type": "boolean",
            "description": "If true message contents are not retained by Customer.io."
          },
          "id": {
            "x-scalar-ignore": true,
            "description": "The identifier for a delivery—the instance of a message intended for an individual recipient.",
            "type": "string",
            "readOnly": true,
            "example": "dgOq6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek="
          },
          "message_template_id": {
            "x-scalar-ignore": true,
            "description": "The identifier of the message template used to create a message.",
            "type": "integer",
            "readOnly": true,
            "deprecated": true
          },
          "metrics": {
            "x-scalar-ignore": true,
            "type": "object",
            "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.",
            "properties": {
              "bounced": {
                "type": "integer",
                "description": "The timestamp when the message `bounced`."
              },
              "clicked": {
                "type": "integer",
                "description": "The timestamp when the message was `clicked`."
              },
              "converted": {
                "type": "integer",
                "description": "The timestamp when the message was `converted`."
              },
              "created": {
                "type": "integer",
                "description": "The timestamp when the message was `created`."
              },
              "delivered": {
                "type": "integer",
                "description": "The timestamp when the message was `delivered`."
              },
              "drafted": {
                "type": "integer",
                "description": "The timestamp when the message was `drafted`."
              },
              "dropped": {
                "type": "integer",
                "description": "The timestamp when the message was `dropped`."
              },
              "failed": {
                "type": "integer",
                "description": "The timestamp when the message `failed`."
              },
              "human_clicked": {
                "type": "integer",
                "description": "The number of `clicked` messages excluding machine clicks. This metric is reliable starting April 20, 2025. [Learn more](/messaging/metrics/analytics/#delivery-metrics)."
              },
              "human_opened": {
                "type": "integer",
                "description": "The number of `opened` messages excluding machine opens. This metric is reliable starting March 20, 2025. [Learn more](/messaging/metrics/analytics/#delivery-metrics)."
              },
              "opened": {
                "type": "integer",
                "description": "The timestamp when the message was `opened`."
              },
              "prefetch_clicked": {
                "type": "integer",
                "description": "The number of `clicked` messages attributed to machines. This metric is reliable starting April 20, 2025."
              },
              "prefetch_opened": {
                "type": "integer",
                "description": "The number of `opened` messages attributed to machines. This metric is reliable starting March 20, 2025."
              },
              "sent": {
                "type": "integer",
                "description": "The timestamp when the message was `sent`."
              },
              "spammed": {
                "type": "integer",
                "description": "The timestamp when the message was marked as spam."
              },
              "undeliverable": {
                "type": "integer",
                "description": "The timestamp when the message became `undeliverable`."
              },
              "unsubscribed": {
                "type": "integer",
                "description": "The timestamp when a person unsubscribed based on this message."
              }
            }
          },
          "newsletter_id": {
            "oneOf": [
              {
                "x-scalar-ignore": true,
                "description": "The identifier for a one-time send.",
                "type": "integer",
                "example": 10
              },
              {
                "type": "null"
              }
            ]
          },
          "parent_action_id": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).",
            "example": 1,
            "readOnly": true
          },
          "recipient": {
            "x-scalar-ignore": true,
            "description": "The recipient address for an action.",
            "type": "string",
            "example": "{{customer.email}}"
          },
          "subject": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The subject line for an `email` action.",
            "example": "Did you get that thing I sent you?"
          },
          "tracked_responses": {
            "type": "object",
            "description": "Tracked in-app survey responses, keyed by response option name. Present only when `get_tracked_responses` is `true`.",
            "additionalProperties": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "The identifier for the tracked response."
                },
                "ts": {
                  "type": "integer",
                  "description": "A unix timestamp representing when the response was tracked."
                }
              }
            },
            "example": {
              "cool-button": {
                "id": 1,
                "ts": 1715769600
              },
              "cool-button-2": {
                "id": 2,
                "ts": 1715769600
              }
            }
          },
          "trigger_event_id": {
            "x-scalar-ignore": true,
            "type": [
              "string",
              "null"
            ],
            "description": "The ID of an event that triggered an automation or action."
          }
        }
      },
      "messageObject": {
        "x-scalar-ignore": true,
        "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": {
          "action_id": 215,
          "broadcast_id": null,
          "campaign_id": 23,
          "content_id": null,
          "created": 1619137767,
          "customer_id": null,
          "deduplicate_id": "ag1q6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=:1619137768",
          "failure_message": null,
          "forgotten": false,
          "id": "ag1q6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek=",
          "metrics": {
            "delivered": 1619137768,
            "sent": 1619137768
          },
          "newsletter_id": null,
          "parent_action_id": null,
          "recipient": "person@example.com",
          "subject": "Did you get that thing I sent you?",
          "trigger_event_id": null,
          "type": "email",
          "msg_template_id": 43
        },
        "properties": {
          "action_id": {
            "x-scalar-ignore": true,
            "description": "The identifier for an action.",
            "type": "integer",
            "readOnly": true,
            "example": 96
          },
          "broadcast_id": {
            "oneOf": [
              {
                "x-scalar-ignore": true,
                "type": "integer",
                "description": "The identifier for a broadcast.",
                "example": 2
              },
              {
                "type": "null"
              }
            ]
          },
          "campaign_id": {
            "oneOf": [
              {
                "x-scalar-ignore": true,
                "description": "The identifier for an automation.",
                "type": "integer",
                "example": 5
              },
              {
                "type": "null"
              }
            ]
          },
          "content_id": {
            "x-scalar-ignore": true,
            "description": "The identifier for a message in a one-time send. One-time sends can have multiple content IDs (for multi-language messages or A/B tests).",
            "type": "integer",
            "readOnly": true,
            "example": 1
          },
          "created": {
            "x-scalar-ignore": true,
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date time when the referenced ID was created.",
            "example": 1552341937,
            "readOnly": true
          },
          "customer_id": {
            "x-scalar-ignore": true,
            "type": [
              "string",
              "null"
            ],
            "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.",
            "example": "42"
          },
          "customer_identifiers": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "Identifiers for the person in a response—`id`, `cio_id`, and `email`. Unset `id` or `email` values are `null`. We recommend this object over the less descriptive `customer_id`. This object doesn't include `phone`, even if your workspace uses phone numbers as an identifier; look for the person's `phone` attribute instead.",
            "required": [
              "email",
              "id",
              "cio_id"
            ],
            "properties": {
              "cio_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                "example": "a3000001"
              },
              "email": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "email",
                "description": "A person's email address, if set.",
                "example": "test@example.com"
              },
              "id": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "A person's unique ID, if set. This is the same as the `customer_id` if present.",
                "example": 2
              }
            }
          },
          "deduplicate_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "readOnly": true,
            "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
            "example": "15:1492548073"
          },
          "failure_message": {
            "type": [
              "string",
              "null"
            ],
            "description": "Explains why a message failed, if applicable."
          },
          "forgotten": {
            "type": "boolean",
            "description": "If true message contents are not retained by Customer.io."
          },
          "id": {
            "x-scalar-ignore": true,
            "description": "The identifier for a delivery—the instance of a message intended for an individual recipient.",
            "type": "string",
            "readOnly": true,
            "example": "dgOq6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek="
          },
          "message_template_id": {
            "x-scalar-ignore": true,
            "description": "The identifier of the message template used to create a message.",
            "type": "integer",
            "readOnly": true,
            "deprecated": true
          },
          "metrics": {
            "x-scalar-ignore": true,
            "type": "object",
            "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.",
            "properties": {
              "bounced": {
                "type": "integer",
                "description": "The timestamp when the message `bounced`."
              },
              "clicked": {
                "type": "integer",
                "description": "The timestamp when the message was `clicked`."
              },
              "converted": {
                "type": "integer",
                "description": "The timestamp when the message was `converted`."
              },
              "created": {
                "type": "integer",
                "description": "The timestamp when the message was `created`."
              },
              "delivered": {
                "type": "integer",
                "description": "The timestamp when the message was `delivered`."
              },
              "drafted": {
                "type": "integer",
                "description": "The timestamp when the message was `drafted`."
              },
              "dropped": {
                "type": "integer",
                "description": "The timestamp when the message was `dropped`."
              },
              "failed": {
                "type": "integer",
                "description": "The timestamp when the message `failed`."
              },
              "human_clicked": {
                "type": "integer",
                "description": "The number of `clicked` messages excluding machine clicks. This metric is reliable starting April 20, 2025. [Learn more](/messaging/metrics/analytics/#delivery-metrics)."
              },
              "human_opened": {
                "type": "integer",
                "description": "The number of `opened` messages excluding machine opens. This metric is reliable starting March 20, 2025. [Learn more](/messaging/metrics/analytics/#delivery-metrics)."
              },
              "opened": {
                "type": "integer",
                "description": "The timestamp when the message was `opened`."
              },
              "prefetch_clicked": {
                "type": "integer",
                "description": "The number of `clicked` messages attributed to machines. This metric is reliable starting April 20, 2025."
              },
              "prefetch_opened": {
                "type": "integer",
                "description": "The number of `opened` messages attributed to machines. This metric is reliable starting March 20, 2025."
              },
              "sent": {
                "type": "integer",
                "description": "The timestamp when the message was `sent`."
              },
              "spammed": {
                "type": "integer",
                "description": "The timestamp when the message was marked as spam."
              },
              "undeliverable": {
                "type": "integer",
                "description": "The timestamp when the message became `undeliverable`."
              },
              "unsubscribed": {
                "type": "integer",
                "description": "The timestamp when a person unsubscribed based on this message."
              }
            }
          },
          "newsletter_id": {
            "oneOf": [
              {
                "x-scalar-ignore": true,
                "description": "The identifier for a one-time send.",
                "type": "integer",
                "example": 10
              },
              {
                "type": "null"
              }
            ]
          },
          "parent_action_id": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).",
            "example": 1,
            "readOnly": true
          },
          "recipient": {
            "x-scalar-ignore": true,
            "description": "The recipient address for an action.",
            "type": "string",
            "example": "{{customer.email}}"
          },
          "subject": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The subject line for an `email` action.",
            "example": "Did you get that thing I sent you?"
          },
          "tracked_responses": {
            "type": "object",
            "description": "Tracked in-app survey responses, keyed by response option name. Present only when `get_tracked_responses` is `true`.",
            "additionalProperties": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "The identifier for the tracked response."
                },
                "ts": {
                  "type": "integer",
                  "description": "A unix timestamp representing when the response was tracked."
                }
              }
            },
            "example": {
              "cool-button": {
                "id": 1,
                "ts": 1715769600
              },
              "cool-button-2": {
                "id": 2,
                "ts": 1715769600
              }
            }
          },
          "trigger_event_id": {
            "x-scalar-ignore": true,
            "type": [
              "string",
              "null"
            ],
            "description": "The ID of an event that triggered an automation or action."
          },
          "type": {
            "x-scalar-ignore": true,
            "description": "The type of message or action for a delivery, automation action, or related object. Includes channels that one-time sends do not support (for example, `slack` and `whatsapp`).",
            "type": "string",
            "enum": [
              "email",
              "webhook",
              "twilio",
              "push",
              "in_app",
              "slack",
              "whatsapp",
              "live_notification"
            ],
            "readOnly": true,
            "example": "email"
          }
        }
      },
      "newsletterMessageObject": {
        "x-scalar-ignore": true,
        "description": "Each object is a delivery of a one-time send.",
        "properties": {
          "action_id": {
            "x-scalar-ignore": true,
            "description": "The identifier for an action.",
            "type": "integer",
            "readOnly": true,
            "example": 96
          },
          "broadcast_id": {
            "oneOf": [
              {
                "x-scalar-ignore": true,
                "type": "integer",
                "description": "The identifier for a broadcast.",
                "example": 2
              },
              {
                "type": "null"
              }
            ]
          },
          "campaign_id": {
            "oneOf": [
              {
                "x-scalar-ignore": true,
                "description": "The identifier for an automation.",
                "type": "integer",
                "example": 5
              },
              {
                "type": "null"
              }
            ]
          },
          "content_id": {
            "x-scalar-ignore": true,
            "description": "The identifier for a message in a one-time send. One-time sends can have multiple content IDs (for multi-language messages or A/B tests).",
            "type": "integer",
            "readOnly": true,
            "example": 1
          },
          "created": {
            "x-scalar-ignore": true,
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date time when the referenced ID was created.",
            "example": 1552341937,
            "readOnly": true
          },
          "customer_id": {
            "x-scalar-ignore": true,
            "type": [
              "string",
              "null"
            ],
            "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.",
            "example": "42"
          },
          "customer_identifiers": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "Identifiers for the person in a response—`id`, `cio_id`, and `email`. Unset `id` or `email` values are `null`. We recommend this object over the less descriptive `customer_id`. This object doesn't include `phone`, even if your workspace uses phone numbers as an identifier; look for the person's `phone` attribute instead.",
            "required": [
              "email",
              "id",
              "cio_id"
            ],
            "properties": {
              "cio_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                "example": "a3000001"
              },
              "email": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "email",
                "description": "A person's email address, if set.",
                "example": "test@example.com"
              },
              "id": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "A person's unique ID, if set. This is the same as the `customer_id` if present.",
                "example": 2
              }
            }
          },
          "deduplicate_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "readOnly": true,
            "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
            "example": "15:1492548073"
          },
          "failure_message": {
            "type": [
              "string",
              "null"
            ],
            "description": "Explains why a message failed, if applicable."
          },
          "forgotten": {
            "type": "boolean",
            "description": "If true message contents are not retained by Customer.io."
          },
          "id": {
            "x-scalar-ignore": true,
            "description": "The identifier for a delivery—the instance of a message intended for an individual recipient.",
            "type": "string",
            "readOnly": true,
            "example": "dgOq6QWq6QUBAAF4_CGoeVX7mFkDbRFu7ek="
          },
          "message_template_id": {
            "x-scalar-ignore": true,
            "description": "The identifier of the message template used to create a message.",
            "type": "integer",
            "readOnly": true,
            "deprecated": true
          },
          "metrics": {
            "x-scalar-ignore": true,
            "type": "object",
            "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.",
            "properties": {
              "bounced": {
                "type": "integer",
                "description": "The timestamp when the message `bounced`."
              },
              "clicked": {
                "type": "integer",
                "description": "The timestamp when the message was `clicked`."
              },
              "converted": {
                "type": "integer",
                "description": "The timestamp when the message was `converted`."
              },
              "created": {
                "type": "integer",
                "description": "The timestamp when the message was `created`."
              },
              "delivered": {
                "type": "integer",
                "description": "The timestamp when the message was `delivered`."
              },
              "drafted": {
                "type": "integer",
                "description": "The timestamp when the message was `drafted`."
              },
              "dropped": {
                "type": "integer",
                "description": "The timestamp when the message was `dropped`."
              },
              "failed": {
                "type": "integer",
                "description": "The timestamp when the message `failed`."
              },
              "human_clicked": {
                "type": "integer",
                "description": "The number of `clicked` messages excluding machine clicks. This metric is reliable starting April 20, 2025. [Learn more](/messaging/metrics/analytics/#delivery-metrics)."
              },
              "human_opened": {
                "type": "integer",
                "description": "The number of `opened` messages excluding machine opens. This metric is reliable starting March 20, 2025. [Learn more](/messaging/metrics/analytics/#delivery-metrics)."
              },
              "opened": {
                "type": "integer",
                "description": "The timestamp when the message was `opened`."
              },
              "prefetch_clicked": {
                "type": "integer",
                "description": "The number of `clicked` messages attributed to machines. This metric is reliable starting April 20, 2025."
              },
              "prefetch_opened": {
                "type": "integer",
                "description": "The number of `opened` messages attributed to machines. This metric is reliable starting March 20, 2025."
              },
              "sent": {
                "type": "integer",
                "description": "The timestamp when the message was `sent`."
              },
              "spammed": {
                "type": "integer",
                "description": "The timestamp when the message was marked as spam."
              },
              "undeliverable": {
                "type": "integer",
                "description": "The timestamp when the message became `undeliverable`."
              },
              "unsubscribed": {
                "type": "integer",
                "description": "The timestamp when a person unsubscribed based on this message."
              }
            }
          },
          "newsletter_id": {
            "oneOf": [
              {
                "x-scalar-ignore": true,
                "description": "The identifier for a one-time send.",
                "type": "integer",
                "example": 10
              },
              {
                "type": "null"
              }
            ]
          },
          "parent_action_id": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).",
            "example": 1,
            "readOnly": true
          },
          "recipient": {
            "x-scalar-ignore": true,
            "description": "The recipient address for an action.",
            "type": "string",
            "example": "{{customer.email}}"
          },
          "subject": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The subject line for an `email` action.",
            "example": "Did you get that thing I sent you?"
          },
          "tracked_responses": {
            "type": "object",
            "description": "Tracked in-app survey responses, keyed by response option name. Present only when `get_tracked_responses` is `true`.",
            "additionalProperties": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "The identifier for the tracked response."
                },
                "ts": {
                  "type": "integer",
                  "description": "A unix timestamp representing when the response was tracked."
                }
              }
            },
            "example": {
              "cool-button": {
                "id": 1,
                "ts": 1715769600
              },
              "cool-button-2": {
                "id": 2,
                "ts": 1715769600
              }
            }
          },
          "trigger_event_id": {
            "x-scalar-ignore": true,
            "type": [
              "string",
              "null"
            ],
            "description": "The ID of an event that triggered an automation or action."
          },
          "type": {
            "x-scalar-ignore": true,
            "description": "Channel type for a one-time send or one-time send content variant.",
            "type": "string",
            "enum": [
              "email",
              "webhook",
              "twilio",
              "push",
              "in_app",
              "inbox"
            ],
            "readOnly": true,
            "example": "email"
          }
        }
      },
      "webhookActionObject": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "body": {
            "type": "string",
            "description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
          },
          "created": {
            "x-scalar-ignore": true,
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date time when the referenced ID was created.",
            "example": 1552341937,
            "readOnly": true
          },
          "deduplicate_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "readOnly": true,
            "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
            "example": "15:1492548073"
          },
          "headers": {
            "x-scalar-ignore": true,
            "description": "A JSON string containing header objects with `name` and `value`. Names and values must be strings, with no non-ASCII characters or spaces. You can't overwrite reserved headers.",
            "type": "string",
            "format": "json",
            "example": "[{\"name\":\"X-Mailgun-Tag\",\"value\":\"my-cool-tag\"},{\"name\":\"X-Custom-Header\",\"value\":\"custom-value\"}]"
          },
          "layout": {
            "type": "string",
            "description": "The layout used for the action, if it exists.",
            "readOnly": true
          },
          "method": {
            "description": "The HTTP method for your webhook.",
            "type": "string",
            "enum": [
              "get",
              "post",
              "put",
              "delete",
              "patch"
            ],
            "example": "post"
          },
          "name": {
            "type": "string",
            "description": "The name of the action, if it exists.",
            "readOnly": true,
            "example": "Opening Message"
          },
          "sending_state": {
            "x-scalar-ignore": true,
            "type": "string",
            "enum": [
              "automatic",
              "draft",
              "off"
            ],
            "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
          },
          "type": {
            "type": "string",
            "description": "The type of action.",
            "enum": [
              "webhook"
            ],
            "readOnly": true
          },
          "updated": {
            "x-scalar-ignore": true,
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date time when the referenced ID was last updated.",
            "example": 1552341937,
            "readOnly": true
          },
          "url": {
            "type": "string",
            "description": "The URL to send a webhook to, applies to `webhook` type actions.",
            "example": "https://my.example.com/webhook"
          }
        }
      },
      "emailActionObject": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "bcc": {
            "x-scalar-ignore": true,
            "readOnly": true,
            "description": "The blind-copy address(es) for this action.",
            "type": "string"
          },
          "body": {
            "type": "string",
            "description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
          },
          "body_amp": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "AMP-enabled content for your email. If a recipient's email client doesn't support AMP, they receive your `body` content instead. Make sure you're [set up to send AMP](/journeys/channels/email/layouts/amp-for-email/) first."
          },
          "broadcast_id": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The identifier for a broadcast.",
            "example": 2
          },
          "cc": {
            "x-scalar-ignore": true,
            "readOnly": true,
            "description": "The carbon-copy address(es) for this action.",
            "type": "string"
          },
          "created": {
            "x-scalar-ignore": true,
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date time when the referenced ID was created.",
            "example": 1552341937,
            "readOnly": true
          },
          "deduplicate_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "readOnly": true,
            "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
            "example": "15:1492548073"
          },
          "fake_bcc": {
            "x-scalar-ignore": true,
            "readOnly": true,
            "type": "boolean",
            "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"
          },
          "from": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The address that the message is from, relevant if the action `type` is `email`.",
            "readOnly": true,
            "example": "sentFrom@example.com"
          },
          "from_id": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The identifier of the `from` address, commonly known as the \"sender\". Use [List sender identities](/integrations/api/app/tag/sender-identities/listSenders/) to find valid IDs.",
            "example": 1
          },
          "id": {
            "x-scalar-ignore": true,
            "description": "The identifier for an action.",
            "type": "integer",
            "readOnly": true,
            "example": 96
          },
          "language": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The language variant for your message. If you don't use our [localization feature](/journeys/channels/localization/getting-started), or this is the default message, this value is an empty string.",
            "example": "fr",
            "readOnly": true
          },
          "layout": {
            "type": "string",
            "description": "The layout used for the action, if it exists.",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "The name of the action, if it exists.",
            "readOnly": true,
            "example": "Opening Message"
          },
          "preheader_text": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "[Also known as \"preview text\"](/journeys/channels/email/headers/custom-preheader-text/), this is the small block of text shown in an email inbox next to or underneath the subject line.\n"
          },
          "preprocessor": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "If CSS pre-processing is enabled, this key is populated with `premailer`. Note, Juice replaced Premailer as the pre-processor, but you will only see `premailer` as the value.",
            "enum": [
              "premailer"
            ],
            "readOnly": true
          },
          "recipient": {
            "x-scalar-ignore": true,
            "description": "The recipient address for an action.",
            "type": "string",
            "example": "{{customer.email}}"
          },
          "reply_to": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The address that receives replies for the message, if applicable.",
            "readOnly": true,
            "example": "replyto@example.com"
          },
          "reply_to_id": {
            "x-scalar-ignore": true,
            "type": [
              "integer",
              "null"
            ],
            "description": "The identifier for the `reply_to` address, if applicable. Use [List sender identities](/integrations/api/app/tag/sender-identities/listSenders/) to find valid IDs.",
            "example": 38
          },
          "sending_state": {
            "x-scalar-ignore": true,
            "type": "string",
            "enum": [
              "automatic",
              "draft",
              "off"
            ],
            "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
          },
          "subject": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The subject line for an `email` action.",
            "example": "Did you get that thing I sent you?"
          },
          "type": {
            "type": "string",
            "description": "The type of action.",
            "enum": [
              "email",
              "in_app",
              "push",
              "twilio",
              "slack",
              "whatsapp"
            ],
            "readOnly": true
          },
          "updated": {
            "x-scalar-ignore": true,
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date time when the referenced ID was last updated.",
            "example": 1552341937,
            "readOnly": true
          }
        }
      },
      "updateBroadcastActionObject": {
        "x-scalar-ignore": true,
        "oneOf": [
          {
            "title": "Email / message",
            "properties": {
              "bcc": {
                "x-scalar-ignore": true,
                "readOnly": true,
                "description": "The blind-copy address(es) for this action.",
                "type": "string"
              },
              "body": {
                "type": "string",
                "description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
              },
              "body_amp": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "AMP-enabled content for your email. If a recipient's email client doesn't support AMP, they receive your `body` content instead. Make sure you're [set up to send AMP](/journeys/channels/email/layouts/amp-for-email/) first."
              },
              "broadcast_id": {
                "x-scalar-ignore": true,
                "type": "integer",
                "description": "The identifier for a broadcast.",
                "example": 2
              },
              "cc": {
                "x-scalar-ignore": true,
                "readOnly": true,
                "description": "The carbon-copy address(es) for this action.",
                "type": "string"
              },
              "created": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was created.",
                "example": 1552341937,
                "readOnly": true
              },
              "deduplicate_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "readOnly": true,
                "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
                "example": "15:1492548073"
              },
              "fake_bcc": {
                "x-scalar-ignore": true,
                "readOnly": true,
                "type": "boolean",
                "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"
              },
              "from": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The address that the message is from, relevant if the action `type` is `email`.",
                "readOnly": true,
                "example": "sentFrom@example.com"
              },
              "from_id": {
                "x-scalar-ignore": true,
                "type": "integer",
                "description": "The identifier of the `from` address, commonly known as the \"sender\". Use [List sender identities](/integrations/api/app/tag/sender-identities/listSenders/) to find valid IDs.",
                "example": 1
              },
              "headers": {
                "x-scalar-ignore": true,
                "description": "Headers you want to add or update. Names and values must be strings, with no non-ASCII characters or spaces. You can't overwrite reserved headers.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "The name of the header."
                    },
                    "value": {
                      "type": "string",
                      "description": "The value of the header."
                    }
                  },
                  "example": [
                    {
                      "name": "X-Mailgun-Tag",
                      "value": "my-cool-tag"
                    }
                  ]
                }
              },
              "id": {
                "x-scalar-ignore": true,
                "description": "The identifier for an action.",
                "type": "integer",
                "readOnly": true,
                "example": 96
              },
              "language": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The language variant for your message. If you don't use our [localization feature](/journeys/channels/localization/getting-started), or this is the default message, this value is an empty string.",
                "example": "fr",
                "readOnly": true
              },
              "layout": {
                "type": "string",
                "description": "The layout used for the action, if it exists.",
                "readOnly": true
              },
              "name": {
                "type": "string",
                "description": "The name of the action, if it exists.",
                "readOnly": true,
                "example": "Opening Message"
              },
              "preheader_text": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "[Also known as \"preview text\"](/journeys/channels/email/headers/custom-preheader-text/), this is the small block of text shown in an email inbox next to or underneath the subject line.\n"
              },
              "preprocessor": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "If CSS pre-processing is enabled, this key is populated with `premailer`. Note, Juice replaced Premailer as the pre-processor, but you will only see `premailer` as the value.",
                "enum": [
                  "premailer"
                ],
                "readOnly": true
              },
              "recipient": {
                "x-scalar-ignore": true,
                "description": "The recipient address for an action.",
                "type": "string",
                "example": "{{customer.email}}"
              },
              "reply_to": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The address that receives replies for the message, if applicable.",
                "readOnly": true,
                "example": "replyto@example.com"
              },
              "reply_to_id": {
                "x-scalar-ignore": true,
                "type": [
                  "integer",
                  "null"
                ],
                "description": "The identifier for the `reply_to` address, if applicable. Use [List sender identities](/integrations/api/app/tag/sender-identities/listSenders/) to find valid IDs.",
                "example": 38
              },
              "sending_state": {
                "x-scalar-ignore": true,
                "type": "string",
                "enum": [
                  "automatic",
                  "draft",
                  "off"
                ],
                "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
              },
              "subject": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The subject line for an `email` action.",
                "example": "Did you get that thing I sent you?"
              },
              "type": {
                "type": "string",
                "description": "The type of action.",
                "enum": [
                  "email",
                  "in_app",
                  "push",
                  "twilio",
                  "slack",
                  "whatsapp"
                ],
                "readOnly": true
              },
              "updated": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was last updated.",
                "example": 1552341937,
                "readOnly": true
              }
            }
          },
          {
            "title": "SMS / MMS",
            "properties": {
              "body": {
                "type": "string",
                "description": "The body of your SMS."
              },
              "broadcast_id": {
                "x-scalar-ignore": true,
                "type": "integer",
                "description": "The identifier for a broadcast.",
                "example": 2
              },
              "created": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was created.",
                "example": 1552341937,
                "readOnly": true
              },
              "deduplicate_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "readOnly": true,
                "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
                "example": "15:1492548073"
              },
              "id": {
                "x-scalar-ignore": true,
                "description": "The identifier for an action.",
                "type": "integer",
                "readOnly": true,
                "example": 96
              },
              "image_url": {
                "type": "string",
                "description": "The URL of the image in your SMS (MMS) message."
              },
              "language": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The language variant for your message. If you don't use our [localization feature](/journeys/channels/localization/getting-started), or this is the default message, this value is an empty string.",
                "example": "fr",
                "readOnly": true
              },
              "layout": {
                "type": "string",
                "description": "The layout used for the action, if it exists.",
                "readOnly": true
              },
              "name": {
                "type": "string",
                "description": "The name of the action.",
                "readOnly": true,
                "example": "Opening Message"
              },
              "recipient": {
                "type": "string",
                "description": "The recipient, usually an attribute you reference with Liquid like `{{customer.phone}}`. If you use Liquid, this field is blank in `GET` responses because we resolve the recipient at send time.",
                "example": ""
              },
              "sending_state": {
                "x-scalar-ignore": true,
                "type": "string",
                "enum": [
                  "automatic",
                  "draft",
                  "off"
                ],
                "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
              },
              "type": {
                "type": "string",
                "description": "For SMS/MMS messages, the `type` is always `twilio`.",
                "enum": [
                  "twilio"
                ],
                "readOnly": true
              },
              "updated": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was last updated.",
                "example": 1552341937,
                "readOnly": true
              }
            }
          },
          {
            "title": "WhatsApp",
            "properties": {
              "body": {
                "type": "string",
                "description": "A JSON string containing WhatsApp template metadata from Meta and template parameters with Liquid variables. Use `GET /v1/environments/{environment_id}/whatsapp/templates` to list templates.",
                "example": "{\"body\":\"\",\"image_url\":\"\",\"whatsapp_message_template\":{\"id\":\"12345\",\"name\":\"welcome\",\"language\":\"en_US\",\"status\":\"APPROVED\",\"components\":[...]},\"template_parameters\":{\"name\":\"welcome\",\"components\":[{\"type\":\"BODY\",\"parameters\":[{\"type\":\"text\",\"text\":\"{{customer.name}}\",\"parameter_name\":\"name\"}]}]}}"
              },
              "body_json": {
                "type": "string",
                "description": "For visual editor content (if applicable)."
              },
              "broadcast_id": {
                "x-scalar-ignore": true,
                "type": "integer",
                "description": "The identifier for a broadcast.",
                "example": 2
              },
              "created": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was created.",
                "example": 1552341937,
                "readOnly": true
              },
              "deduplicate_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "readOnly": true,
                "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
                "example": "15:1492548073"
              },
              "id": {
                "x-scalar-ignore": true,
                "description": "The identifier for an action.",
                "type": "integer",
                "readOnly": true,
                "example": 96
              },
              "language": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The language variant for your message. If you don't use our [localization feature](/journeys/channels/localization/getting-started), or this is the default message, this value is an empty string.",
                "example": "fr",
                "readOnly": true
              },
              "name": {
                "type": "string",
                "description": "The name of the action.",
                "readOnly": true,
                "example": "Welcome Message"
              },
              "recipient": {
                "type": "string",
                "description": "The recipient's phone number in E.164 format, usually referenced with Liquid like `{{customer.phone}}`. If you use Liquid, this field is blank in `GET` responses because we resolve the recipient at send time.",
                "example": ""
              },
              "send_to_unsubscribed": {
                "type": "boolean",
                "description": "Whether to send this message to unsubscribed customers."
              },
              "sender_identity_id": {
                "type": "integer",
                "description": "The ID of the WhatsApp Business phone number to send from. This corresponds to\na phone number registered in your WhatsApp Business Account and synced via\n`GET /v1/environments/{environment_id}/whatsapp/sync`.\n"
              },
              "sending_state": {
                "x-scalar-ignore": true,
                "type": "string",
                "enum": [
                  "automatic",
                  "draft",
                  "off"
                ],
                "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
              },
              "tracked": {
                "type": "boolean",
                "description": "Whether links in template parameters should be tracked.",
                "default": false
              },
              "type": {
                "type": "string",
                "description": "For WhatsApp messages sent from Customer.io using your Facebook Business Account (not Twilio), the `type` is always `whatsapp`.",
                "enum": [
                  "whatsapp"
                ],
                "readOnly": true
              },
              "updated": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was last updated.",
                "example": 1552341937,
                "readOnly": true
              }
            },
            "description": "The action object for WhatsApp messages sent from Customer.io using your Facebook Business Account (not Twilio). Messages sent through Twilio still use the `twilio` type and are treated similarly to SMS messages."
          },
          {
            "title": "Webhook",
            "properties": {
              "body": {
                "type": "string",
                "description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
              },
              "broadcast_id": {
                "x-scalar-ignore": true,
                "type": "integer",
                "description": "The identifier for a broadcast.",
                "example": 2
              },
              "created": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was created.",
                "example": 1552341937,
                "readOnly": true
              },
              "deduplicate_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "readOnly": true,
                "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
                "example": "15:1492548073"
              },
              "headers": {
                "x-scalar-ignore": true,
                "description": "A JSON string containing header objects with `name` and `value`. Names and values must be strings, with no non-ASCII characters or spaces. You can't overwrite reserved headers.",
                "type": "string",
                "format": "json",
                "example": "[{\"name\":\"X-Mailgun-Tag\",\"value\":\"my-cool-tag\"},{\"name\":\"X-Custom-Header\",\"value\":\"custom-value\"}]"
              },
              "id": {
                "x-scalar-ignore": true,
                "description": "The identifier for an action.",
                "type": "integer",
                "readOnly": true,
                "example": 96
              },
              "layout": {
                "type": "string",
                "description": "The layout used for the action, if it exists.",
                "readOnly": true
              },
              "method": {
                "description": "The HTTP method for your webhook.",
                "type": "string",
                "enum": [
                  "get",
                  "post",
                  "put",
                  "delete",
                  "patch"
                ],
                "example": "post"
              },
              "name": {
                "type": "string",
                "description": "The name of the action, if it exists.",
                "readOnly": true,
                "example": "Opening Message"
              },
              "sending_state": {
                "x-scalar-ignore": true,
                "type": "string",
                "enum": [
                  "automatic",
                  "draft",
                  "off"
                ],
                "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
              },
              "type": {
                "type": "string",
                "description": "The type of action.",
                "enum": [
                  "webhook"
                ],
                "readOnly": true
              },
              "updated": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was last updated.",
                "example": 1552341937,
                "readOnly": true
              },
              "url": {
                "type": "string",
                "description": "The URL to send a webhook to, applies to `webhook` type actions.",
                "example": "https://my.example.com/webhook"
              }
            }
          }
        ]
      },
      "broadcastActionObject": {
        "x-scalar-ignore": true,
        "oneOf": [
          {
            "title": "Email / message",
            "properties": {
              "bcc": {
                "x-scalar-ignore": true,
                "readOnly": true,
                "description": "The blind-copy address(es) for this action.",
                "type": "string"
              },
              "body": {
                "type": "string",
                "description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
              },
              "body_amp": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "AMP-enabled content for your email. If a recipient's email client doesn't support AMP, they receive your `body` content instead. Make sure you're [set up to send AMP](/journeys/channels/email/layouts/amp-for-email/) first."
              },
              "broadcast_id": {
                "x-scalar-ignore": true,
                "type": "integer",
                "description": "The identifier for a broadcast.",
                "example": 2
              },
              "cc": {
                "x-scalar-ignore": true,
                "readOnly": true,
                "description": "The carbon-copy address(es) for this action.",
                "type": "string"
              },
              "created": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was created.",
                "example": 1552341937,
                "readOnly": true
              },
              "deduplicate_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "readOnly": true,
                "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
                "example": "15:1492548073"
              },
              "fake_bcc": {
                "x-scalar-ignore": true,
                "readOnly": true,
                "type": "boolean",
                "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"
              },
              "from": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The address that the message is from, relevant if the action `type` is `email`.",
                "readOnly": true,
                "example": "sentFrom@example.com"
              },
              "from_id": {
                "x-scalar-ignore": true,
                "type": "integer",
                "description": "The identifier of the `from` address, commonly known as the \"sender\". Use [List sender identities](/integrations/api/app/tag/sender-identities/listSenders/) to find valid IDs.",
                "example": 1
              },
              "headers": {
                "x-scalar-ignore": true,
                "description": "A JSON string containing header objects with `name` and `value`. Names and values must be strings, with no non-ASCII characters or spaces. You can't overwrite reserved headers.",
                "type": "string",
                "format": "json",
                "example": "[{\"name\":\"X-Mailgun-Tag\",\"value\":\"my-cool-tag\"},{\"name\":\"X-Custom-Header\",\"value\":\"custom-value\"}]"
              },
              "id": {
                "x-scalar-ignore": true,
                "description": "The identifier for an action.",
                "type": "integer",
                "readOnly": true,
                "example": 96
              },
              "language": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The language variant for your message. If you don't use our [localization feature](/journeys/channels/localization/getting-started), or this is the default message, this value is an empty string.",
                "example": "fr",
                "readOnly": true
              },
              "layout": {
                "type": "string",
                "description": "The layout used for the action, if it exists.",
                "readOnly": true
              },
              "name": {
                "type": "string",
                "description": "The name of the action, if it exists.",
                "readOnly": true,
                "example": "Opening Message"
              },
              "preheader_text": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "[Also known as \"preview text\"](/journeys/channels/email/headers/custom-preheader-text/), this is the small block of text shown in an email inbox next to or underneath the subject line.\n"
              },
              "preprocessor": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "If CSS pre-processing is enabled, this key is populated with `premailer`. Note, Juice replaced Premailer as the pre-processor, but you will only see `premailer` as the value.",
                "enum": [
                  "premailer"
                ],
                "readOnly": true
              },
              "recipient": {
                "x-scalar-ignore": true,
                "description": "The recipient address for an action.",
                "type": "string",
                "example": "{{customer.email}}"
              },
              "reply_to": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The address that receives replies for the message, if applicable.",
                "readOnly": true,
                "example": "replyto@example.com"
              },
              "reply_to_id": {
                "x-scalar-ignore": true,
                "type": [
                  "integer",
                  "null"
                ],
                "description": "The identifier for the `reply_to` address, if applicable. Use [List sender identities](/integrations/api/app/tag/sender-identities/listSenders/) to find valid IDs.",
                "example": 38
              },
              "sending_state": {
                "x-scalar-ignore": true,
                "type": "string",
                "enum": [
                  "automatic",
                  "draft",
                  "off"
                ],
                "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
              },
              "subject": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The subject line for an `email` action.",
                "example": "Did you get that thing I sent you?"
              },
              "type": {
                "type": "string",
                "description": "The type of action.",
                "enum": [
                  "email",
                  "in_app",
                  "push",
                  "twilio",
                  "slack",
                  "whatsapp"
                ],
                "readOnly": true
              },
              "updated": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was last updated.",
                "example": 1552341937,
                "readOnly": true
              }
            }
          },
          {
            "title": "SMS / MMS",
            "properties": {
              "body": {
                "type": "string",
                "description": "The body of your SMS."
              },
              "broadcast_id": {
                "x-scalar-ignore": true,
                "type": "integer",
                "description": "The identifier for a broadcast.",
                "example": 2
              },
              "created": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was created.",
                "example": 1552341937,
                "readOnly": true
              },
              "deduplicate_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "readOnly": true,
                "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
                "example": "15:1492548073"
              },
              "id": {
                "x-scalar-ignore": true,
                "description": "The identifier for an action.",
                "type": "integer",
                "readOnly": true,
                "example": 96
              },
              "image_url": {
                "type": "string",
                "description": "The URL of the image in your SMS (MMS) message."
              },
              "language": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The language variant for your message. If you don't use our [localization feature](/journeys/channels/localization/getting-started), or this is the default message, this value is an empty string.",
                "example": "fr",
                "readOnly": true
              },
              "layout": {
                "type": "string",
                "description": "The layout used for the action, if it exists.",
                "readOnly": true
              },
              "name": {
                "type": "string",
                "description": "The name of the action.",
                "readOnly": true,
                "example": "Opening Message"
              },
              "recipient": {
                "type": "string",
                "description": "The recipient, usually an attribute you reference with Liquid like `{{customer.phone}}`. If you use Liquid, this field is blank in `GET` responses because we resolve the recipient at send time.",
                "example": ""
              },
              "sending_state": {
                "x-scalar-ignore": true,
                "type": "string",
                "enum": [
                  "automatic",
                  "draft",
                  "off"
                ],
                "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
              },
              "type": {
                "type": "string",
                "description": "For SMS/MMS messages, the `type` is always `twilio`.",
                "enum": [
                  "twilio"
                ],
                "readOnly": true
              },
              "updated": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was last updated.",
                "example": 1552341937,
                "readOnly": true
              }
            }
          },
          {
            "title": "WhatsApp",
            "properties": {
              "body": {
                "type": "string",
                "description": "A JSON string containing WhatsApp template metadata from Meta and template parameters with Liquid variables. Use `GET /v1/environments/{environment_id}/whatsapp/templates` to list templates.",
                "example": "{\"body\":\"\",\"image_url\":\"\",\"whatsapp_message_template\":{\"id\":\"12345\",\"name\":\"welcome\",\"language\":\"en_US\",\"status\":\"APPROVED\",\"components\":[...]},\"template_parameters\":{\"name\":\"welcome\",\"components\":[{\"type\":\"BODY\",\"parameters\":[{\"type\":\"text\",\"text\":\"{{customer.name}}\",\"parameter_name\":\"name\"}]}]}}"
              },
              "body_json": {
                "type": "string",
                "description": "For visual editor content (if applicable)."
              },
              "broadcast_id": {
                "x-scalar-ignore": true,
                "type": "integer",
                "description": "The identifier for a broadcast.",
                "example": 2
              },
              "created": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was created.",
                "example": 1552341937,
                "readOnly": true
              },
              "deduplicate_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "readOnly": true,
                "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
                "example": "15:1492548073"
              },
              "id": {
                "x-scalar-ignore": true,
                "description": "The identifier for an action.",
                "type": "integer",
                "readOnly": true,
                "example": 96
              },
              "language": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The language variant for your message. If you don't use our [localization feature](/journeys/channels/localization/getting-started), or this is the default message, this value is an empty string.",
                "example": "fr",
                "readOnly": true
              },
              "name": {
                "type": "string",
                "description": "The name of the action.",
                "readOnly": true,
                "example": "Welcome Message"
              },
              "recipient": {
                "type": "string",
                "description": "The recipient's phone number in E.164 format, usually referenced with Liquid like `{{customer.phone}}`. If you use Liquid, this field is blank in `GET` responses because we resolve the recipient at send time.",
                "example": ""
              },
              "send_to_unsubscribed": {
                "type": "boolean",
                "description": "Whether to send this message to unsubscribed customers."
              },
              "sender_identity_id": {
                "type": "integer",
                "description": "The ID of the WhatsApp Business phone number to send from. This corresponds to\na phone number registered in your WhatsApp Business Account and synced via\n`GET /v1/environments/{environment_id}/whatsapp/sync`.\n"
              },
              "sending_state": {
                "x-scalar-ignore": true,
                "type": "string",
                "enum": [
                  "automatic",
                  "draft",
                  "off"
                ],
                "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
              },
              "tracked": {
                "type": "boolean",
                "description": "Whether links in template parameters should be tracked.",
                "default": false
              },
              "type": {
                "type": "string",
                "description": "For WhatsApp messages sent from Customer.io using your Facebook Business Account (not Twilio), the `type` is always `whatsapp`.",
                "enum": [
                  "whatsapp"
                ],
                "readOnly": true
              },
              "updated": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was last updated.",
                "example": 1552341937,
                "readOnly": true
              }
            },
            "description": "The action object for WhatsApp messages sent from Customer.io using your Facebook Business Account (not Twilio). Messages sent through Twilio still use the `twilio` type and are treated similarly to SMS messages."
          },
          {
            "title": "Webhook",
            "properties": {
              "body": {
                "type": "string",
                "description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
              },
              "broadcast_id": {
                "x-scalar-ignore": true,
                "type": "integer",
                "description": "The identifier for a broadcast.",
                "example": 2
              },
              "created": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was created.",
                "example": 1552341937,
                "readOnly": true
              },
              "deduplicate_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "readOnly": true,
                "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
                "example": "15:1492548073"
              },
              "headers": {
                "x-scalar-ignore": true,
                "description": "A JSON string containing header objects with `name` and `value`. Names and values must be strings, with no non-ASCII characters or spaces. You can't overwrite reserved headers.",
                "type": "string",
                "format": "json",
                "example": "[{\"name\":\"X-Mailgun-Tag\",\"value\":\"my-cool-tag\"},{\"name\":\"X-Custom-Header\",\"value\":\"custom-value\"}]"
              },
              "id": {
                "x-scalar-ignore": true,
                "description": "The identifier for an action.",
                "type": "integer",
                "readOnly": true,
                "example": 96
              },
              "layout": {
                "type": "string",
                "description": "The layout used for the action, if it exists.",
                "readOnly": true
              },
              "method": {
                "description": "The HTTP method for your webhook.",
                "type": "string",
                "enum": [
                  "get",
                  "post",
                  "put",
                  "delete",
                  "patch"
                ],
                "example": "post"
              },
              "name": {
                "type": "string",
                "description": "The name of the action, if it exists.",
                "readOnly": true,
                "example": "Opening Message"
              },
              "sending_state": {
                "x-scalar-ignore": true,
                "type": "string",
                "enum": [
                  "automatic",
                  "draft",
                  "off"
                ],
                "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
              },
              "type": {
                "type": "string",
                "description": "The type of action.",
                "enum": [
                  "webhook"
                ],
                "readOnly": true
              },
              "updated": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was last updated.",
                "example": 1552341937,
                "readOnly": true
              },
              "url": {
                "type": "string",
                "description": "The URL to send a webhook to, applies to `webhook` type actions.",
                "example": "https://my.example.com/webhook"
              }
            }
          }
        ]
      },
      "updateTransactionalActionObject": {
        "x-scalar-ignore": true,
        "properties": {
          "bcc": {
            "x-scalar-ignore": true,
            "readOnly": true,
            "description": "The blind-copy address(es) for this action.",
            "type": "string"
          },
          "body": {
            "type": "string",
            "description": "The body of the transactional message. You cannot modify the body if you created it with our drag-and-drop editor."
          },
          "body_amp": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "AMP-enabled content for your email. If a recipient's email client doesn't support AMP, they receive your `body` content instead. Make sure you're [set up to send AMP](/journeys/channels/email/layouts/amp-for-email/) first."
          },
          "cc": {
            "x-scalar-ignore": true,
            "readOnly": true,
            "description": "The carbon-copy address(es) for this action.",
            "type": "string"
          },
          "created": {
            "x-scalar-ignore": true,
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date time when the referenced ID was created.",
            "example": 1552341937,
            "readOnly": true
          },
          "fake_bcc": {
            "x-scalar-ignore": true,
            "readOnly": true,
            "type": "boolean",
            "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"
          },
          "from": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The address that the message is from, relevant if the action `type` is `email`.",
            "readOnly": true,
            "example": "sentFrom@example.com"
          },
          "from_id": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The identifier of the `from` address, commonly known as the \"sender\". Use [List sender identities](/integrations/api/app/tag/sender-identities/listSenders/) to find valid IDs.",
            "example": 1
          },
          "headers": {
            "x-scalar-ignore": true,
            "description": "Headers you want to add or update. Names and values must be strings, with no non-ASCII characters or spaces. You can't overwrite reserved headers.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "description": "The name of the header."
                },
                "value": {
                  "type": "string",
                  "description": "The value of the header."
                }
              },
              "example": [
                {
                  "name": "X-Mailgun-Tag",
                  "value": "my-cool-tag"
                }
              ]
            }
          },
          "id": {
            "x-scalar-ignore": true,
            "description": "The identifier for an action.",
            "type": "integer",
            "readOnly": true,
            "example": 96
          },
          "language": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The language variant for your message. If you don't use our [localization feature](/journeys/channels/localization/getting-started), or this is the default message, this value is an empty string.",
            "example": "fr",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "The name of the transactional message.",
            "readOnly": true,
            "example": "Receipt"
          },
          "preheader_text": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "[Also known as \"preview text\"](/journeys/channels/email/headers/custom-preheader-text/), this is the small block of text shown in an email inbox next to or underneath the subject line.\n"
          },
          "preprocessor": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "If CSS pre-processing is enabled, this key is populated with `premailer`. Note, Juice replaced Premailer as the pre-processor, but you will only see `premailer` as the value.",
            "enum": [
              "premailer"
            ],
            "readOnly": true
          },
          "recipient": {
            "x-scalar-ignore": true,
            "description": "The recipient address for an action.",
            "type": "string",
            "example": "{{customer.email}}"
          },
          "reply_to": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The address that receives replies for the message, if applicable.",
            "readOnly": true,
            "example": "replyto@example.com"
          },
          "reply_to_id": {
            "x-scalar-ignore": true,
            "type": [
              "integer",
              "null"
            ],
            "description": "The identifier for the `reply_to` address, if applicable. Use [List sender identities](/integrations/api/app/tag/sender-identities/listSenders/) to find valid IDs.",
            "example": 38
          },
          "subject": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The subject line for an `email` action.",
            "example": "Did you get that thing I sent you?"
          },
          "type": {
            "type": "string",
            "description": "The type of message.",
            "enum": [
              "email",
              "push"
            ],
            "readOnly": true
          },
          "updated": {
            "x-scalar-ignore": true,
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date time when the referenced ID was last updated.",
            "example": 1552341937,
            "readOnly": true
          }
        }
      },
      "getTransactionalActionObject": {
        "x-scalar-ignore": true,
        "properties": {
          "bcc": {
            "x-scalar-ignore": true,
            "readOnly": true,
            "description": "The blind-copy address(es) for this action.",
            "type": "string"
          },
          "body": {
            "type": "string",
            "description": "The body of the transactional message. You cannot modify the body if you created it with our drag-and-drop editor."
          },
          "body_amp": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "AMP-enabled content for your email. If a recipient's email client doesn't support AMP, they receive your `body` content instead. Make sure you're [set up to send AMP](/journeys/channels/email/layouts/amp-for-email/) first."
          },
          "cc": {
            "x-scalar-ignore": true,
            "readOnly": true,
            "description": "The carbon-copy address(es) for this action.",
            "type": "string"
          },
          "created": {
            "x-scalar-ignore": true,
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date time when the referenced ID was created.",
            "example": 1552341937,
            "readOnly": true
          },
          "fake_bcc": {
            "x-scalar-ignore": true,
            "readOnly": true,
            "type": "boolean",
            "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"
          },
          "from": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The address that the message is from, relevant if the action `type` is `email`.",
            "readOnly": true,
            "example": "sentFrom@example.com"
          },
          "from_id": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The identifier of the `from` address, commonly known as the \"sender\". Use [List sender identities](/integrations/api/app/tag/sender-identities/listSenders/) to find valid IDs.",
            "example": 1
          },
          "headers": {
            "x-scalar-ignore": true,
            "description": "A JSON string containing header objects with `name` and `value`. Names and values must be strings, with no non-ASCII characters or spaces. You can't overwrite reserved headers.",
            "type": "string",
            "format": "json",
            "example": "[{\"name\":\"X-Mailgun-Tag\",\"value\":\"my-cool-tag\"},{\"name\":\"X-Custom-Header\",\"value\":\"custom-value\"}]"
          },
          "id": {
            "x-scalar-ignore": true,
            "description": "The identifier for an action.",
            "type": "integer",
            "readOnly": true,
            "example": 96
          },
          "language": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The language variant for your message. If you don't use our [localization feature](/journeys/channels/localization/getting-started), or this is the default message, this value is an empty string.",
            "example": "fr",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "The name of the transactional message.",
            "readOnly": true,
            "example": "Receipt"
          },
          "preheader_text": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "[Also known as \"preview text\"](/journeys/channels/email/headers/custom-preheader-text/), this is the small block of text shown in an email inbox next to or underneath the subject line.\n"
          },
          "preprocessor": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "If CSS pre-processing is enabled, this key is populated with `premailer`. Note, Juice replaced Premailer as the pre-processor, but you will only see `premailer` as the value.",
            "enum": [
              "premailer"
            ],
            "readOnly": true
          },
          "recipient": {
            "x-scalar-ignore": true,
            "description": "The recipient address for an action.",
            "type": "string",
            "example": "{{customer.email}}"
          },
          "reply_to": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The address that receives replies for the message, if applicable.",
            "readOnly": true,
            "example": "replyto@example.com"
          },
          "reply_to_id": {
            "x-scalar-ignore": true,
            "type": [
              "integer",
              "null"
            ],
            "description": "The identifier for the `reply_to` address, if applicable. Use [List sender identities](/integrations/api/app/tag/sender-identities/listSenders/) to find valid IDs.",
            "example": 38
          },
          "subject": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The subject line for an `email` action.",
            "example": "Did you get that thing I sent you?"
          },
          "type": {
            "type": "string",
            "description": "The type of message.",
            "enum": [
              "email",
              "push"
            ],
            "readOnly": true
          },
          "updated": {
            "x-scalar-ignore": true,
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date time when the referenced ID was last updated.",
            "example": 1552341937,
            "readOnly": true
          }
        }
      },
      "transactionalActionObject": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "bcc": {
            "x-scalar-ignore": true,
            "readOnly": true,
            "description": "The blind-copy address(es) for this action.",
            "type": "string"
          },
          "body": {
            "type": "string",
            "description": "The body of the transactional message. You cannot modify the body if you created it with our drag-and-drop editor."
          },
          "body_amp": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "AMP-enabled content for your email. If a recipient's email client doesn't support AMP, they receive your `body` content instead. Make sure you're [set up to send AMP](/journeys/channels/email/layouts/amp-for-email/) first."
          },
          "cc": {
            "x-scalar-ignore": true,
            "readOnly": true,
            "description": "The carbon-copy address(es) for this action.",
            "type": "string"
          },
          "created": {
            "x-scalar-ignore": true,
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date time when the referenced ID was created.",
            "example": 1552341937,
            "readOnly": true
          },
          "fake_bcc": {
            "x-scalar-ignore": true,
            "readOnly": true,
            "type": "boolean",
            "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"
          },
          "from": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The address that the message is from, relevant if the action `type` is `email`.",
            "readOnly": true,
            "example": "sentFrom@example.com"
          },
          "from_id": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The identifier of the `from` address, commonly known as the \"sender\". Use [List sender identities](/integrations/api/app/tag/sender-identities/listSenders/) to find valid IDs.",
            "example": 1
          },
          "id": {
            "x-scalar-ignore": true,
            "description": "The identifier for an action.",
            "type": "integer",
            "readOnly": true,
            "example": 96
          },
          "language": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The language variant for your message. If you don't use our [localization feature](/journeys/channels/localization/getting-started), or this is the default message, this value is an empty string.",
            "example": "fr",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "The name of the transactional message.",
            "readOnly": true,
            "example": "Receipt"
          },
          "preheader_text": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "[Also known as \"preview text\"](/journeys/channels/email/headers/custom-preheader-text/), this is the small block of text shown in an email inbox next to or underneath the subject line.\n"
          },
          "preprocessor": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "If CSS pre-processing is enabled, this key is populated with `premailer`. Note, Juice replaced Premailer as the pre-processor, but you will only see `premailer` as the value.",
            "enum": [
              "premailer"
            ],
            "readOnly": true
          },
          "recipient": {
            "x-scalar-ignore": true,
            "description": "The recipient address for an action.",
            "type": "string",
            "example": "{{customer.email}}"
          },
          "reply_to": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The address that receives replies for the message, if applicable.",
            "readOnly": true,
            "example": "replyto@example.com"
          },
          "reply_to_id": {
            "x-scalar-ignore": true,
            "type": [
              "integer",
              "null"
            ],
            "description": "The identifier for the `reply_to` address, if applicable. Use [List sender identities](/integrations/api/app/tag/sender-identities/listSenders/) to find valid IDs.",
            "example": 38
          },
          "subject": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The subject line for an `email` action.",
            "example": "Did you get that thing I sent you?"
          },
          "type": {
            "type": "string",
            "description": "The type of message.",
            "enum": [
              "email",
              "push"
            ],
            "readOnly": true
          },
          "updated": {
            "x-scalar-ignore": true,
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date time when the referenced ID was last updated.",
            "example": 1552341937,
            "readOnly": true
          }
        }
      },
      "parent_action_id": {
        "x-scalar-ignore": true,
        "type": "integer",
        "description": "The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).",
        "example": 1,
        "readOnly": true
      },
      "smsActionObject": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "body": {
            "type": "string",
            "description": "The body of your SMS."
          },
          "created": {
            "x-scalar-ignore": true,
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date time when the referenced ID was created.",
            "example": 1552341937,
            "readOnly": true
          },
          "deduplicate_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "readOnly": true,
            "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
            "example": "15:1492548073"
          },
          "image_url": {
            "type": "string",
            "description": "The URL of the image in your SMS (MMS) message."
          },
          "language": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The language variant for your message. If you don't use our [localization feature](/journeys/channels/localization/getting-started), or this is the default message, this value is an empty string.",
            "example": "fr",
            "readOnly": true
          },
          "layout": {
            "type": "string",
            "description": "The layout used for the action, if it exists.",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "The name of the action.",
            "readOnly": true,
            "example": "Opening Message"
          },
          "recipient": {
            "type": "string",
            "description": "The recipient, usually an attribute you reference with Liquid like `{{customer.phone}}`. If you use Liquid, this field is blank in `GET` responses because we resolve the recipient at send time.",
            "example": ""
          },
          "sending_state": {
            "x-scalar-ignore": true,
            "type": "string",
            "enum": [
              "automatic",
              "draft",
              "off"
            ],
            "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
          },
          "type": {
            "type": "string",
            "description": "For SMS/MMS messages, the `type` is always `twilio`.",
            "enum": [
              "twilio"
            ],
            "readOnly": true
          },
          "updated": {
            "x-scalar-ignore": true,
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date time when the referenced ID was last updated.",
            "example": 1552341937,
            "readOnly": true
          }
        }
      },
      "whatsAppActionObject": {
        "x-scalar-ignore": true,
        "description": "The action object for WhatsApp messages sent from Customer.io using your Facebook Business Account (not Twilio). Messages sent through Twilio still use the `twilio` type and are treated similarly to SMS messages.",
        "type": "object",
        "properties": {
          "body": {
            "type": "string",
            "description": "A JSON string containing WhatsApp template metadata from Meta and template parameters with Liquid variables. Use `GET /v1/environments/{environment_id}/whatsapp/templates` to list templates.",
            "example": "{\"body\":\"\",\"image_url\":\"\",\"whatsapp_message_template\":{\"id\":\"12345\",\"name\":\"welcome\",\"language\":\"en_US\",\"status\":\"APPROVED\",\"components\":[...]},\"template_parameters\":{\"name\":\"welcome\",\"components\":[{\"type\":\"BODY\",\"parameters\":[{\"type\":\"text\",\"text\":\"{{customer.name}}\",\"parameter_name\":\"name\"}]}]}}"
          },
          "body_json": {
            "type": "string",
            "description": "For visual editor content (if applicable)."
          },
          "created": {
            "x-scalar-ignore": true,
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date time when the referenced ID was created.",
            "example": 1552341937,
            "readOnly": true
          },
          "deduplicate_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "readOnly": true,
            "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
            "example": "15:1492548073"
          },
          "language": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The language variant for your message. If you don't use our [localization feature](/journeys/channels/localization/getting-started), or this is the default message, this value is an empty string.",
            "example": "fr",
            "readOnly": true
          },
          "name": {
            "type": "string",
            "description": "The name of the action.",
            "readOnly": true,
            "example": "Welcome Message"
          },
          "recipient": {
            "type": "string",
            "description": "The recipient's phone number in E.164 format, usually referenced with Liquid like `{{customer.phone}}`. If you use Liquid, this field is blank in `GET` responses because we resolve the recipient at send time.",
            "example": ""
          },
          "send_to_unsubscribed": {
            "type": "boolean",
            "description": "Whether to send this message to unsubscribed customers."
          },
          "sender_identity_id": {
            "type": "integer",
            "description": "The ID of the WhatsApp Business phone number to send from. This corresponds to\na phone number registered in your WhatsApp Business Account and synced via\n`GET /v1/environments/{environment_id}/whatsapp/sync`.\n"
          },
          "sending_state": {
            "x-scalar-ignore": true,
            "type": "string",
            "enum": [
              "automatic",
              "draft",
              "off"
            ],
            "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
          },
          "tracked": {
            "type": "boolean",
            "description": "Whether links in template parameters should be tracked.",
            "default": false
          },
          "type": {
            "type": "string",
            "description": "For WhatsApp messages sent from Customer.io using your Facebook Business Account (not Twilio), the `type` is always `whatsapp`.",
            "enum": [
              "whatsapp"
            ],
            "readOnly": true
          },
          "updated": {
            "x-scalar-ignore": true,
            "type": "integer",
            "format": "unix timestamp",
            "description": "The date time when the referenced ID was last updated.",
            "example": 1552341937,
            "readOnly": true
          }
        }
      },
      "updateActionObject": {
        "x-scalar-ignore": true,
        "oneOf": [
          {
            "title": "Email / message",
            "properties": {
              "bcc": {
                "x-scalar-ignore": true,
                "readOnly": true,
                "description": "The blind-copy address(es) for this action.",
                "type": "string"
              },
              "body": {
                "type": "string",
                "description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
              },
              "body_amp": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "AMP-enabled content for your email. If a recipient's email client doesn't support AMP, they receive your `body` content instead. Make sure you're [set up to send AMP](/journeys/channels/email/layouts/amp-for-email/) first."
              },
              "broadcast_id": {
                "x-scalar-ignore": true,
                "type": "integer",
                "description": "The identifier for a broadcast.",
                "example": 2
              },
              "campaign_id": {
                "x-scalar-ignore": true,
                "description": "The identifier for an automation.",
                "type": "integer",
                "example": 5
              },
              "cc": {
                "x-scalar-ignore": true,
                "readOnly": true,
                "description": "The carbon-copy address(es) for this action.",
                "type": "string"
              },
              "created": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was created.",
                "example": 1552341937,
                "readOnly": true
              },
              "deduplicate_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "readOnly": true,
                "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
                "example": "15:1492548073"
              },
              "fake_bcc": {
                "x-scalar-ignore": true,
                "readOnly": true,
                "type": "boolean",
                "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"
              },
              "from": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The address that the message is from, relevant if the action `type` is `email`.",
                "readOnly": true,
                "example": "sentFrom@example.com"
              },
              "from_id": {
                "x-scalar-ignore": true,
                "type": "integer",
                "description": "The identifier of the `from` address, commonly known as the \"sender\". Use [List sender identities](/integrations/api/app/tag/sender-identities/listSenders/) to find valid IDs.",
                "example": 1
              },
              "headers": {
                "x-scalar-ignore": true,
                "description": "Headers you want to add or update. Names and values must be strings, with no non-ASCII characters or spaces. You can't overwrite reserved headers.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "The name of the header."
                    },
                    "value": {
                      "type": "string",
                      "description": "The value of the header."
                    }
                  },
                  "example": [
                    {
                      "name": "X-Mailgun-Tag",
                      "value": "my-cool-tag"
                    }
                  ]
                }
              },
              "id": {
                "x-scalar-ignore": true,
                "description": "The identifier for an action.",
                "type": "integer",
                "readOnly": true,
                "example": 96
              },
              "language": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The language variant for your message. If you don't use our [localization feature](/journeys/channels/localization/getting-started), or this is the default message, this value is an empty string.",
                "example": "fr",
                "readOnly": true
              },
              "layout": {
                "type": "string",
                "description": "The layout used for the action, if it exists.",
                "readOnly": true
              },
              "name": {
                "type": "string",
                "description": "The name of the action, if it exists.",
                "readOnly": true,
                "example": "Opening Message"
              },
              "parent_action_id": {
                "x-scalar-ignore": true,
                "type": "integer",
                "description": "The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).",
                "example": 1,
                "readOnly": true
              },
              "preheader_text": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "[Also known as \"preview text\"](/journeys/channels/email/headers/custom-preheader-text/), this is the small block of text shown in an email inbox next to or underneath the subject line.\n"
              },
              "preprocessor": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "If CSS pre-processing is enabled, this key is populated with `premailer`. Note, Juice replaced Premailer as the pre-processor, but you will only see `premailer` as the value.",
                "enum": [
                  "premailer"
                ],
                "readOnly": true
              },
              "recipient": {
                "x-scalar-ignore": true,
                "description": "The recipient address for an action.",
                "type": "string",
                "example": "{{customer.email}}"
              },
              "reply_to": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The address that receives replies for the message, if applicable.",
                "readOnly": true,
                "example": "replyto@example.com"
              },
              "reply_to_id": {
                "x-scalar-ignore": true,
                "type": [
                  "integer",
                  "null"
                ],
                "description": "The identifier for the `reply_to` address, if applicable. Use [List sender identities](/integrations/api/app/tag/sender-identities/listSenders/) to find valid IDs.",
                "example": 38
              },
              "sending_state": {
                "x-scalar-ignore": true,
                "type": "string",
                "enum": [
                  "automatic",
                  "draft",
                  "off"
                ],
                "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
              },
              "subject": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The subject line for an `email` action.",
                "example": "Did you get that thing I sent you?"
              },
              "type": {
                "type": "string",
                "description": "The type of action.",
                "enum": [
                  "email",
                  "in_app",
                  "push",
                  "twilio",
                  "slack",
                  "whatsapp"
                ],
                "readOnly": true
              },
              "updated": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was last updated.",
                "example": 1552341937,
                "readOnly": true
              }
            }
          },
          {
            "title": "SMS/MMS",
            "properties": {
              "body": {
                "type": "string",
                "description": "The body of your SMS."
              },
              "campaign_id": {
                "x-scalar-ignore": true,
                "description": "The identifier for an automation.",
                "type": "integer",
                "example": 5
              },
              "created": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was created.",
                "example": 1552341937,
                "readOnly": true
              },
              "deduplicate_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "readOnly": true,
                "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
                "example": "15:1492548073"
              },
              "id": {
                "x-scalar-ignore": true,
                "description": "The identifier for an action.",
                "type": "integer",
                "readOnly": true,
                "example": 96
              },
              "image_url": {
                "type": "string",
                "description": "The URL of the image in your SMS (MMS) message."
              },
              "language": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The language variant for your message. If you don't use our [localization feature](/journeys/channels/localization/getting-started), or this is the default message, this value is an empty string.",
                "example": "fr",
                "readOnly": true
              },
              "layout": {
                "type": "string",
                "description": "The layout used for the action, if it exists.",
                "readOnly": true
              },
              "name": {
                "type": "string",
                "description": "The name of the action.",
                "readOnly": true,
                "example": "Opening Message"
              },
              "parent_action_id": {
                "x-scalar-ignore": true,
                "type": "integer",
                "description": "The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).",
                "example": 1,
                "readOnly": true
              },
              "recipient": {
                "type": "string",
                "description": "The recipient, usually an attribute you reference with Liquid like `{{customer.phone}}`. If you use Liquid, this field is blank in `GET` responses because we resolve the recipient at send time.",
                "example": ""
              },
              "sending_state": {
                "x-scalar-ignore": true,
                "type": "string",
                "enum": [
                  "automatic",
                  "draft",
                  "off"
                ],
                "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
              },
              "type": {
                "type": "string",
                "description": "For SMS/MMS messages, the `type` is always `twilio`.",
                "enum": [
                  "twilio"
                ],
                "readOnly": true
              },
              "updated": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was last updated.",
                "example": 1552341937,
                "readOnly": true
              }
            }
          },
          {
            "title": "WhatsApp",
            "properties": {
              "body": {
                "type": "string",
                "description": "A JSON string containing WhatsApp template metadata from Meta and template parameters with Liquid variables. Use `GET /v1/environments/{environment_id}/whatsapp/templates` to list templates.",
                "example": "{\"body\":\"\",\"image_url\":\"\",\"whatsapp_message_template\":{\"id\":\"12345\",\"name\":\"welcome\",\"language\":\"en_US\",\"status\":\"APPROVED\",\"components\":[...]},\"template_parameters\":{\"name\":\"welcome\",\"components\":[{\"type\":\"BODY\",\"parameters\":[{\"type\":\"text\",\"text\":\"{{customer.name}}\",\"parameter_name\":\"name\"}]}]}}"
              },
              "body_json": {
                "type": "string",
                "description": "For visual editor content (if applicable)."
              },
              "campaign_id": {
                "x-scalar-ignore": true,
                "description": "The identifier for an automation.",
                "type": "integer",
                "example": 5
              },
              "created": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was created.",
                "example": 1552341937,
                "readOnly": true
              },
              "deduplicate_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "readOnly": true,
                "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
                "example": "15:1492548073"
              },
              "id": {
                "x-scalar-ignore": true,
                "description": "The identifier for an action.",
                "type": "integer",
                "readOnly": true,
                "example": 96
              },
              "language": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The language variant for your message. If you don't use our [localization feature](/journeys/channels/localization/getting-started), or this is the default message, this value is an empty string.",
                "example": "fr",
                "readOnly": true
              },
              "name": {
                "type": "string",
                "description": "The name of the action.",
                "readOnly": true,
                "example": "Welcome Message"
              },
              "parent_action_id": {
                "x-scalar-ignore": true,
                "type": "integer",
                "description": "The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).",
                "example": 1,
                "readOnly": true
              },
              "recipient": {
                "type": "string",
                "description": "The recipient's phone number in E.164 format, usually referenced with Liquid like `{{customer.phone}}`. If you use Liquid, this field is blank in `GET` responses because we resolve the recipient at send time.",
                "example": ""
              },
              "send_to_unsubscribed": {
                "type": "boolean",
                "description": "Whether to send this message to unsubscribed customers."
              },
              "sender_identity_id": {
                "type": "integer",
                "description": "The ID of the WhatsApp Business phone number to send from. This corresponds to\na phone number registered in your WhatsApp Business Account and synced via\n`GET /v1/environments/{environment_id}/whatsapp/sync`.\n"
              },
              "sending_state": {
                "x-scalar-ignore": true,
                "type": "string",
                "enum": [
                  "automatic",
                  "draft",
                  "off"
                ],
                "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
              },
              "tracked": {
                "type": "boolean",
                "description": "Whether links in template parameters should be tracked.",
                "default": false
              },
              "type": {
                "type": "string",
                "description": "For WhatsApp messages sent from Customer.io using your Facebook Business Account (not Twilio), the `type` is always `whatsapp`.",
                "enum": [
                  "whatsapp"
                ],
                "readOnly": true
              },
              "updated": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was last updated.",
                "example": 1552341937,
                "readOnly": true
              }
            },
            "description": "The action object for WhatsApp messages sent from Customer.io using your Facebook Business Account (not Twilio). Messages sent through Twilio still use the `twilio` type and are treated similarly to SMS messages."
          },
          {
            "title": "Webhook",
            "properties": {
              "body": {
                "type": "string",
                "description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
              },
              "campaign_id": {
                "x-scalar-ignore": true,
                "description": "The identifier for an automation.",
                "type": "integer",
                "example": 5
              },
              "created": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was created.",
                "example": 1552341937,
                "readOnly": true
              },
              "deduplicate_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "readOnly": true,
                "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
                "example": "15:1492548073"
              },
              "headers": {
                "x-scalar-ignore": true,
                "description": "A JSON string containing header objects with `name` and `value`. Names and values must be strings, with no non-ASCII characters or spaces. You can't overwrite reserved headers.",
                "type": "string",
                "format": "json",
                "example": "[{\"name\":\"X-Mailgun-Tag\",\"value\":\"my-cool-tag\"},{\"name\":\"X-Custom-Header\",\"value\":\"custom-value\"}]"
              },
              "id": {
                "x-scalar-ignore": true,
                "description": "The identifier for an action.",
                "type": "integer",
                "readOnly": true,
                "example": 96
              },
              "layout": {
                "type": "string",
                "description": "The layout used for the action, if it exists.",
                "readOnly": true
              },
              "method": {
                "description": "The HTTP method for your webhook.",
                "type": "string",
                "enum": [
                  "get",
                  "post",
                  "put",
                  "delete",
                  "patch"
                ],
                "example": "post"
              },
              "name": {
                "type": "string",
                "description": "The name of the action, if it exists.",
                "readOnly": true,
                "example": "Opening Message"
              },
              "parent_action_id": {
                "x-scalar-ignore": true,
                "type": "integer",
                "description": "The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).",
                "example": 1,
                "readOnly": true
              },
              "sending_state": {
                "x-scalar-ignore": true,
                "type": "string",
                "enum": [
                  "automatic",
                  "draft",
                  "off"
                ],
                "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
              },
              "type": {
                "type": "string",
                "description": "The type of action.",
                "enum": [
                  "webhook"
                ],
                "readOnly": true
              },
              "updated": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was last updated.",
                "example": 1552341937,
                "readOnly": true
              },
              "url": {
                "type": "string",
                "description": "The URL to send a webhook to, applies to `webhook` type actions.",
                "example": "https://my.example.com/webhook"
              }
            }
          }
        ]
      },
      "actionObject": {
        "x-scalar-ignore": true,
        "oneOf": [
          {
            "title": "Email / message",
            "properties": {
              "bcc": {
                "x-scalar-ignore": true,
                "readOnly": true,
                "description": "The blind-copy address(es) for this action.",
                "type": "string"
              },
              "body": {
                "type": "string",
                "description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
              },
              "body_amp": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "AMP-enabled content for your email. If a recipient's email client doesn't support AMP, they receive your `body` content instead. Make sure you're [set up to send AMP](/journeys/channels/email/layouts/amp-for-email/) first."
              },
              "broadcast_id": {
                "x-scalar-ignore": true,
                "type": "integer",
                "description": "The identifier for a broadcast.",
                "example": 2
              },
              "campaign_id": {
                "x-scalar-ignore": true,
                "description": "The identifier for an automation.",
                "type": "integer",
                "example": 5
              },
              "cc": {
                "x-scalar-ignore": true,
                "readOnly": true,
                "description": "The carbon-copy address(es) for this action.",
                "type": "string"
              },
              "created": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was created.",
                "example": 1552341937,
                "readOnly": true
              },
              "deduplicate_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "readOnly": true,
                "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
                "example": "15:1492548073"
              },
              "fake_bcc": {
                "x-scalar-ignore": true,
                "readOnly": true,
                "type": "boolean",
                "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"
              },
              "from": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The address that the message is from, relevant if the action `type` is `email`.",
                "readOnly": true,
                "example": "sentFrom@example.com"
              },
              "from_id": {
                "x-scalar-ignore": true,
                "type": "integer",
                "description": "The identifier of the `from` address, commonly known as the \"sender\". Use [List sender identities](/integrations/api/app/tag/sender-identities/listSenders/) to find valid IDs.",
                "example": 1
              },
              "headers": {
                "x-scalar-ignore": true,
                "description": "A JSON string containing header objects with `name` and `value`. Names and values must be strings, with no non-ASCII characters or spaces. You can't overwrite reserved headers.",
                "type": "string",
                "format": "json",
                "example": "[{\"name\":\"X-Mailgun-Tag\",\"value\":\"my-cool-tag\"},{\"name\":\"X-Custom-Header\",\"value\":\"custom-value\"}]"
              },
              "id": {
                "x-scalar-ignore": true,
                "description": "The identifier for an action.",
                "type": "integer",
                "readOnly": true,
                "example": 96
              },
              "language": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The language variant for your message. If you don't use our [localization feature](/journeys/channels/localization/getting-started), or this is the default message, this value is an empty string.",
                "example": "fr",
                "readOnly": true
              },
              "layout": {
                "type": "string",
                "description": "The layout used for the action, if it exists.",
                "readOnly": true
              },
              "name": {
                "type": "string",
                "description": "The name of the action, if it exists.",
                "readOnly": true,
                "example": "Opening Message"
              },
              "parent_action_id": {
                "x-scalar-ignore": true,
                "type": "integer",
                "description": "The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).",
                "example": 1,
                "readOnly": true
              },
              "preheader_text": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "[Also known as \"preview text\"](/journeys/channels/email/headers/custom-preheader-text/), this is the small block of text shown in an email inbox next to or underneath the subject line.\n"
              },
              "preprocessor": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "If CSS pre-processing is enabled, this key is populated with `premailer`. Note, Juice replaced Premailer as the pre-processor, but you will only see `premailer` as the value.",
                "enum": [
                  "premailer"
                ],
                "readOnly": true
              },
              "recipient": {
                "x-scalar-ignore": true,
                "description": "The recipient address for an action.",
                "type": "string",
                "example": "{{customer.email}}"
              },
              "reply_to": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The address that receives replies for the message, if applicable.",
                "readOnly": true,
                "example": "replyto@example.com"
              },
              "reply_to_id": {
                "x-scalar-ignore": true,
                "type": [
                  "integer",
                  "null"
                ],
                "description": "The identifier for the `reply_to` address, if applicable. Use [List sender identities](/integrations/api/app/tag/sender-identities/listSenders/) to find valid IDs.",
                "example": 38
              },
              "sending_state": {
                "x-scalar-ignore": true,
                "type": "string",
                "enum": [
                  "automatic",
                  "draft",
                  "off"
                ],
                "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
              },
              "subject": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The subject line for an `email` action.",
                "example": "Did you get that thing I sent you?"
              },
              "type": {
                "type": "string",
                "description": "The type of action.",
                "enum": [
                  "email",
                  "in_app",
                  "push",
                  "twilio",
                  "slack",
                  "whatsapp"
                ],
                "readOnly": true
              },
              "updated": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was last updated.",
                "example": 1552341937,
                "readOnly": true
              }
            }
          },
          {
            "title": "SMS/MMS",
            "properties": {
              "body": {
                "type": "string",
                "description": "The body of your SMS."
              },
              "campaign_id": {
                "x-scalar-ignore": true,
                "description": "The identifier for an automation.",
                "type": "integer",
                "example": 5
              },
              "created": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was created.",
                "example": 1552341937,
                "readOnly": true
              },
              "deduplicate_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "readOnly": true,
                "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
                "example": "15:1492548073"
              },
              "id": {
                "x-scalar-ignore": true,
                "description": "The identifier for an action.",
                "type": "integer",
                "readOnly": true,
                "example": 96
              },
              "image_url": {
                "type": "string",
                "description": "The URL of the image in your SMS (MMS) message."
              },
              "language": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The language variant for your message. If you don't use our [localization feature](/journeys/channels/localization/getting-started), or this is the default message, this value is an empty string.",
                "example": "fr",
                "readOnly": true
              },
              "layout": {
                "type": "string",
                "description": "The layout used for the action, if it exists.",
                "readOnly": true
              },
              "name": {
                "type": "string",
                "description": "The name of the action.",
                "readOnly": true,
                "example": "Opening Message"
              },
              "parent_action_id": {
                "x-scalar-ignore": true,
                "type": "integer",
                "description": "The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).",
                "example": 1,
                "readOnly": true
              },
              "recipient": {
                "type": "string",
                "description": "The recipient, usually an attribute you reference with Liquid like `{{customer.phone}}`. If you use Liquid, this field is blank in `GET` responses because we resolve the recipient at send time.",
                "example": ""
              },
              "sending_state": {
                "x-scalar-ignore": true,
                "type": "string",
                "enum": [
                  "automatic",
                  "draft",
                  "off"
                ],
                "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
              },
              "type": {
                "type": "string",
                "description": "For SMS/MMS messages, the `type` is always `twilio`.",
                "enum": [
                  "twilio"
                ],
                "readOnly": true
              },
              "updated": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was last updated.",
                "example": 1552341937,
                "readOnly": true
              }
            }
          },
          {
            "title": "WhatsApp",
            "properties": {
              "body": {
                "type": "string",
                "description": "A JSON string containing WhatsApp template metadata from Meta and template parameters with Liquid variables. Use `GET /v1/environments/{environment_id}/whatsapp/templates` to list templates.",
                "example": "{\"body\":\"\",\"image_url\":\"\",\"whatsapp_message_template\":{\"id\":\"12345\",\"name\":\"welcome\",\"language\":\"en_US\",\"status\":\"APPROVED\",\"components\":[...]},\"template_parameters\":{\"name\":\"welcome\",\"components\":[{\"type\":\"BODY\",\"parameters\":[{\"type\":\"text\",\"text\":\"{{customer.name}}\",\"parameter_name\":\"name\"}]}]}}"
              },
              "body_json": {
                "type": "string",
                "description": "For visual editor content (if applicable)."
              },
              "campaign_id": {
                "x-scalar-ignore": true,
                "description": "The identifier for an automation.",
                "type": "integer",
                "example": 5
              },
              "created": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was created.",
                "example": 1552341937,
                "readOnly": true
              },
              "deduplicate_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "readOnly": true,
                "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
                "example": "15:1492548073"
              },
              "id": {
                "x-scalar-ignore": true,
                "description": "The identifier for an action.",
                "type": "integer",
                "readOnly": true,
                "example": 96
              },
              "language": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The language variant for your message. If you don't use our [localization feature](/journeys/channels/localization/getting-started), or this is the default message, this value is an empty string.",
                "example": "fr",
                "readOnly": true
              },
              "name": {
                "type": "string",
                "description": "The name of the action.",
                "readOnly": true,
                "example": "Welcome Message"
              },
              "parent_action_id": {
                "x-scalar-ignore": true,
                "type": "integer",
                "description": "The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).",
                "example": 1,
                "readOnly": true
              },
              "recipient": {
                "type": "string",
                "description": "The recipient's phone number in E.164 format, usually referenced with Liquid like `{{customer.phone}}`. If you use Liquid, this field is blank in `GET` responses because we resolve the recipient at send time.",
                "example": ""
              },
              "send_to_unsubscribed": {
                "type": "boolean",
                "description": "Whether to send this message to unsubscribed customers."
              },
              "sender_identity_id": {
                "type": "integer",
                "description": "The ID of the WhatsApp Business phone number to send from. This corresponds to\na phone number registered in your WhatsApp Business Account and synced via\n`GET /v1/environments/{environment_id}/whatsapp/sync`.\n"
              },
              "sending_state": {
                "x-scalar-ignore": true,
                "type": "string",
                "enum": [
                  "automatic",
                  "draft",
                  "off"
                ],
                "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
              },
              "tracked": {
                "type": "boolean",
                "description": "Whether links in template parameters should be tracked.",
                "default": false
              },
              "type": {
                "type": "string",
                "description": "For WhatsApp messages sent from Customer.io using your Facebook Business Account (not Twilio), the `type` is always `whatsapp`.",
                "enum": [
                  "whatsapp"
                ],
                "readOnly": true
              },
              "updated": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was last updated.",
                "example": 1552341937,
                "readOnly": true
              }
            },
            "description": "The action object for WhatsApp messages sent from Customer.io using your Facebook Business Account (not Twilio). Messages sent through Twilio still use the `twilio` type and are treated similarly to SMS messages."
          },
          {
            "title": "Webhook",
            "properties": {
              "body": {
                "type": "string",
                "description": "The body of the action. You cannot modify the body if you created it with our drag-and-drop editor."
              },
              "campaign_id": {
                "x-scalar-ignore": true,
                "description": "The identifier for an automation.",
                "type": "integer",
                "example": 5
              },
              "created": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was created.",
                "example": 1552341937,
                "readOnly": true
              },
              "deduplicate_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "readOnly": true,
                "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
                "example": "15:1492548073"
              },
              "headers": {
                "x-scalar-ignore": true,
                "description": "A JSON string containing header objects with `name` and `value`. Names and values must be strings, with no non-ASCII characters or spaces. You can't overwrite reserved headers.",
                "type": "string",
                "format": "json",
                "example": "[{\"name\":\"X-Mailgun-Tag\",\"value\":\"my-cool-tag\"},{\"name\":\"X-Custom-Header\",\"value\":\"custom-value\"}]"
              },
              "id": {
                "x-scalar-ignore": true,
                "description": "The identifier for an action.",
                "type": "integer",
                "readOnly": true,
                "example": 96
              },
              "layout": {
                "type": "string",
                "description": "The layout used for the action, if it exists.",
                "readOnly": true
              },
              "method": {
                "description": "The HTTP method for your webhook.",
                "type": "string",
                "enum": [
                  "get",
                  "post",
                  "put",
                  "delete",
                  "patch"
                ],
                "example": "post"
              },
              "name": {
                "type": "string",
                "description": "The name of the action, if it exists.",
                "readOnly": true,
                "example": "Opening Message"
              },
              "parent_action_id": {
                "x-scalar-ignore": true,
                "type": "integer",
                "description": "The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).",
                "example": 1,
                "readOnly": true
              },
              "sending_state": {
                "x-scalar-ignore": true,
                "type": "string",
                "enum": [
                  "automatic",
                  "draft",
                  "off"
                ],
                "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
              },
              "type": {
                "type": "string",
                "description": "The type of action.",
                "enum": [
                  "webhook"
                ],
                "readOnly": true
              },
              "updated": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was last updated.",
                "example": 1552341937,
                "readOnly": true
              },
              "url": {
                "type": "string",
                "description": "The URL to send a webhook to, applies to `webhook` type actions.",
                "example": "https://my.example.com/webhook"
              }
            }
          }
        ]
      },
      "sending_state": {
        "x-scalar-ignore": true,
        "type": "string",
        "enum": [
          "automatic",
          "draft",
          "off"
        ],
        "description": "Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action."
      },
      "languageVariantMetrics": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "Metrics for each language variant of a multi-language message, keyed by the variant's action ID. Only returned when you request metrics for a multi-language branch action.\n",
        "additionalProperties": {
          "type": "object",
          "properties": {
            "default": {
              "type": "boolean",
              "description": "Whether this is the default variant. Exactly one variant per multi-language message is the default, and it always has an empty `language`.",
              "example": false
            },
            "language": {
              "type": "string",
              "description": "The language code for this variant, such as `es` or `fr-CA`. Empty for the default variant—the one that people fall back to when no other variant matches their language.",
              "example": "es"
            },
            "series": {
              "x-scalar-ignore": true,
              "description": "Metrics grouped by the requested resolution. Each property is an array where each entry represents one period, such as one day.",
              "type": "object",
              "properties": {
                "attempted": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `attempted` 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."
                },
                "converted": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `converted` messages."
                },
                "created": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `created` messages."
                },
                "deferred": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `deferred` messages."
                },
                "delivered": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `delivered` messages."
                },
                "drafted": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `drafted` messages."
                },
                "failed": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `failed` messages."
                },
                "human_clicked": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `clicked` emails excluding machine clicks. This metric is reliable starting April 20, 2025. [Learn more](/messaging/metrics/analytics/#delivery-metrics)."
                },
                "human_opened": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `opened` emails excluding machine opens. This metric is reliable starting March 20, 2025. [Learn more](/messaging/metrics/analytics/#delivery-metrics)."
                },
                "link_untracked": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of emails delivered with link tracking inactive for any reason. We subtract these from the click-rate denominator."
                },
                "machine_clicked": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `clicked` emails attributed to machines—security scanners, bot user agents, known proxy services, and repetitive click patterns. This metric is reliable starting April 20, 2025. [Learn more](/messaging/metrics/analytics/#delivery-metrics)."
                },
                "open_untracked": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of emails delivered with open tracking inactive for any reason—including the consent opt-outs that `untracked` counts and messages sent with open tracking disabled. We subtract these from the open-rate denominator."
                },
                "opened": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `opened` messages."
                },
                "prefetch_opened": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `opened` emails attributed to machines. This metric is reliable starting March 20, 2025."
                },
                "replied": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of SMS/MMS messages a person replied to with a keyword. [Learn more about inbound messages](/messaging/channels/sms/inbound/get-started/)."
                },
                "sent": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of sent messages."
                },
                "spammed": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of spam complaints."
                },
                "suppressed": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `suppressed` messages."
                },
                "topic_unsubscribed": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of topic unsubscribes in a given period."
                },
                "tracking_consent_denied": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of people who denied consent to email open tracking in the period."
                },
                "tracking_consent_granted": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of people who granted consent to email open tracking in the period."
                },
                "undeliverable": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `undeliverable` messages."
                },
                "unsubscribed": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of unsubscribes attributed to the automation or message."
                },
                "untracked": {
                  "type": "array",
                  "items": {
                    "type": "integer"
                  },
                  "description": "The number of `sent` emails whose open pixel we withheld because the person opted out of open tracking. We exclude these from the open-rate denominator; click tracking is unaffected."
                }
              }
            }
          }
        }
      },
      "periodMessageMetrics": {
        "x-scalar-ignore": true,
        "description": "Metrics grouped by the requested resolution. Each property is an array where each entry represents one period, such as one day.",
        "type": "object",
        "properties": {
          "attempted": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "The number of `attempted` 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."
          },
          "converted": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "The number of `converted` messages."
          },
          "created": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "The number of `created` messages."
          },
          "deferred": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "The number of `deferred` messages."
          },
          "delivered": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "The number of `delivered` messages."
          },
          "drafted": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "The number of `drafted` messages."
          },
          "failed": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "The number of `failed` messages."
          },
          "human_clicked": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "The number of `clicked` emails excluding machine clicks. This metric is reliable starting April 20, 2025. [Learn more](/messaging/metrics/analytics/#delivery-metrics)."
          },
          "human_opened": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "The number of `opened` emails excluding machine opens. This metric is reliable starting March 20, 2025. [Learn more](/messaging/metrics/analytics/#delivery-metrics)."
          },
          "link_untracked": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "The number of emails delivered with link tracking inactive for any reason. We subtract these from the click-rate denominator."
          },
          "machine_clicked": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "The number of `clicked` emails attributed to machines—security scanners, bot user agents, known proxy services, and repetitive click patterns. This metric is reliable starting April 20, 2025. [Learn more](/messaging/metrics/analytics/#delivery-metrics)."
          },
          "open_untracked": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "The number of emails delivered with open tracking inactive for any reason—including the consent opt-outs that `untracked` counts and messages sent with open tracking disabled. We subtract these from the open-rate denominator."
          },
          "opened": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "The number of `opened` messages."
          },
          "prefetch_opened": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "The number of `opened` emails attributed to machines. This metric is reliable starting March 20, 2025."
          },
          "replied": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "The number of SMS/MMS messages a person replied to with a keyword. [Learn more about inbound messages](/messaging/channels/sms/inbound/get-started/)."
          },
          "sent": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "The number of sent messages."
          },
          "spammed": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "The number of spam complaints."
          },
          "suppressed": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "The number of `suppressed` messages."
          },
          "topic_unsubscribed": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "The number of topic unsubscribes in a given period."
          },
          "tracking_consent_denied": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "The number of people who denied consent to email open tracking in the period."
          },
          "tracking_consent_granted": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "The number of people who granted consent to email open tracking in the period."
          },
          "undeliverable": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "The number of `undeliverable` messages."
          },
          "unsubscribed": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "The number of unsubscribes attributed to the automation or message."
          },
          "untracked": {
            "type": "array",
            "items": {
              "type": "integer"
            },
            "description": "The number of `sent` emails whose open pixel we withheld because the person opted out of open tracking. We exclude these from the open-rate denominator; click tracking is unaffected."
          }
        }
      },
      "webhookMetrics": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "2xx": {
            "type": "integer",
            "description": "The number of 2xx responses."
          },
          "3xx": {
            "type": "integer",
            "description": "The number of 3xx responses."
          },
          "4xx": {
            "type": "integer",
            "description": "The number of 4xx responses."
          },
          "5xx": {
            "type": "integer",
            "description": "The number of 5xx responses."
          }
        }
      },
      "messageMetrics": {
        "x-scalar-ignore": true,
        "type": "object",
        "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.",
        "properties": {
          "bounced": {
            "type": "integer",
            "description": "The timestamp when the message `bounced`."
          },
          "clicked": {
            "type": "integer",
            "description": "The timestamp when the message was `clicked`."
          },
          "converted": {
            "type": "integer",
            "description": "The timestamp when the message was `converted`."
          },
          "created": {
            "type": "integer",
            "description": "The timestamp when the message was `created`."
          },
          "delivered": {
            "type": "integer",
            "description": "The timestamp when the message was `delivered`."
          },
          "drafted": {
            "type": "integer",
            "description": "The timestamp when the message was `drafted`."
          },
          "dropped": {
            "type": "integer",
            "description": "The timestamp when the message was `dropped`."
          },
          "failed": {
            "type": "integer",
            "description": "The timestamp when the message `failed`."
          },
          "human_clicked": {
            "type": "integer",
            "description": "The number of `clicked` messages excluding machine clicks. This metric is reliable starting April 20, 2025. [Learn more](/messaging/metrics/analytics/#delivery-metrics)."
          },
          "human_opened": {
            "type": "integer",
            "description": "The number of `opened` messages excluding machine opens. This metric is reliable starting March 20, 2025. [Learn more](/messaging/metrics/analytics/#delivery-metrics)."
          },
          "opened": {
            "type": "integer",
            "description": "The timestamp when the message was `opened`."
          },
          "prefetch_clicked": {
            "type": "integer",
            "description": "The number of `clicked` messages attributed to machines. This metric is reliable starting April 20, 2025."
          },
          "prefetch_opened": {
            "type": "integer",
            "description": "The number of `opened` messages attributed to machines. This metric is reliable starting March 20, 2025."
          },
          "sent": {
            "type": "integer",
            "description": "The timestamp when the message was `sent`."
          },
          "spammed": {
            "type": "integer",
            "description": "The timestamp when the message was marked as spam."
          },
          "undeliverable": {
            "type": "integer",
            "description": "The timestamp when the message became `undeliverable`."
          },
          "unsubscribed": {
            "type": "integer",
            "description": "The timestamp when a person unsubscribed based on this message."
          }
        }
      },
      "messageTotalMetrics": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "Total metrics over the lifespan of the requested item.",
        "properties": {
          "bounced": {
            "type": "integer",
            "description": "The number of `bounced` messages."
          },
          "clicked": {
            "type": "integer",
            "description": "The number of `clicked` messages."
          },
          "converted": {
            "type": "integer",
            "description": "The number of `converted` messages."
          },
          "created": {
            "type": "integer",
            "description": "The number of `created` messages."
          },
          "delivered": {
            "type": "integer",
            "description": "The number of `delivered` messages."
          },
          "drafted": {
            "type": "integer",
            "description": "The number of `drafted` messages."
          },
          "dropped": {
            "type": "integer",
            "description": "The number of `dropped` messages."
          },
          "failed": {
            "type": "integer",
            "description": "The number of `failed` messages."
          },
          "opened": {
            "type": "integer",
            "description": "The number of `opened` messages"
          },
          "sent": {
            "type": "integer",
            "description": "The number of `sent` messages"
          },
          "spammed": {
            "type": "integer",
            "description": "The number of messages marked as spam."
          },
          "undeliverable": {
            "type": "integer",
            "description": "The number of `undeliverable` messages."
          },
          "unsubscribed": {
            "type": "integer",
            "description": "The number of unsubscribes attributed to messages."
          }
        }
      },
      "linkMetrics": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "link": {
            "type": "object",
            "properties": {
              "href": {
                "type": "string",
                "description": "The link destination—a URL, mailto, etc.",
                "example": "https://docs.customer.io"
              },
              "id": {
                "type": "integer",
                "description": "The ID of the link.",
                "example": 1234
              }
            }
          },
          "metric": {
            "type": "object",
            "description": "Contains metrics for the link.",
            "properties": {
              "series": {
                "type": "object",
                "properties": {
                  "clicked": {
                    "type": "array",
                    "description": "An array of results from oldest to newest, where each result indicates a period.",
                    "items": {
                      "type": "integer"
                    },
                    "example": [
                      1,
                      3,
                      5,
                      7
                    ]
                  },
                  "human_clicked": {
                    "type": "array",
                    "description": "An array of human click counts (clicks excluding machine clicks) from oldest to newest, where each result indicates a period. This metric is reliable starting April 20, 2025. [Learn more](/messaging/metrics/analytics/#delivery-metrics).",
                    "items": {
                      "type": "integer"
                    },
                    "example": [
                      1,
                      2,
                      3,
                      4
                    ]
                  },
                  "machine_clicked": {
                    "type": "array",
                    "description": "An array of machine click counts (clicks attributed to bots or prefetching) from oldest to newest, where each result indicates a period. This metric is reliable starting April 20, 2025. [Learn more](/messaging/metrics/analytics/#delivery-metrics).",
                    "items": {
                      "type": "integer"
                    },
                    "example": [
                      0,
                      1,
                      1,
                      2
                    ]
                  }
                }
              }
            }
          }
        }
      },
      "campaignObject": {
        "x-scalar-ignore": true,
        "type": "object",
        "oneOf": [
          {
            "title": "Segment",
            "type": "object",
            "properties": {
              "actions": {
                "x-scalar-ignore": true,
                "type": "array",
                "description": "An array of actions contained within the automation.",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "The identifier for the action.",
                      "example": 259
                    },
                    "type": {
                      "type": "string",
                      "description": "The action type.",
                      "example": "email"
                    }
                  }
                }
              },
              "active": {
                "x-scalar-ignore": true,
                "type": "boolean",
                "description": "If true, the automation is active and can still send messages."
              },
              "created": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was created.",
                "example": 1552341937,
                "readOnly": true
              },
              "deduplicate_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "readOnly": true,
                "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
                "example": "15:1492548073"
              },
              "description": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The description of the automation, if one was set.",
                "example": "Sends a welcome series to new trial signups."
              },
              "filter_segment_ids": {
                "x-scalar-ignore": true,
                "description": "A list of segments used in the automation filter, returned if the automation audience was filtered on one or more segments.",
                "type": "array",
                "items": {
                  "type": "integer"
                },
                "example": [
                  21,
                  42
                ]
              },
              "first_started": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date and time when you first started the automation and it first became eligible to be triggered.",
                "example": 1552341937
              },
              "id": {
                "x-scalar-ignore": true,
                "description": "The identifier for an automation.",
                "type": "integer",
                "example": 5
              },
              "msg_templates": {
                "type": "array",
                "deprecated": true,
                "description": "Indicates the message templates used in this automation.",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "The identifier for the template."
                    },
                    "type": {
                      "type": "string",
                      "description": "The message type the template represents.",
                      "enum": [
                        "email",
                        "sms",
                        "push",
                        "slack"
                      ]
                    }
                  }
                }
              },
              "name": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The name of the automation.",
                "readOnly": true
              },
              "state": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The status of the automation.",
                "enum": [
                  "running",
                  "draft",
                  "stopped"
                ]
              },
              "tags": {
                "x-scalar-ignore": true,
                "type": "array",
                "description": "An array of tags you set on this automation.",
                "items": {
                  "type": "string"
                },
                "example": [
                  "new",
                  "welcome"
                ]
              },
              "trigger_segment_ids": {
                "description": "A list of segments used in the automation trigger, returned if the automation trigger included one or more segment conditions.",
                "type": "array",
                "items": {
                  "type": "integer"
                },
                "example": [
                  90
                ]
              },
              "type": {
                "type": "string",
                "deprecated": true,
                "description": "The type of automation trigger. **Sunsetting on March 30, 2025**",
                "enum": [
                  "segment"
                ]
              },
              "updated": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was last updated.",
                "example": 1552341937,
                "readOnly": true
              }
            }
          },
          {
            "title": "Event",
            "type": "object",
            "properties": {
              "actions": {
                "x-scalar-ignore": true,
                "type": "array",
                "description": "An array of actions contained within the automation.",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "The identifier for the action.",
                      "example": 259
                    },
                    "type": {
                      "type": "string",
                      "description": "The action type.",
                      "example": "email"
                    }
                  }
                }
              },
              "active": {
                "x-scalar-ignore": true,
                "type": "boolean",
                "description": "If true, the automation is active and can still send messages."
              },
              "created": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was created.",
                "example": 1552341937,
                "readOnly": true
              },
              "deduplicate_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "readOnly": true,
                "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
                "example": "15:1492548073"
              },
              "description": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The description of the automation, if one was set.",
                "example": "Sends a welcome series to new trial signups."
              },
              "event_name": {
                "description": "The name of the event. How you reference the event in automations or segments.",
                "type": "string"
              },
              "filter_segment_ids": {
                "x-scalar-ignore": true,
                "description": "A list of segments used in the automation filter, returned if the automation audience was filtered on one or more segments.",
                "type": "array",
                "items": {
                  "type": "integer"
                },
                "example": [
                  21,
                  42
                ]
              },
              "first_started": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date and time when you first started the automation and it first became eligible to be triggered.",
                "example": 1552341937
              },
              "id": {
                "x-scalar-ignore": true,
                "description": "The identifier for an automation.",
                "type": "integer",
                "example": 5
              },
              "name": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The name of the automation.",
                "readOnly": true
              },
              "state": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The status of the automation.",
                "enum": [
                  "running",
                  "draft",
                  "stopped"
                ]
              },
              "tags": {
                "x-scalar-ignore": true,
                "type": "array",
                "description": "An array of tags you set on this automation.",
                "items": {
                  "type": "string"
                },
                "example": [
                  "new",
                  "welcome"
                ]
              },
              "type": {
                "type": "string",
                "deprecated": true,
                "description": "The type of automation trigger. **Sunsetting on March 30, 2025**",
                "enum": [
                  "event"
                ]
              },
              "updated": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was last updated.",
                "example": 1552341937,
                "readOnly": true
              }
            }
          },
          {
            "title": "Form",
            "type": "object",
            "properties": {
              "actions": {
                "x-scalar-ignore": true,
                "type": "array",
                "description": "An array of actions contained within the automation.",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "The identifier for the action.",
                      "example": 259
                    },
                    "type": {
                      "type": "string",
                      "description": "The action type.",
                      "example": "email"
                    }
                  }
                }
              },
              "active": {
                "x-scalar-ignore": true,
                "type": "boolean",
                "description": "If true, the automation is active and can still send messages."
              },
              "created": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was created.",
                "example": 1552341937,
                "readOnly": true
              },
              "deduplicate_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "readOnly": true,
                "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
                "example": "15:1492548073"
              },
              "description": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The description of the automation, if one was set.",
                "example": "Sends a welcome series to new trial signups."
              },
              "filter_segment_ids": {
                "x-scalar-ignore": true,
                "description": "A list of segments used in the automation filter, returned if the automation audience was filtered on one or more segments.",
                "type": "array",
                "items": {
                  "type": "integer"
                },
                "example": [
                  21,
                  42
                ]
              },
              "first_started": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date and time when you first started the automation and it first became eligible to be triggered.",
                "example": 1552341937
              },
              "id": {
                "x-scalar-ignore": true,
                "description": "The identifier for an automation.",
                "type": "integer",
                "example": 5
              },
              "name": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The name of the automation.",
                "readOnly": true
              },
              "state": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The status of the automation.",
                "enum": [
                  "running",
                  "draft",
                  "stopped"
                ]
              },
              "tags": {
                "x-scalar-ignore": true,
                "type": "array",
                "description": "An array of tags you set on this automation.",
                "items": {
                  "type": "string"
                },
                "example": [
                  "new",
                  "welcome"
                ]
              },
              "type": {
                "type": "string",
                "deprecated": true,
                "description": "The type of automation trigger. **Sunsetting on March 30, 2025**",
                "enum": [
                  "form"
                ]
              },
              "updated": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was last updated.",
                "example": 1552341937,
                "readOnly": true
              }
            }
          },
          {
            "title": "Date",
            "type": "object",
            "properties": {
              "actions": {
                "x-scalar-ignore": true,
                "type": "array",
                "description": "An array of actions contained within the automation.",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "The identifier for the action.",
                      "example": 259
                    },
                    "type": {
                      "type": "string",
                      "description": "The action type.",
                      "example": "email"
                    }
                  }
                }
              },
              "active": {
                "x-scalar-ignore": true,
                "type": "boolean",
                "description": "If true, the automation is active and can still send messages."
              },
              "created": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was created.",
                "example": 1552341937,
                "readOnly": true
              },
              "date_attribute": {
                "description": "The attribute on people's profiles you use to configure the date of the automation trigger.",
                "type": "string"
              },
              "deduplicate_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "readOnly": true,
                "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
                "example": "15:1492548073"
              },
              "description": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The description of the automation, if one was set.",
                "example": "Sends a welcome series to new trial signups."
              },
              "filter_segment_ids": {
                "x-scalar-ignore": true,
                "description": "A list of segments used in the automation filter, returned if the automation audience was filtered on one or more segments.",
                "type": "array",
                "items": {
                  "type": "integer"
                },
                "example": [
                  21,
                  42
                ]
              },
              "first_started": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date and time when you first started the automation and it first became eligible to be triggered.",
                "example": 1552341937
              },
              "frequency": {
                "description": "How often a person will receive this automation based on the date specified in the automation trigger.",
                "type": "string",
                "enum": [
                  "once",
                  "monthly",
                  "yearly"
                ]
              },
              "id": {
                "x-scalar-ignore": true,
                "description": "The identifier for an automation.",
                "type": "integer",
                "example": 5
              },
              "name": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The name of the automation.",
                "readOnly": true
              },
              "start_hour": {
                "description": "The hour you set the automation to trigger. Follows the 24-hour clock.",
                "type": "integer"
              },
              "start_minutes": {
                "description": "The minutes you set the automation to trigger. Follows the 24-hour clock.",
                "type": "integer"
              },
              "state": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The status of the automation.",
                "enum": [
                  "running",
                  "draft",
                  "stopped"
                ]
              },
              "tags": {
                "x-scalar-ignore": true,
                "type": "array",
                "description": "An array of tags you set on this automation.",
                "items": {
                  "type": "string"
                },
                "example": [
                  "new",
                  "welcome"
                ]
              },
              "timezone": {
                "description": "The time zone you set to configure the date of the automation trigger.",
                "type": "string",
                "example": "America/Chicago"
              },
              "type": {
                "type": "string",
                "deprecated": true,
                "description": "The type of automation trigger. **Sunsetting on March 30, 2025**",
                "enum": [
                  "date"
                ]
              },
              "updated": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was last updated.",
                "example": 1552341937,
                "readOnly": true
              },
              "use_customer_timezone": {
                "description": "If you chose \"the user's time zone\" while configuring the date of the automation trigger, this is `true`. Otherwise, you set a specific time zone so it's `false`.",
                "type": "boolean"
              }
            }
          },
          {
            "title": "Relationship",
            "type": "object",
            "properties": {
              "actions": {
                "x-scalar-ignore": true,
                "type": "array",
                "description": "An array of actions contained within the automation.",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "The identifier for the action.",
                      "example": 259
                    },
                    "type": {
                      "type": "string",
                      "description": "The action type.",
                      "example": "email"
                    }
                  }
                }
              },
              "active": {
                "x-scalar-ignore": true,
                "type": "boolean",
                "description": "If true, the automation is active and can still send messages."
              },
              "audience": {
                "description": "Defines the people who will start a journey in your automation.",
                "type": "object",
                "properties": {
                  "person_filters": {
                    "description": "Returns the profile attributes you filtered the audience by, if any. Only applies to `type 1`, \"Certain people in the object\".",
                    "type": "object",
                    "example": "{\"and\":[{\"attribute\":{\"field\":\"title\",\"operator\":\"eq\",\"value\":\"asdca\"}}]}"
                  },
                  "relationship_filters": {
                    "description": "Returns the relationship attributes you filtered the audience by, if any. Only applies to `type 1`, \"Certain people in the object\".",
                    "type": "object",
                    "example": "{\"and\":[{\"relationship_attribute\":{\"type_id\":1,\"field\":\"trig\",\"operator\":\"eq\",\"value\":\"asd\"}}]}"
                  },
                  "type": {
                    "description": "The selected audience type. `0` means person added to object; `1` can mean every or certain people in the object. Filters appear only for subset audiences.",
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 1
                  }
                }
              },
              "created": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was created.",
                "example": 1552341937,
                "readOnly": true
              },
              "deduplicate_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "readOnly": true,
                "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
                "example": "15:1492548073"
              },
              "description": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The description of the automation, if one was set.",
                "example": "Sends a welcome series to new trial signups."
              },
              "filter_object_attributes": {
                "x-scalar-ignore": true,
                "description": "A list of object attributes used in the automation filter, returned if the automation audience was filtered on one or more object attributes.",
                "type": "string",
                "example": "{\"and\":[{\"object_attribute\":{\"type_id\":1,\"field\":\"name\",\"operator\":\"eq\",\"value\":\"sfa\"}},{\"object_attribute\":{\"type_id\":1,\"field\":\"renewal_date\",\"operator\":\"eq\",\"value\":\"sdfs\"}}]}"
              },
              "filter_relationship_attributes": {
                "x-scalar-ignore": true,
                "description": "A list of relationship attributes used in the automation filter, returned if the automation audience was filtered on one or more relationship attributes.",
                "type": "string",
                "example": "{\"and\":[{\"relationship_attribute\":{\"type_id\":1,\"field\":\"email\",\"operator\":\"eq\",\"value\":\"dscs@test.com\"}},{\"relationship_attribute\":{\"type_id\":1,\"field\":\"trig\",\"operator\":\"eq\",\"value\":\"false\"}}]}"
              },
              "filter_segment_ids": {
                "x-scalar-ignore": true,
                "description": "A list of segments used in the automation filter, returned if the automation audience was filtered on one or more segments.",
                "type": "array",
                "items": {
                  "type": "integer"
                },
                "example": [
                  21,
                  42
                ]
              },
              "first_started": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date and time when you first started the automation and it first became eligible to be triggered.",
                "example": 1552341937
              },
              "id": {
                "x-scalar-ignore": true,
                "description": "The identifier for an automation.",
                "type": "integer",
                "example": 5
              },
              "name": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The name of the automation.",
                "readOnly": true
              },
              "object_type_id": {
                "x-scalar-ignore": true,
                "description": "The object type ID of the trigger.",
                "type": "integer"
              },
              "relationship_attribute_triggers": {
                "description": "A list of relationship attributes used to trigger the automation.",
                "type": "object",
                "example": "{\"and\":[{\"relationship_attribute\":{\"type_id\":1,\"field\":\"trig\",\"operator\":\"eq\",\"value\":\"true\"}}]}"
              },
              "state": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The status of the automation.",
                "enum": [
                  "running",
                  "draft",
                  "stopped"
                ]
              },
              "tags": {
                "x-scalar-ignore": true,
                "type": "array",
                "description": "An array of tags you set on this automation.",
                "items": {
                  "type": "string"
                },
                "example": [
                  "new",
                  "welcome"
                ]
              },
              "type": {
                "type": "string",
                "deprecated": true,
                "description": "The type of automation trigger. **Sunsetting on March 30, 2025**",
                "enum": [
                  "relationship"
                ]
              },
              "updated": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was last updated.",
                "example": 1552341937,
                "readOnly": true
              }
            }
          },
          {
            "title": "Object",
            "type": "object",
            "properties": {
              "actions": {
                "x-scalar-ignore": true,
                "type": "array",
                "description": "An array of actions contained within the automation.",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "The identifier for the action.",
                      "example": 259
                    },
                    "type": {
                      "type": "string",
                      "description": "The action type.",
                      "example": "email"
                    }
                  }
                }
              },
              "active": {
                "x-scalar-ignore": true,
                "type": "boolean",
                "description": "If true, the automation is active and can still send messages."
              },
              "audience": {
                "description": "Defines the people who will start a journey in your automation.",
                "type": "object",
                "properties": {
                  "person_filters": {
                    "description": "Returns the profile attributes you filtered the audience by, if any. Only applies to `type 1`, \"Certain people in the object\".",
                    "type": "object",
                    "example": "{\"and\":[{\"attribute\":{\"field\":\"title\",\"operator\":\"eq\",\"value\":\"asdca\"}}]}"
                  },
                  "relationship_filters": {
                    "description": "Returns the relationship attributes you filtered the audience by, if any. Only applies to `type 1`, \"Certain people in the object\".",
                    "type": "object",
                    "example": "{\"and\":[{\"relationship_attribute\":{\"type_id\":1,\"field\":\"trig\",\"operator\":\"eq\",\"value\":\"asd\"}}]}"
                  },
                  "type": {
                    "description": "The type of audience selected. \"Every person in the object\" is `1`. \"Certain people in the object\" is also `1`. \"Certain people\" will always have one or more audience filters (see below). \"Every person\" will never have an audience filter.",
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 1
                  }
                }
              },
              "created": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was created.",
                "example": 1552341937,
                "readOnly": true
              },
              "deduplicate_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "readOnly": true,
                "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
                "example": "15:1492548073"
              },
              "description": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The description of the automation, if one was set.",
                "example": "Sends a welcome series to new trial signups."
              },
              "filter_object_attributes": {
                "x-scalar-ignore": true,
                "description": "A list of object attributes used in the automation filter, returned if the automation audience was filtered on one or more object attributes.",
                "type": "string",
                "example": "{\"and\":[{\"object_attribute\":{\"type_id\":1,\"field\":\"name\",\"operator\":\"eq\",\"value\":\"sfa\"}},{\"object_attribute\":{\"type_id\":1,\"field\":\"renewal_date\",\"operator\":\"eq\",\"value\":\"sdfs\"}}]}"
              },
              "filter_relationship_attributes": {
                "x-scalar-ignore": true,
                "description": "A list of relationship attributes used in the automation filter, returned if the automation audience was filtered on one or more relationship attributes.",
                "type": "string",
                "example": "{\"and\":[{\"relationship_attribute\":{\"type_id\":1,\"field\":\"email\",\"operator\":\"eq\",\"value\":\"dscs@test.com\"}},{\"relationship_attribute\":{\"type_id\":1,\"field\":\"trig\",\"operator\":\"eq\",\"value\":\"false\"}}]}"
              },
              "filter_segment_ids": {
                "x-scalar-ignore": true,
                "description": "A list of segments used in the automation filter, returned if the automation audience was filtered on one or more segments.",
                "type": "array",
                "items": {
                  "type": "integer"
                },
                "example": [
                  21,
                  42
                ]
              },
              "first_started": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date and time when you first started the automation and it first became eligible to be triggered.",
                "example": 1552341937
              },
              "id": {
                "x-scalar-ignore": true,
                "description": "The identifier for an automation.",
                "type": "integer",
                "example": 5
              },
              "name": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The name of the automation.",
                "readOnly": true
              },
              "object_attribute_triggers": {
                "description": "A list of object attributes used to trigger the automation.",
                "type": "object",
                "example": "{\"and\":[{\"object_attribute\":{\"type_id\":1,\"field\":\"name\",\"operator\":\"eq\",\"value\":\"sfa\"}},{\"object_attribute\":{\"type_id\":1,\"field\":\"renewal_date\",\"operator\":\"eq\",\"value\":\"sdfs\"}}]}"
              },
              "object_type_id": {
                "x-scalar-ignore": true,
                "description": "The object type ID of the trigger.",
                "type": "integer"
              },
              "state": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The status of the automation.",
                "enum": [
                  "running",
                  "draft",
                  "stopped"
                ]
              },
              "tags": {
                "x-scalar-ignore": true,
                "type": "array",
                "description": "An array of tags you set on this automation.",
                "items": {
                  "type": "string"
                },
                "example": [
                  "new",
                  "welcome"
                ]
              },
              "type": {
                "type": "string",
                "deprecated": true,
                "description": "The type of automation trigger. **Sunsetting on March 30, 2025**",
                "enum": [
                  "object"
                ]
              },
              "updated": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was last updated.",
                "example": 1552341937,
                "readOnly": true
              }
            }
          },
          {
            "title": "Webhook",
            "type": "object",
            "properties": {
              "actions": {
                "x-scalar-ignore": true,
                "type": "array",
                "description": "An array of actions contained within the automation.",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "The identifier for the action.",
                      "example": 259
                    },
                    "type": {
                      "type": "string",
                      "description": "The action type.",
                      "example": "email"
                    }
                  }
                }
              },
              "active": {
                "x-scalar-ignore": true,
                "type": "boolean",
                "description": "If true, the automation is active and can still send messages."
              },
              "created": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was created.",
                "example": 1552341937,
                "readOnly": true
              },
              "deduplicate_id": {
                "x-scalar-ignore": true,
                "type": "string",
                "readOnly": true,
                "description": "An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.",
                "example": "15:1492548073"
              },
              "description": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The description of the automation, if one was set.",
                "example": "Sends a welcome series to new trial signups."
              },
              "first_started": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date and time when you first started the automation and it first became eligible to be triggered.",
                "example": 1552341937
              },
              "id": {
                "x-scalar-ignore": true,
                "description": "The identifier for an automation.",
                "type": "integer",
                "example": 5
              },
              "name": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The name of the automation.",
                "readOnly": true
              },
              "state": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The status of the automation.",
                "enum": [
                  "running",
                  "draft",
                  "stopped"
                ]
              },
              "tags": {
                "x-scalar-ignore": true,
                "type": "array",
                "description": "An array of tags you set on this automation.",
                "items": {
                  "type": "string"
                },
                "example": [
                  "new",
                  "welcome"
                ]
              },
              "type": {
                "type": "string",
                "deprecated": true,
                "description": "The type of automation trigger. **Sunsetting on March 30, 2025**",
                "enum": [
                  "webhook"
                ]
              },
              "updated": {
                "x-scalar-ignore": true,
                "type": "integer",
                "format": "unix timestamp",
                "description": "The date time when the referenced ID was last updated.",
                "example": 1552341937,
                "readOnly": true
              },
              "webhook_id": {
                "description": "The ID of the webhook trigger generated by Customer.io.",
                "type": "integer"
              }
            }
          }
        ]
      },
      "esp_suppression": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "category": {
            "type": "string",
            "description": "The reason the addresses are suppressed.",
            "enum": [
              "bounces",
              "spam"
            ],
            "example": "bounces"
          },
          "suppressions": {
            "type": "array",
            "description": "The addresses suppressed in this category.",
            "items": {
              "type": "object",
              "properties": {
                "created": {
                  "type": "integer",
                  "format": "Unix timestamp",
                  "description": "The timestamp (in seconds), when the ESP suppressed the address.",
                  "example": 1650895738
                },
                "email": {
                  "type": "string",
                  "description": "The email address that the ESP suppressed.",
                  "example": "bounced.person@example.com"
                },
                "reason": {
                  "type": "string",
                  "description": "The reason for the suppression, as [recorded by Mailgun](https://documentation.mailgun.com/en/latest/api-suppressions.html).",
                  "example": "Uploaded manually via api.customer.io"
                },
                "status": {
                  "type": "string",
                  "description": "The status code for the suppression, as [recorded by mailgun](https://documentation.mailgun.com/en/latest/api-suppressions.html). This is normally `550`.",
                  "example": "550"
                }
              }
            }
          }
        }
      },
      "pushTitle": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The title of your push notification."
      },
      "pushBody": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The body of your push notification."
      },
      "pushLink": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "A deep link (to a page in your app), or a link to a web page."
      },
      "pushImage": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The URL of an HTTPS image that you want to use for your message."
      },
      "customAndroidProps": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "Properties supported specifically by Android on FCM.",
        "properties": {
          "body_loc_arg": {
            "type": "string",
            "description": "Variable string values used in place of the format specifiers in `body_loc_key` to localize the body text to the user's current localization. See Formatting and Styling for more information."
          },
          "body_loc_key": {
            "type": "string",
            "description": "String resource key used to localize the body text. See Android [String resources](https://developer.android.com/guide/topics/resources/string-resource/)."
          },
          "click_action": {
            "type": "string",
            "description": "The action that occurs when a user taps on the notification. Launches an activity with a matching intent filter when a person taps the notification."
          },
          "color": {
            "type": "string",
            "description": "The notification's icon color in `#rrggbb` format."
          },
          "icon": {
            "type": "string",
            "description": "Sets the notification icon to `myicon` for drawable resource `myicon`. If you don't send this key, FCM displays the launcher icon from your app manifest."
          },
          "sound": {
            "type": "string",
            "description": "The sound that plays when the device receives the notification. Supports `\"default\"` or the filename of a sound resource bundled in your app. Sound files must reside in `/res/raw/`."
          },
          "tag": {
            "type": "string",
            "description": "An identifier you use to replace an existing notification. If a notification with the same tag is already showing, the new one replaces it. Leave it empty to create a new notification each time."
          },
          "title_loc_arg": {
            "type": "string",
            "description": "Variable string values used in place of the format specifiers in `title_loc_key` to localize the title text to the user's current localization. See Formatting and Styling for more information."
          },
          "title_loc_key": {
            "type": "string",
            "description": "String resource key used to localize the title text. See Android [String resources](https://developer.android.com/guide/topics/resources/string-resource/)."
          }
        }
      },
      "allAndroidProps": {
        "x-scalar-ignore": true,
        "properties": {
          "body": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The body of your push notification."
          },
          "body_loc_arg": {
            "type": "string",
            "description": "Variable string values used in place of the format specifiers in `body_loc_key` to localize the body text to the user's current localization. See Formatting and Styling for more information."
          },
          "body_loc_key": {
            "type": "string",
            "description": "String resource key used to localize the body text. See Android [String resources](https://developer.android.com/guide/topics/resources/string-resource/)."
          },
          "click_action": {
            "type": "string",
            "description": "The action that occurs when a user taps on the notification. Launches an activity with a matching intent filter when a person taps the notification."
          },
          "color": {
            "type": "string",
            "description": "The notification's icon color in `#rrggbb` format."
          },
          "icon": {
            "type": "string",
            "description": "Sets the notification icon to `myicon` for drawable resource `myicon`. If you don't send this key, FCM displays the launcher icon from your app manifest."
          },
          "sound": {
            "type": "string",
            "description": "The sound that plays when the device receives the notification. Supports `\"default\"` or the filename of a sound resource bundled in your app. Sound files must reside in `/res/raw/`."
          },
          "tag": {
            "type": "string",
            "description": "An identifier you use to replace an existing notification. If a notification with the same tag is already showing, the new one replaces it. Leave it empty to create a new notification each time."
          },
          "title": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The title of your push notification."
          },
          "title_loc_arg": {
            "type": "string",
            "description": "Variable string values used in place of the format specifiers in `title_loc_key` to localize the title text to the user's current localization. See Formatting and Styling for more information."
          },
          "title_loc_key": {
            "type": "string",
            "description": "String resource key used to localize the title text. See Android [String resources](https://developer.android.com/guide/topics/resources/string-resource/)."
          }
        },
        "description": "Properties supported specifically by Android on FCM."
      },
      "fcmBasicPush": {
        "x-scalar-ignore": true,
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "object",
            "description": "The parent object for all custom push payloads.",
            "required": [
              "notification"
            ],
            "properties": {
              "notification": {
                "type": "object",
                "required": [
                  "body"
                ],
                "description": "Contains properties interpreted by the SDK except for the `link`.",
                "properties": {
                  "body": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The body of your push notification."
                  },
                  "image": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The URL of an HTTPS image that you want to use for your message."
                  },
                  "title": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The title of your push notification."
                  }
                }
              },
              "data": {
                "type": "object",
                "description": "Contains the `link` property (interpreted by the SDK) and additional properties that you want to pass to your app.",
                "properties": {
                  "link": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "A deep link (to a page in your app), or a link to a web page."
                  }
                }
              }
            }
          }
        }
      },
      "fcmAndroidWithSdk": {
        "x-scalar-ignore": true,
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "description": "The parent object for all push payloads.",
            "oneOf": [
              {
                "title": "Data object only",
                "type": "object",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "type": "object",
                    "description": "Contains all properties interpreted by the SDK.",
                    "properties": {
                      "body": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The body of your push notification."
                      },
                      "image": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The URL of an HTTPS image that you want to use for your message."
                      },
                      "link": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "A deep link (to a page in your app), or a link to a web page."
                      },
                      "title": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The title of your push notification."
                      }
                    }
                  },
                  "android": {
                    "type": "object",
                    "description": "Contains properties that are **not** interpreted by the SDK but are defined by FCM. You need to write your own code to handle these Android push features.",
                    "properties": {
                      "notification": {
                        "x-scalar-ignore": true,
                        "type": "object",
                        "description": "Properties supported specifically by Android on FCM.",
                        "properties": {
                          "body_loc_arg": {
                            "type": "string",
                            "description": "Variable string values used in place of the format specifiers in `body_loc_key` to localize the body text to the user's current localization. See Formatting and Styling for more information."
                          },
                          "body_loc_key": {
                            "type": "string",
                            "description": "String resource key used to localize the body text. See Android [String resources](https://developer.android.com/guide/topics/resources/string-resource/)."
                          },
                          "click_action": {
                            "type": "string",
                            "description": "The action that occurs when a user taps on the notification. Launches an activity with a matching intent filter when a person taps the notification."
                          },
                          "color": {
                            "type": "string",
                            "description": "The notification's icon color in `#rrggbb` format."
                          },
                          "icon": {
                            "type": "string",
                            "description": "Sets the notification icon to `myicon` for drawable resource `myicon`. If you don't send this key, FCM displays the launcher icon from your app manifest."
                          },
                          "sound": {
                            "type": "string",
                            "description": "The sound that plays when the device receives the notification. Supports `\"default\"` or the filename of a sound resource bundled in your app. Sound files must reside in `/res/raw/`."
                          },
                          "tag": {
                            "type": "string",
                            "description": "An identifier you use to replace an existing notification. If a notification with the same tag is already showing, the new one replaces it. Leave it empty to create a new notification each time."
                          },
                          "title_loc_arg": {
                            "type": "string",
                            "description": "Variable string values used in place of the format specifiers in `title_loc_key` to localize the title text to the user's current localization. See Formatting and Styling for more information."
                          },
                          "title_loc_key": {
                            "type": "string",
                            "description": "String resource key used to localize the title text. See Android [String resources](https://developer.android.com/guide/topics/resources/string-resource/)."
                          }
                        }
                      }
                    }
                  }
                }
              },
              {
                "title": "Notification and data object",
                "type": "object",
                "required": [
                  "notification"
                ],
                "properties": {
                  "notification": {
                    "type": "object",
                    "description": "Contains properties interpreted by the SDK except for the `link`.",
                    "properties": {
                      "body": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The body of your push notification."
                      },
                      "image": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The URL of an HTTPS image that you want to use for your message."
                      },
                      "title": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The title of your push notification."
                      }
                    }
                  },
                  "android": {
                    "type": "object",
                    "description": "Contains properties that are **not** interpreted by the SDK but are defined by FCM. You need to write your own code to handle these Android push features.",
                    "properties": {
                      "notification": {
                        "x-scalar-ignore": true,
                        "type": "object",
                        "description": "Properties supported specifically by Android on FCM.",
                        "properties": {
                          "body_loc_arg": {
                            "type": "string",
                            "description": "Variable string values used in place of the format specifiers in `body_loc_key` to localize the body text to the user's current localization. See Formatting and Styling for more information."
                          },
                          "body_loc_key": {
                            "type": "string",
                            "description": "String resource key used to localize the body text. See Android [String resources](https://developer.android.com/guide/topics/resources/string-resource/)."
                          },
                          "click_action": {
                            "type": "string",
                            "description": "The action that occurs when a user taps on the notification. Launches an activity with a matching intent filter when a person taps the notification."
                          },
                          "color": {
                            "type": "string",
                            "description": "The notification's icon color in `#rrggbb` format."
                          },
                          "icon": {
                            "type": "string",
                            "description": "Sets the notification icon to `myicon` for drawable resource `myicon`. If you don't send this key, FCM displays the launcher icon from your app manifest."
                          },
                          "sound": {
                            "type": "string",
                            "description": "The sound that plays when the device receives the notification. Supports `\"default\"` or the filename of a sound resource bundled in your app. Sound files must reside in `/res/raw/`."
                          },
                          "tag": {
                            "type": "string",
                            "description": "An identifier you use to replace an existing notification. If a notification with the same tag is already showing, the new one replaces it. Leave it empty to create a new notification each time."
                          },
                          "title_loc_arg": {
                            "type": "string",
                            "description": "Variable string values used in place of the format specifiers in `title_loc_key` to localize the title text to the user's current localization. See Formatting and Styling for more information."
                          },
                          "title_loc_key": {
                            "type": "string",
                            "description": "String resource key used to localize the title text. See Android [String resources](https://developer.android.com/guide/topics/resources/string-resource/)."
                          }
                        }
                      }
                    }
                  },
                  "data": {
                    "type": "object",
                    "description": "Contains the `link` property (interpreted by the SDK) and additional properties that you want to pass to your app.",
                    "properties": {
                      "link": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "A deep link (to a page in your app), or a link to a web page."
                      }
                    }
                  }
                }
              }
            ]
          }
        }
      },
      "fcmAndroidWithoutSdk": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "A custom push payload for Android devices.",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "object",
            "description": "The parent object for Android custom push payloads.",
            "properties": {
              "android": {
                "type": "object",
                "description": "Contains custom push options for your notification.",
                "properties": {
                  "notification": {
                    "x-scalar-ignore": true,
                    "type": "object",
                    "description": "Properties supported specifically by Android on FCM.",
                    "properties": {
                      "body_loc_arg": {
                        "type": "string",
                        "description": "Variable string values used in place of the format specifiers in `body_loc_key` to localize the body text to the user's current localization. See Formatting and Styling for more information."
                      },
                      "body_loc_key": {
                        "type": "string",
                        "description": "String resource key used to localize the body text. See Android [String resources](https://developer.android.com/guide/topics/resources/string-resource/)."
                      },
                      "click_action": {
                        "type": "string",
                        "description": "The action that occurs when a user taps on the notification. Launches an activity with a matching intent filter when a person taps the notification."
                      },
                      "color": {
                        "type": "string",
                        "description": "The notification's icon color in `#rrggbb` format."
                      },
                      "icon": {
                        "type": "string",
                        "description": "Sets the notification icon to `myicon` for drawable resource `myicon`. If you don't send this key, FCM displays the launcher icon from your app manifest."
                      },
                      "sound": {
                        "type": "string",
                        "description": "The sound that plays when the device receives the notification. Supports `\"default\"` or the filename of a sound resource bundled in your app. Sound files must reside in `/res/raw/`."
                      },
                      "tag": {
                        "type": "string",
                        "description": "An identifier you use to replace an existing notification. If a notification with the same tag is already showing, the new one replaces it. Leave it empty to create a new notification each time."
                      },
                      "title_loc_arg": {
                        "type": "string",
                        "description": "Variable string values used in place of the format specifiers in `title_loc_key` to localize the title text to the user's current localization. See Formatting and Styling for more information."
                      },
                      "title_loc_key": {
                        "type": "string",
                        "description": "String resource key used to localize the title text. See Android [String resources](https://developer.android.com/guide/topics/resources/string-resource/)."
                      }
                    }
                  }
                }
              },
              "data": {
                "type": "object",
                "description": "Contains key-value pairs that your app interprets.",
                "additionalProperties": {
                  "x-additionalPropertiesName": "Attachment Names",
                  "x-doNotRender": true,
                  "type": "string"
                }
              },
              "notification": {
                "type": "object",
                "description": "Contains the push body and title.",
                "properties": {
                  "body": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The body of your push notification."
                  },
                  "title": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The title of your push notification."
                  }
                }
              }
            }
          }
        }
      },
      "fcmAndroid": {
        "x-scalar-ignore": true,
        "oneOf": [
          {
            "title": "SDK Integration",
            "type": "object",
            "required": [
              "message"
            ],
            "properties": {
              "message": {
                "x-scalar-ignore": true,
                "type": "object",
                "required": [
                  "message"
                ],
                "properties": {
                  "message": {
                    "description": "The parent object for all push payloads.",
                    "oneOf": [
                      {
                        "title": "Data object only",
                        "type": "object",
                        "required": [
                          "data"
                        ],
                        "properties": {
                          "data": {
                            "type": "object",
                            "description": "Contains all properties interpreted by the SDK.",
                            "properties": {
                              "body": {
                                "x-scalar-ignore": true,
                                "type": "string",
                                "description": "The body of your push notification."
                              },
                              "image": {
                                "x-scalar-ignore": true,
                                "type": "string",
                                "description": "The URL of an HTTPS image that you want to use for your message."
                              },
                              "link": {
                                "x-scalar-ignore": true,
                                "type": "string",
                                "description": "A deep link (to a page in your app), or a link to a web page."
                              },
                              "title": {
                                "x-scalar-ignore": true,
                                "type": "string",
                                "description": "The title of your push notification."
                              }
                            }
                          },
                          "android": {
                            "type": "object",
                            "description": "Contains properties that are **not** interpreted by the SDK but are defined by FCM. You need to write your own code to handle these Android push features.",
                            "properties": {
                              "notification": {
                                "x-scalar-ignore": true,
                                "type": "object",
                                "description": "Properties supported specifically by Android on FCM.",
                                "properties": {
                                  "body_loc_arg": {
                                    "type": "string",
                                    "description": "Variable string values used in place of the format specifiers in `body_loc_key` to localize the body text to the user's current localization. See Formatting and Styling for more information."
                                  },
                                  "body_loc_key": {
                                    "type": "string",
                                    "description": "String resource key used to localize the body text. See Android [String resources](https://developer.android.com/guide/topics/resources/string-resource/)."
                                  },
                                  "click_action": {
                                    "type": "string",
                                    "description": "The action that occurs when a user taps on the notification. Launches an activity with a matching intent filter when a person taps the notification."
                                  },
                                  "color": {
                                    "type": "string",
                                    "description": "The notification's icon color in `#rrggbb` format."
                                  },
                                  "icon": {
                                    "type": "string",
                                    "description": "Sets the notification icon to `myicon` for drawable resource `myicon`. If you don't send this key, FCM displays the launcher icon from your app manifest."
                                  },
                                  "sound": {
                                    "type": "string",
                                    "description": "The sound that plays when the device receives the notification. Supports `\"default\"` or the filename of a sound resource bundled in your app. Sound files must reside in `/res/raw/`."
                                  },
                                  "tag": {
                                    "type": "string",
                                    "description": "An identifier you use to replace an existing notification. If a notification with the same tag is already showing, the new one replaces it. Leave it empty to create a new notification each time."
                                  },
                                  "title_loc_arg": {
                                    "type": "string",
                                    "description": "Variable string values used in place of the format specifiers in `title_loc_key` to localize the title text to the user's current localization. See Formatting and Styling for more information."
                                  },
                                  "title_loc_key": {
                                    "type": "string",
                                    "description": "String resource key used to localize the title text. See Android [String resources](https://developer.android.com/guide/topics/resources/string-resource/)."
                                  }
                                }
                              }
                            }
                          }
                        }
                      },
                      {
                        "title": "Notification and data object",
                        "type": "object",
                        "required": [
                          "notification"
                        ],
                        "properties": {
                          "notification": {
                            "type": "object",
                            "description": "Contains properties interpreted by the SDK except for the `link`.",
                            "properties": {
                              "body": {
                                "x-scalar-ignore": true,
                                "type": "string",
                                "description": "The body of your push notification."
                              },
                              "image": {
                                "x-scalar-ignore": true,
                                "type": "string",
                                "description": "The URL of an HTTPS image that you want to use for your message."
                              },
                              "title": {
                                "x-scalar-ignore": true,
                                "type": "string",
                                "description": "The title of your push notification."
                              }
                            }
                          },
                          "android": {
                            "type": "object",
                            "description": "Contains properties that are **not** interpreted by the SDK but are defined by FCM. You need to write your own code to handle these Android push features.",
                            "properties": {
                              "notification": {
                                "x-scalar-ignore": true,
                                "type": "object",
                                "description": "Properties supported specifically by Android on FCM.",
                                "properties": {
                                  "body_loc_arg": {
                                    "type": "string",
                                    "description": "Variable string values used in place of the format specifiers in `body_loc_key` to localize the body text to the user's current localization. See Formatting and Styling for more information."
                                  },
                                  "body_loc_key": {
                                    "type": "string",
                                    "description": "String resource key used to localize the body text. See Android [String resources](https://developer.android.com/guide/topics/resources/string-resource/)."
                                  },
                                  "click_action": {
                                    "type": "string",
                                    "description": "The action that occurs when a user taps on the notification. Launches an activity with a matching intent filter when a person taps the notification."
                                  },
                                  "color": {
                                    "type": "string",
                                    "description": "The notification's icon color in `#rrggbb` format."
                                  },
                                  "icon": {
                                    "type": "string",
                                    "description": "Sets the notification icon to `myicon` for drawable resource `myicon`. If you don't send this key, FCM displays the launcher icon from your app manifest."
                                  },
                                  "sound": {
                                    "type": "string",
                                    "description": "The sound that plays when the device receives the notification. Supports `\"default\"` or the filename of a sound resource bundled in your app. Sound files must reside in `/res/raw/`."
                                  },
                                  "tag": {
                                    "type": "string",
                                    "description": "An identifier you use to replace an existing notification. If a notification with the same tag is already showing, the new one replaces it. Leave it empty to create a new notification each time."
                                  },
                                  "title_loc_arg": {
                                    "type": "string",
                                    "description": "Variable string values used in place of the format specifiers in `title_loc_key` to localize the title text to the user's current localization. See Formatting and Styling for more information."
                                  },
                                  "title_loc_key": {
                                    "type": "string",
                                    "description": "String resource key used to localize the title text. See Android [String resources](https://developer.android.com/guide/topics/resources/string-resource/)."
                                  }
                                }
                              }
                            }
                          },
                          "data": {
                            "type": "object",
                            "description": "Contains the `link` property (interpreted by the SDK) and additional properties that you want to pass to your app.",
                            "properties": {
                              "link": {
                                "x-scalar-ignore": true,
                                "type": "string",
                                "description": "A deep link (to a page in your app), or a link to a web page."
                              }
                            }
                          }
                        }
                      }
                    ]
                  }
                }
              }
            }
          },
          {
            "title": "Custom Integration",
            "type": "object",
            "required": [
              "message"
            ],
            "properties": {
              "message": {
                "x-scalar-ignore": true,
                "type": "object",
                "description": "A custom push payload for Android devices.",
                "required": [
                  "message"
                ],
                "properties": {
                  "message": {
                    "type": "object",
                    "description": "The parent object for Android custom push payloads.",
                    "properties": {
                      "android": {
                        "type": "object",
                        "description": "Contains custom push options for your notification.",
                        "properties": {
                          "notification": {
                            "x-scalar-ignore": true,
                            "type": "object",
                            "description": "Properties supported specifically by Android on FCM.",
                            "properties": {
                              "body_loc_arg": {
                                "type": "string",
                                "description": "Variable string values used in place of the format specifiers in `body_loc_key` to localize the body text to the user's current localization. See Formatting and Styling for more information."
                              },
                              "body_loc_key": {
                                "type": "string",
                                "description": "String resource key used to localize the body text. See Android [String resources](https://developer.android.com/guide/topics/resources/string-resource/)."
                              },
                              "click_action": {
                                "type": "string",
                                "description": "The action that occurs when a user taps on the notification. Launches an activity with a matching intent filter when a person taps the notification."
                              },
                              "color": {
                                "type": "string",
                                "description": "The notification's icon color in `#rrggbb` format."
                              },
                              "icon": {
                                "type": "string",
                                "description": "Sets the notification icon to `myicon` for drawable resource `myicon`. If you don't send this key, FCM displays the launcher icon from your app manifest."
                              },
                              "sound": {
                                "type": "string",
                                "description": "The sound that plays when the device receives the notification. Supports `\"default\"` or the filename of a sound resource bundled in your app. Sound files must reside in `/res/raw/`."
                              },
                              "tag": {
                                "type": "string",
                                "description": "An identifier you use to replace an existing notification. If a notification with the same tag is already showing, the new one replaces it. Leave it empty to create a new notification each time."
                              },
                              "title_loc_arg": {
                                "type": "string",
                                "description": "Variable string values used in place of the format specifiers in `title_loc_key` to localize the title text to the user's current localization. See Formatting and Styling for more information."
                              },
                              "title_loc_key": {
                                "type": "string",
                                "description": "String resource key used to localize the title text. See Android [String resources](https://developer.android.com/guide/topics/resources/string-resource/)."
                              }
                            }
                          }
                        }
                      },
                      "data": {
                        "type": "object",
                        "description": "Contains key-value pairs that your app interprets.",
                        "additionalProperties": {
                          "x-additionalPropertiesName": "Attachment Names",
                          "x-doNotRender": true,
                          "type": "string"
                        }
                      },
                      "notification": {
                        "type": "object",
                        "description": "Contains the push body and title.",
                        "properties": {
                          "body": {
                            "x-scalar-ignore": true,
                            "type": "string",
                            "description": "The body of your push notification."
                          },
                          "title": {
                            "x-scalar-ignore": true,
                            "type": "string",
                            "description": "The title of your push notification."
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        ]
      },
      "iosSharedOptions": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "A push payload intended for an iOS device.",
        "properties": {
          "alert": {
            "oneOf": [
              {
                "title": "Simple alert",
                "type": "string",
                "description": "A simple alert message."
              },
              {
                "title": "Complex alert",
                "type": "object",
                "properties": {
                  "body": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The body of your push notification."
                  },
                  "launch-image": {
                    "description": "The name of the launch image file you want to display. When a user launches your app, they'll see this image or storyboard file rather than your app’s normal launch image.",
                    "type": "string"
                  },
                  "loc-args": {
                    "type": "array",
                    "description": "An array of replacement value strings for variables in your message text. Each %@ character in the loc-key is replaced by a value from this array, in the order they appear in the message body.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "loc-key": {
                    "description": "The key for a localized message string in your app’s Localizable.strings file.",
                    "type": "string"
                  },
                  "subtitle": {
                    "description": "Additional information that explains the purpose of the notification.",
                    "type": "string"
                  },
                  "subtitle-loc-args": {
                    "type": "array",
                    "description": "An array of replacement value strings for variables in your subtitle string. Each %@ character in the subtitle-loc-key is replaced by a value from this array, in the order they appear in the subtitle string.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "subtitle-loc-key": {
                    "description": "The key for a localized subtitle string in your app’s Localizable.strings file.",
                    "type": "string"
                  },
                  "title": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The title of your push notification."
                  },
                  "title-loc-args": {
                    "type": "array",
                    "description": "An array of replacement value strings for variables in your title string. Each %@ character in the title-loc-key is replaced by a value from this array, in the order they appear in the title string.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "title-loc-key": {
                    "description": "The key for a localized title string in your app’s Localizable.strings files.",
                    "type": "string"
                  }
                }
              }
            ]
          },
          "badge": {
            "type": "integer",
            "description": "The number you want to display on your app's icon. Set to 0 to remove the current badge, if any."
          },
          "category": {
            "type": "string",
            "description": "The notification’s type. This string must correspond to the identifier of one of the `UNNotificationCategory` objects you register at launch time."
          },
          "content-available": {
            "type": "integer",
            "description": "The background notification flag. Use `1` without an `alert` to perform a silent update. `0` indicates a normal push notification."
          },
          "interruption-level": {
            "type": "string",
            "description": "Indicates the importance and delivery timing of a notification.",
            "enum": [
              "passive",
              "active",
              "time-sensitive",
              "critical"
            ]
          },
          "mutable-content": {
            "type": "integer",
            "description": "Set this to `1` if you use the Customer.io SDK, so you can support images and delivered metrics in your push notifications. It passes the notification to your service extension before delivery."
          },
          "relevance-score": {
            "type": "number",
            "description": "A number between 0 and 1. The highest score is considered the \"most relevant\"  and is featured in the notification summary."
          },
          "sound": {
            "oneOf": [
              {
                "title": "Regular alert",
                "type": "string",
                "description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound. For critical alerts, you'll pass an object instead."
              },
              {
                "title": "Critical alert",
                "type": "object",
                "properties": {
                  "critical": {
                    "type": "integer",
                    "description": "1 indicates critical. 0 is not critical."
                  },
                  "name": {
                    "type": "string",
                    "description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound."
                  },
                  "volume": {
                    "type": "number",
                    "description": "The volume for a critical alert between 0 and 1, where 0 is silent and 1 is full volume."
                  }
                }
              }
            ]
          },
          "target-content-id": {
            "type": "string",
            "description": "The identifier of the window brought forward."
          },
          "thread-id": {
            "type": "string",
            "description": "An identifier to group related notifications."
          }
        }
      },
      "fcmIosWithSdk": {
        "x-scalar-ignore": true,
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "object",
            "description": "The base object for all FCM payloads.",
            "required": [
              "apns"
            ],
            "properties": {
              "apns": {
                "type": "object",
                "required": [
                  "payload"
                ],
                "description": "Defines a payload for iOS devices sent through Firebase Cloud Messaging (FCM).",
                "properties": {
                  "payload": {
                    "type": "object",
                    "description": "Contains a push payload.",
                    "properties": {
                      "aps": {
                        "x-scalar-ignore": true,
                        "type": "object",
                        "description": "A push payload intended for an iOS device.",
                        "properties": {
                          "alert": {
                            "oneOf": [
                              {
                                "title": "Simple alert",
                                "type": "string",
                                "description": "A simple alert message."
                              },
                              {
                                "title": "Complex alert",
                                "type": "object",
                                "properties": {
                                  "body": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The body of your push notification."
                                  },
                                  "launch-image": {
                                    "description": "The name of the launch image file you want to display. When a user launches your app, they'll see this image or storyboard file rather than your app’s normal launch image.",
                                    "type": "string"
                                  },
                                  "loc-args": {
                                    "type": "array",
                                    "description": "An array of replacement value strings for variables in your message text. Each %@ character in the loc-key is replaced by a value from this array, in the order they appear in the message body.",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "loc-key": {
                                    "description": "The key for a localized message string in your app’s Localizable.strings file.",
                                    "type": "string"
                                  },
                                  "subtitle": {
                                    "description": "Additional information that explains the purpose of the notification.",
                                    "type": "string"
                                  },
                                  "subtitle-loc-args": {
                                    "type": "array",
                                    "description": "An array of replacement value strings for variables in your subtitle string. Each %@ character in the subtitle-loc-key is replaced by a value from this array, in the order they appear in the subtitle string.",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "subtitle-loc-key": {
                                    "description": "The key for a localized subtitle string in your app’s Localizable.strings file.",
                                    "type": "string"
                                  },
                                  "title": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The title of your push notification."
                                  },
                                  "title-loc-args": {
                                    "type": "array",
                                    "description": "An array of replacement value strings for variables in your title string. Each %@ character in the title-loc-key is replaced by a value from this array, in the order they appear in the title string.",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "title-loc-key": {
                                    "description": "The key for a localized title string in your app’s Localizable.strings files.",
                                    "type": "string"
                                  }
                                }
                              }
                            ]
                          },
                          "badge": {
                            "type": "integer",
                            "description": "The number you want to display on your app's icon. Set to 0 to remove the current badge, if any."
                          },
                          "category": {
                            "type": "string",
                            "description": "The notification’s type. This string must correspond to the identifier of one of the `UNNotificationCategory` objects you register at launch time."
                          },
                          "content-available": {
                            "type": "integer",
                            "description": "The background notification flag. Use `1` without an `alert` to perform a silent update. `0` indicates a normal push notification."
                          },
                          "interruption-level": {
                            "type": "string",
                            "description": "Indicates the importance and delivery timing of a notification.",
                            "enum": [
                              "passive",
                              "active",
                              "time-sensitive",
                              "critical"
                            ]
                          },
                          "mutable-content": {
                            "type": "integer",
                            "description": "Set this to `1` if you use the Customer.io SDK, so you can support images and delivered metrics in your push notifications. It passes the notification to your service extension before delivery."
                          },
                          "relevance-score": {
                            "type": "number",
                            "description": "A number between 0 and 1. The highest score is considered the \"most relevant\"  and is featured in the notification summary."
                          },
                          "sound": {
                            "oneOf": [
                              {
                                "title": "Regular alert",
                                "type": "string",
                                "description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound. For critical alerts, you'll pass an object instead."
                              },
                              {
                                "title": "Critical alert",
                                "type": "object",
                                "properties": {
                                  "critical": {
                                    "type": "integer",
                                    "description": "1 indicates critical. 0 is not critical."
                                  },
                                  "name": {
                                    "type": "string",
                                    "description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound."
                                  },
                                  "volume": {
                                    "type": "number",
                                    "description": "The volume for a critical alert between 0 and 1, where 0 is silent and 1 is full volume."
                                  }
                                }
                              }
                            ]
                          },
                          "target-content-id": {
                            "type": "string",
                            "description": "The identifier of the window brought forward."
                          },
                          "thread-id": {
                            "type": "string",
                            "description": "An identifier to group related notifications."
                          }
                        }
                      },
                      "CIO": {
                        "type": "object",
                        "description": "Contains properties interpreted by the Customer.io iOS SDK.",
                        "required": [
                          "push"
                        ],
                        "properties": {
                          "push": {
                            "type": "object",
                            "description": "A push payload for the iOS SDK.",
                            "properties": {
                              "body": {
                                "x-scalar-ignore": true,
                                "type": "string",
                                "description": "The body of your push notification."
                              },
                              "image": {
                                "x-scalar-ignore": true,
                                "type": "string",
                                "description": "The URL of an HTTPS image that you want to use for your message."
                              },
                              "link": {
                                "x-scalar-ignore": true,
                                "type": "string",
                                "description": "A deep link (to a page in your app), or a link to a web page."
                              },
                              "title": {
                                "x-scalar-ignore": true,
                                "type": "string",
                                "description": "The title of your push notification."
                              }
                            }
                          }
                        }
                      }
                    },
                    "additionalProperties": {
                      "description": "Additional properties that you've set up your app to interpret outside of the Customer.io SDK.",
                      "x-additionalPropertiesName": "Custom key-value pairs"
                    }
                  },
                  "headers": {
                    "description": "Headers defined by [Apple's payload reference](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns) that you want to pass through FCM.",
                    "type": "object"
                  }
                }
              }
            }
          }
        }
      },
      "fcmIosWithoutSdk": {
        "x-scalar-ignore": true,
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "object",
            "required": [
              "apns"
            ],
            "description": "The base object for all Firebase payloads.",
            "properties": {
              "apns": {
                "type": "object",
                "description": "Defines a push notification for iOS devices.",
                "required": [
                  "payload"
                ],
                "properties": {
                  "payload": {
                    "type": "object",
                    "properties": {
                      "aps": {
                        "x-scalar-ignore": true,
                        "type": "object",
                        "description": "A push payload intended for an iOS device.",
                        "properties": {
                          "alert": {
                            "oneOf": [
                              {
                                "title": "Simple alert",
                                "type": "string",
                                "description": "A simple alert message."
                              },
                              {
                                "title": "Complex alert",
                                "type": "object",
                                "properties": {
                                  "body": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The body of your push notification."
                                  },
                                  "launch-image": {
                                    "description": "The name of the launch image file you want to display. When a user launches your app, they'll see this image or storyboard file rather than your app’s normal launch image.",
                                    "type": "string"
                                  },
                                  "loc-args": {
                                    "type": "array",
                                    "description": "An array of replacement value strings for variables in your message text. Each %@ character in the loc-key is replaced by a value from this array, in the order they appear in the message body.",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "loc-key": {
                                    "description": "The key for a localized message string in your app’s Localizable.strings file.",
                                    "type": "string"
                                  },
                                  "subtitle": {
                                    "description": "Additional information that explains the purpose of the notification.",
                                    "type": "string"
                                  },
                                  "subtitle-loc-args": {
                                    "type": "array",
                                    "description": "An array of replacement value strings for variables in your subtitle string. Each %@ character in the subtitle-loc-key is replaced by a value from this array, in the order they appear in the subtitle string.",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "subtitle-loc-key": {
                                    "description": "The key for a localized subtitle string in your app’s Localizable.strings file.",
                                    "type": "string"
                                  },
                                  "title": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The title of your push notification."
                                  },
                                  "title-loc-args": {
                                    "type": "array",
                                    "description": "An array of replacement value strings for variables in your title string. Each %@ character in the title-loc-key is replaced by a value from this array, in the order they appear in the title string.",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "title-loc-key": {
                                    "description": "The key for a localized title string in your app’s Localizable.strings files.",
                                    "type": "string"
                                  }
                                }
                              }
                            ]
                          },
                          "badge": {
                            "type": "integer",
                            "description": "The number you want to display on your app's icon. Set to 0 to remove the current badge, if any."
                          },
                          "category": {
                            "type": "string",
                            "description": "The notification’s type. This string must correspond to the identifier of one of the `UNNotificationCategory` objects you register at launch time."
                          },
                          "content-available": {
                            "type": "integer",
                            "description": "The background notification flag. Use `1` without an `alert` to perform a silent update. `0` indicates a normal push notification."
                          },
                          "interruption-level": {
                            "type": "string",
                            "description": "Indicates the importance and delivery timing of a notification.",
                            "enum": [
                              "passive",
                              "active",
                              "time-sensitive",
                              "critical"
                            ]
                          },
                          "mutable-content": {
                            "type": "integer",
                            "description": "Set this to `1` if you use the Customer.io SDK, so you can support images and delivered metrics in your push notifications. It passes the notification to your service extension before delivery."
                          },
                          "relevance-score": {
                            "type": "number",
                            "description": "A number between 0 and 1. The highest score is considered the \"most relevant\"  and is featured in the notification summary."
                          },
                          "sound": {
                            "oneOf": [
                              {
                                "title": "Regular alert",
                                "type": "string",
                                "description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound. For critical alerts, you'll pass an object instead."
                              },
                              {
                                "title": "Critical alert",
                                "type": "object",
                                "properties": {
                                  "critical": {
                                    "type": "integer",
                                    "description": "1 indicates critical. 0 is not critical."
                                  },
                                  "name": {
                                    "type": "string",
                                    "description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound."
                                  },
                                  "volume": {
                                    "type": "number",
                                    "description": "The volume for a critical alert between 0 and 1, where 0 is silent and 1 is full volume."
                                  }
                                }
                              }
                            ]
                          },
                          "target-content-id": {
                            "type": "string",
                            "description": "The identifier of the window brought forward."
                          },
                          "thread-id": {
                            "type": "string",
                            "description": "An identifier to group related notifications."
                          }
                        }
                      }
                    }
                  },
                  "headers": {
                    "description": "Headers defined by [Apple's payload reference](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns) that you want to pass through FCM.",
                    "type": "object"
                  }
                }
              }
            }
          }
        }
      },
      "apsBasicPush": {
        "x-scalar-ignore": true,
        "type": "object",
        "required": [
          "aps"
        ],
        "properties": {
          "aps": {
            "type": "object",
            "description": "A push payload intended for an iOS device.",
            "required": [
              "alert"
            ],
            "properties": {
              "alert": {
                "type": "object",
                "description": "An object containing the push title and body",
                "required": [
                  "body"
                ],
                "properties": {
                  "body": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The body of your push notification."
                  },
                  "title": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The title of your push notification."
                  }
                }
              }
            }
          },
          "CIO": {
            "type": "object",
            "required": [
              "push"
            ],
            "description": "Contains options supported by the Customer.io SDK.",
            "properties": {
              "push": {
                "type": "object",
                "description": "Describes push notification options supported by the CIO SDK.",
                "properties": {
                  "image": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The URL of an HTTPS image that you want to use for your message."
                  },
                  "link": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "A deep link (to a page in your app), or a link to a web page."
                  }
                }
              }
            }
          }
        }
      },
      "apnsWithoutSdk": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "aps": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "A push payload intended for an iOS device.",
            "properties": {
              "alert": {
                "oneOf": [
                  {
                    "title": "Simple alert",
                    "type": "string",
                    "description": "A simple alert message."
                  },
                  {
                    "title": "Complex alert",
                    "type": "object",
                    "properties": {
                      "body": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The body of your push notification."
                      },
                      "launch-image": {
                        "description": "The name of the launch image file you want to display. When a user launches your app, they'll see this image or storyboard file rather than your app’s normal launch image.",
                        "type": "string"
                      },
                      "loc-args": {
                        "type": "array",
                        "description": "An array of replacement value strings for variables in your message text. Each %@ character in the loc-key is replaced by a value from this array, in the order they appear in the message body.",
                        "items": {
                          "type": "string"
                        }
                      },
                      "loc-key": {
                        "description": "The key for a localized message string in your app’s Localizable.strings file.",
                        "type": "string"
                      },
                      "subtitle": {
                        "description": "Additional information that explains the purpose of the notification.",
                        "type": "string"
                      },
                      "subtitle-loc-args": {
                        "type": "array",
                        "description": "An array of replacement value strings for variables in your subtitle string. Each %@ character in the subtitle-loc-key is replaced by a value from this array, in the order they appear in the subtitle string.",
                        "items": {
                          "type": "string"
                        }
                      },
                      "subtitle-loc-key": {
                        "description": "The key for a localized subtitle string in your app’s Localizable.strings file.",
                        "type": "string"
                      },
                      "title": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The title of your push notification."
                      },
                      "title-loc-args": {
                        "type": "array",
                        "description": "An array of replacement value strings for variables in your title string. Each %@ character in the title-loc-key is replaced by a value from this array, in the order they appear in the title string.",
                        "items": {
                          "type": "string"
                        }
                      },
                      "title-loc-key": {
                        "description": "The key for a localized title string in your app’s Localizable.strings files.",
                        "type": "string"
                      }
                    }
                  }
                ]
              },
              "badge": {
                "type": "integer",
                "description": "The number you want to display on your app's icon. Set to 0 to remove the current badge, if any."
              },
              "category": {
                "type": "string",
                "description": "The notification’s type. This string must correspond to the identifier of one of the `UNNotificationCategory` objects you register at launch time."
              },
              "content-available": {
                "type": "integer",
                "description": "The background notification flag. Use `1` without an `alert` to perform a silent update. `0` indicates a normal push notification."
              },
              "interruption-level": {
                "type": "string",
                "description": "Indicates the importance and delivery timing of a notification.",
                "enum": [
                  "passive",
                  "active",
                  "time-sensitive",
                  "critical"
                ]
              },
              "mutable-content": {
                "type": "integer",
                "description": "Set this to `1` if you use the Customer.io SDK, so you can support images and delivered metrics in your push notifications. It passes the notification to your service extension before delivery."
              },
              "relevance-score": {
                "type": "number",
                "description": "A number between 0 and 1. The highest score is considered the \"most relevant\"  and is featured in the notification summary."
              },
              "sound": {
                "oneOf": [
                  {
                    "title": "Regular alert",
                    "type": "string",
                    "description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound. For critical alerts, you'll pass an object instead."
                  },
                  {
                    "title": "Critical alert",
                    "type": "object",
                    "properties": {
                      "critical": {
                        "type": "integer",
                        "description": "1 indicates critical. 0 is not critical."
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound."
                      },
                      "volume": {
                        "type": "number",
                        "description": "The volume for a critical alert between 0 and 1, where 0 is silent and 1 is full volume."
                      }
                    }
                  }
                ]
              },
              "target-content-id": {
                "type": "string",
                "description": "The identifier of the window brought forward."
              },
              "thread-id": {
                "type": "string",
                "description": "An identifier to group related notifications."
              }
            }
          }
        }
      },
      "iosFcmAndApns": {
        "x-scalar-ignore": true,
        "description": "Your payload changes depending on whether you send to iOS devices through Google's Firebase Cloud Messaging (FCM) or Apple's Push Notification service (APNs).",
        "oneOf": [
          {
            "x-scalar-ignore": true,
            "type": "object",
            "required": [
              "message"
            ],
            "properties": {
              "message": {
                "type": "object",
                "description": "The base object for all FCM payloads.",
                "required": [
                  "apns"
                ],
                "properties": {
                  "apns": {
                    "type": "object",
                    "required": [
                      "payload"
                    ],
                    "description": "Defines a payload for iOS devices sent through Firebase Cloud Messaging (FCM).",
                    "properties": {
                      "payload": {
                        "type": "object",
                        "description": "Contains a push payload.",
                        "properties": {
                          "aps": {
                            "x-scalar-ignore": true,
                            "type": "object",
                            "description": "A push payload intended for an iOS device.",
                            "properties": {
                              "alert": {
                                "oneOf": [
                                  {
                                    "title": "Simple alert",
                                    "type": "string",
                                    "description": "A simple alert message."
                                  },
                                  {
                                    "title": "Complex alert",
                                    "type": "object",
                                    "properties": {
                                      "body": {
                                        "x-scalar-ignore": true,
                                        "type": "string",
                                        "description": "The body of your push notification."
                                      },
                                      "launch-image": {
                                        "description": "The name of the launch image file you want to display. When a user launches your app, they'll see this image or storyboard file rather than your app’s normal launch image.",
                                        "type": "string"
                                      },
                                      "loc-args": {
                                        "type": "array",
                                        "description": "An array of replacement value strings for variables in your message text. Each %@ character in the loc-key is replaced by a value from this array, in the order they appear in the message body.",
                                        "items": {
                                          "type": "string"
                                        }
                                      },
                                      "loc-key": {
                                        "description": "The key for a localized message string in your app’s Localizable.strings file.",
                                        "type": "string"
                                      },
                                      "subtitle": {
                                        "description": "Additional information that explains the purpose of the notification.",
                                        "type": "string"
                                      },
                                      "subtitle-loc-args": {
                                        "type": "array",
                                        "description": "An array of replacement value strings for variables in your subtitle string. Each %@ character in the subtitle-loc-key is replaced by a value from this array, in the order they appear in the subtitle string.",
                                        "items": {
                                          "type": "string"
                                        }
                                      },
                                      "subtitle-loc-key": {
                                        "description": "The key for a localized subtitle string in your app’s Localizable.strings file.",
                                        "type": "string"
                                      },
                                      "title": {
                                        "x-scalar-ignore": true,
                                        "type": "string",
                                        "description": "The title of your push notification."
                                      },
                                      "title-loc-args": {
                                        "type": "array",
                                        "description": "An array of replacement value strings for variables in your title string. Each %@ character in the title-loc-key is replaced by a value from this array, in the order they appear in the title string.",
                                        "items": {
                                          "type": "string"
                                        }
                                      },
                                      "title-loc-key": {
                                        "description": "The key for a localized title string in your app’s Localizable.strings files.",
                                        "type": "string"
                                      }
                                    }
                                  }
                                ]
                              },
                              "badge": {
                                "type": "integer",
                                "description": "The number you want to display on your app's icon. Set to 0 to remove the current badge, if any."
                              },
                              "category": {
                                "type": "string",
                                "description": "The notification’s type. This string must correspond to the identifier of one of the `UNNotificationCategory` objects you register at launch time."
                              },
                              "content-available": {
                                "type": "integer",
                                "description": "The background notification flag. Use `1` without an `alert` to perform a silent update. `0` indicates a normal push notification."
                              },
                              "interruption-level": {
                                "type": "string",
                                "description": "Indicates the importance and delivery timing of a notification.",
                                "enum": [
                                  "passive",
                                  "active",
                                  "time-sensitive",
                                  "critical"
                                ]
                              },
                              "mutable-content": {
                                "type": "integer",
                                "description": "Set this to `1` if you use the Customer.io SDK, so you can support images and delivered metrics in your push notifications. It passes the notification to your service extension before delivery."
                              },
                              "relevance-score": {
                                "type": "number",
                                "description": "A number between 0 and 1. The highest score is considered the \"most relevant\"  and is featured in the notification summary."
                              },
                              "sound": {
                                "oneOf": [
                                  {
                                    "title": "Regular alert",
                                    "type": "string",
                                    "description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound. For critical alerts, you'll pass an object instead."
                                  },
                                  {
                                    "title": "Critical alert",
                                    "type": "object",
                                    "properties": {
                                      "critical": {
                                        "type": "integer",
                                        "description": "1 indicates critical. 0 is not critical."
                                      },
                                      "name": {
                                        "type": "string",
                                        "description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound."
                                      },
                                      "volume": {
                                        "type": "number",
                                        "description": "The volume for a critical alert between 0 and 1, where 0 is silent and 1 is full volume."
                                      }
                                    }
                                  }
                                ]
                              },
                              "target-content-id": {
                                "type": "string",
                                "description": "The identifier of the window brought forward."
                              },
                              "thread-id": {
                                "type": "string",
                                "description": "An identifier to group related notifications."
                              }
                            }
                          },
                          "CIO": {
                            "type": "object",
                            "description": "Contains properties interpreted by the Customer.io iOS SDK.",
                            "required": [
                              "push"
                            ],
                            "properties": {
                              "push": {
                                "type": "object",
                                "description": "A push payload for the iOS SDK.",
                                "properties": {
                                  "body": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The body of your push notification."
                                  },
                                  "image": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The URL of an HTTPS image that you want to use for your message."
                                  },
                                  "link": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "A deep link (to a page in your app), or a link to a web page."
                                  },
                                  "title": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The title of your push notification."
                                  }
                                }
                              }
                            }
                          }
                        },
                        "additionalProperties": {
                          "description": "Additional properties that you've set up your app to interpret outside of the Customer.io SDK.",
                          "x-additionalPropertiesName": "Custom key-value pairs"
                        }
                      },
                      "headers": {
                        "description": "Headers defined by [Apple's payload reference](https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns) that you want to pass through FCM.",
                        "type": "object"
                      }
                    }
                  }
                }
              }
            }
          },
          {
            "x-scalar-ignore": true,
            "type": "object",
            "properties": {
              "aps": {
                "x-scalar-ignore": true,
                "type": "object",
                "description": "A push payload intended for an iOS device.",
                "properties": {
                  "alert": {
                    "oneOf": [
                      {
                        "title": "Simple alert",
                        "type": "string",
                        "description": "A simple alert message."
                      },
                      {
                        "title": "Complex alert",
                        "type": "object",
                        "properties": {
                          "body": {
                            "x-scalar-ignore": true,
                            "type": "string",
                            "description": "The body of your push notification."
                          },
                          "launch-image": {
                            "description": "The name of the launch image file you want to display. When a user launches your app, they'll see this image or storyboard file rather than your app’s normal launch image.",
                            "type": "string"
                          },
                          "loc-args": {
                            "type": "array",
                            "description": "An array of replacement value strings for variables in your message text. Each %@ character in the loc-key is replaced by a value from this array, in the order they appear in the message body.",
                            "items": {
                              "type": "string"
                            }
                          },
                          "loc-key": {
                            "description": "The key for a localized message string in your app’s Localizable.strings file.",
                            "type": "string"
                          },
                          "subtitle": {
                            "description": "Additional information that explains the purpose of the notification.",
                            "type": "string"
                          },
                          "subtitle-loc-args": {
                            "type": "array",
                            "description": "An array of replacement value strings for variables in your subtitle string. Each %@ character in the subtitle-loc-key is replaced by a value from this array, in the order they appear in the subtitle string.",
                            "items": {
                              "type": "string"
                            }
                          },
                          "subtitle-loc-key": {
                            "description": "The key for a localized subtitle string in your app’s Localizable.strings file.",
                            "type": "string"
                          },
                          "title": {
                            "x-scalar-ignore": true,
                            "type": "string",
                            "description": "The title of your push notification."
                          },
                          "title-loc-args": {
                            "type": "array",
                            "description": "An array of replacement value strings for variables in your title string. Each %@ character in the title-loc-key is replaced by a value from this array, in the order they appear in the title string.",
                            "items": {
                              "type": "string"
                            }
                          },
                          "title-loc-key": {
                            "description": "The key for a localized title string in your app’s Localizable.strings files.",
                            "type": "string"
                          }
                        }
                      }
                    ]
                  },
                  "badge": {
                    "type": "integer",
                    "description": "The number you want to display on your app's icon. Set to 0 to remove the current badge, if any."
                  },
                  "category": {
                    "type": "string",
                    "description": "The notification’s type. This string must correspond to the identifier of one of the `UNNotificationCategory` objects you register at launch time."
                  },
                  "content-available": {
                    "type": "integer",
                    "description": "The background notification flag. Use `1` without an `alert` to perform a silent update. `0` indicates a normal push notification."
                  },
                  "interruption-level": {
                    "type": "string",
                    "description": "Indicates the importance and delivery timing of a notification.",
                    "enum": [
                      "passive",
                      "active",
                      "time-sensitive",
                      "critical"
                    ]
                  },
                  "mutable-content": {
                    "type": "integer",
                    "description": "Set this to `1` if you use the Customer.io SDK, so you can support images and delivered metrics in your push notifications. It passes the notification to your service extension before delivery."
                  },
                  "relevance-score": {
                    "type": "number",
                    "description": "A number between 0 and 1. The highest score is considered the \"most relevant\"  and is featured in the notification summary."
                  },
                  "sound": {
                    "oneOf": [
                      {
                        "title": "Regular alert",
                        "type": "string",
                        "description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound. For critical alerts, you'll pass an object instead."
                      },
                      {
                        "title": "Critical alert",
                        "type": "object",
                        "properties": {
                          "critical": {
                            "type": "integer",
                            "description": "1 indicates critical. 0 is not critical."
                          },
                          "name": {
                            "type": "string",
                            "description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound."
                          },
                          "volume": {
                            "type": "number",
                            "description": "The volume for a critical alert between 0 and 1, where 0 is silent and 1 is full volume."
                          }
                        }
                      }
                    ]
                  },
                  "target-content-id": {
                    "type": "string",
                    "description": "The identifier of the window brought forward."
                  },
                  "thread-id": {
                    "type": "string",
                    "description": "An identifier to group related notifications."
                  }
                }
              },
              "CIO": {
                "type": "object",
                "required": [
                  "push"
                ],
                "description": "Contains options supported by the Customer.io SDK.",
                "properties": {
                  "push": {
                    "type": "object",
                    "description": "Describes push notification options supported by the CIO SDK.",
                    "properties": {
                      "image": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The URL of an HTTPS image that you want to use for your message."
                      },
                      "link": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "A deep link (to a page in your app), or a link to a web page."
                      }
                    }
                  }
                }
              }
            }
          }
        ]
      },
      "apnsWithSdk": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "aps": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "A push payload intended for an iOS device.",
            "properties": {
              "alert": {
                "oneOf": [
                  {
                    "title": "Simple alert",
                    "type": "string",
                    "description": "A simple alert message."
                  },
                  {
                    "title": "Complex alert",
                    "type": "object",
                    "properties": {
                      "body": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The body of your push notification."
                      },
                      "launch-image": {
                        "description": "The name of the launch image file you want to display. When a user launches your app, they'll see this image or storyboard file rather than your app’s normal launch image.",
                        "type": "string"
                      },
                      "loc-args": {
                        "type": "array",
                        "description": "An array of replacement value strings for variables in your message text. Each %@ character in the loc-key is replaced by a value from this array, in the order they appear in the message body.",
                        "items": {
                          "type": "string"
                        }
                      },
                      "loc-key": {
                        "description": "The key for a localized message string in your app’s Localizable.strings file.",
                        "type": "string"
                      },
                      "subtitle": {
                        "description": "Additional information that explains the purpose of the notification.",
                        "type": "string"
                      },
                      "subtitle-loc-args": {
                        "type": "array",
                        "description": "An array of replacement value strings for variables in your subtitle string. Each %@ character in the subtitle-loc-key is replaced by a value from this array, in the order they appear in the subtitle string.",
                        "items": {
                          "type": "string"
                        }
                      },
                      "subtitle-loc-key": {
                        "description": "The key for a localized subtitle string in your app’s Localizable.strings file.",
                        "type": "string"
                      },
                      "title": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The title of your push notification."
                      },
                      "title-loc-args": {
                        "type": "array",
                        "description": "An array of replacement value strings for variables in your title string. Each %@ character in the title-loc-key is replaced by a value from this array, in the order they appear in the title string.",
                        "items": {
                          "type": "string"
                        }
                      },
                      "title-loc-key": {
                        "description": "The key for a localized title string in your app’s Localizable.strings files.",
                        "type": "string"
                      }
                    }
                  }
                ]
              },
              "badge": {
                "type": "integer",
                "description": "The number you want to display on your app's icon. Set to 0 to remove the current badge, if any."
              },
              "category": {
                "type": "string",
                "description": "The notification’s type. This string must correspond to the identifier of one of the `UNNotificationCategory` objects you register at launch time."
              },
              "content-available": {
                "type": "integer",
                "description": "The background notification flag. Use `1` without an `alert` to perform a silent update. `0` indicates a normal push notification."
              },
              "interruption-level": {
                "type": "string",
                "description": "Indicates the importance and delivery timing of a notification.",
                "enum": [
                  "passive",
                  "active",
                  "time-sensitive",
                  "critical"
                ]
              },
              "mutable-content": {
                "type": "integer",
                "description": "Set this to `1` if you use the Customer.io SDK, so you can support images and delivered metrics in your push notifications. It passes the notification to your service extension before delivery."
              },
              "relevance-score": {
                "type": "number",
                "description": "A number between 0 and 1. The highest score is considered the \"most relevant\"  and is featured in the notification summary."
              },
              "sound": {
                "oneOf": [
                  {
                    "title": "Regular alert",
                    "type": "string",
                    "description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound. For critical alerts, you'll pass an object instead."
                  },
                  {
                    "title": "Critical alert",
                    "type": "object",
                    "properties": {
                      "critical": {
                        "type": "integer",
                        "description": "1 indicates critical. 0 is not critical."
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of a sound file in your app’s main bundle or in the Library/Sounds folder of your app’s container directory. Use “default” to play the system sound."
                      },
                      "volume": {
                        "type": "number",
                        "description": "The volume for a critical alert between 0 and 1, where 0 is silent and 1 is full volume."
                      }
                    }
                  }
                ]
              },
              "target-content-id": {
                "type": "string",
                "description": "The identifier of the window brought forward."
              },
              "thread-id": {
                "type": "string",
                "description": "An identifier to group related notifications."
              }
            }
          },
          "CIO": {
            "type": "object",
            "required": [
              "push"
            ],
            "description": "Contains options supported by the Customer.io SDK.",
            "properties": {
              "push": {
                "type": "object",
                "description": "Describes push notification options supported by the CIO SDK.",
                "properties": {
                  "image": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The URL of an HTTPS image that you want to use for your message."
                  },
                  "link": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "A deep link (to a page in your app), or a link to a web page."
                  }
                }
              }
            }
          }
        }
      },
      "widgetColor": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The color you want to use for this content. You can only set values here that are defined under [**Content** > **In-App Messages**](https://fly.customer.io/env/last/in-app-messages)."
      },
      "widgetRadius": {
        "x-scalar-ignore": true,
        "type": "integer",
        "description": "Sets the radius of corners for an item in pixels, similar to the `border-radius` CSS property."
      },
      "widgetHeight": {
        "x-scalar-ignore": true,
        "type": "integer",
        "description": "The height of the component in pixels, if you want to constrain it. If you don't set a height or width, we'll scale your content to fit your message or container."
      },
      "widgetWidth": {
        "x-scalar-ignore": true,
        "type": "integer",
        "description": "The width of the component in pixels, if you want to constrain it. If you don't set a height or width, we'll scale your content to fit your message or container."
      },
      "widgetComponents": {
        "x-scalar-ignore": true,
        "description": "An array of child components that you want to make available inside this widget.",
        "type": "array",
        "items": {
          "type": "object"
        }
      },
      "widgetMainAxisAlignment": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The mainAxisAlignment property supports the following options.",
        "enum": [
          "start",
          "end",
          "spaceBetween",
          "spaceAround",
          "spaceEvenly"
        ]
      },
      "widgetCrossAxisAlignment": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The crossAxisAlignment property supports the following options",
        "enum": [
          "center",
          "start",
          "end",
          "center",
          "stretch",
          "baseline"
        ]
      },
      "textWidget": {
        "x-scalar-ignore": true,
        "description": "Displays text in your message.",
        "type": "object",
        "required": [
          "type",
          "text"
        ],
        "properties": {
          "text": {
            "type": "string",
            "description": "The text you want to display.",
            "example": "$person.name"
          },
          "type": {
            "type": "string",
            "description": "Defines the widget type.",
            "enum": [
              "textWidget"
            ]
          },
          "color": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The color you want to use for this content. You can only set values here that are defined under [**Content** > **In-App Messages**](https://fly.customer.io/env/last/in-app-messages)."
          },
          "maxLines": {
            "type": "integer",
            "description": "The maximum lines of text you want to display. Text over this limit is controlled by the `overflow` property. If unset, the message displays an unlimited number of lines."
          },
          "overflow": {
            "type": "string",
            "description": "Determines how to handle text that overflows the `maxLines` limit (if set). By default, we cut off overflowing text with ellipsis (`...`).",
            "enum": [
              "ellipsis",
              "fade",
              "clip"
            ]
          },
          "style": {
            "type": "string",
            "description": "The style of text you want to display. You can only set values here that are defined under [**Content** > **In-App Messages**](https://fly.customer.io/env/last/in-app-messages)."
          },
          "textAlign": {
            "type": "string",
            "description": "How you want to align this text.",
            "enum": [
              "center",
              "right",
              "left",
              "start",
              "end",
              "justify"
            ]
          }
        }
      },
      "imageWidget": {
        "x-scalar-ignore": true,
        "description": "Displays an image. You can provide the URL of an image. Or, if you use the template designer, you can upload an image and host it directly.",
        "type": "object",
        "required": [
          "type",
          "image"
        ],
        "properties": {
          "image": {
            "description": "The URL of the image that you want ot use in your message.",
            "example": "$person.imageUrl"
          },
          "type": {
            "type": "string",
            "description": "Defines the widget type.",
            "enum": [
              "imageWidget"
            ]
          },
          "cornerRadius": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "Sets the radius of corners for an item in pixels, similar to the `border-radius` CSS property."
          },
          "fadeInDuration": {
            "type": "integer",
            "description": "The durration for the image to fade in, in milliseconds, similar to the `fadeIn` CSS transition property."
          },
          "fit": {
            "type": "string",
            "description": "Determines how the image fits your message. Defaults to `cover`.",
            "enum": [
              "none",
              "fitWidth",
              "cover",
              "contain",
              "scaleDown",
              "fill",
              "fitHeight"
            ]
          },
          "height": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The height of the component in pixels, if you want to constrain it. If you don't set a height or width, we'll scale your content to fit your message or container."
          },
          "width": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The width of the component in pixels, if you want to constrain it. If you don't set a height or width, we'll scale your content to fit your message or container."
          }
        }
      },
      "iconWidget": {
        "x-scalar-ignore": true,
        "description": "Displays an icon from an icon font that you've loaded into your app or project. You must load your icon font in the assets section of your app configuration.",
        "type": "object",
        "required": [
          "type",
          "color",
          "value"
        ],
        "properties": {
          "color": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The color you want to use for this content. You can only set values here that are defined under [**Content** > **In-App Messages**](https://fly.customer.io/env/last/in-app-messages)."
          },
          "type": {
            "type": "string",
            "description": "Defines the widget type.",
            "enum": [
              "iconWidget"
            ]
          },
          "value": {
            "description": "The value of the icon that you want to use. For example, for font-awesome, you'd use the name of the icon.",
            "type": "string"
          },
          "font": {
            "description": "The icon font you want to use."
          },
          "size": {
            "description": "The pixel size of the icon.",
            "type": "integer"
          }
        }
      },
      "blockWidget": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "A widget that provides visual design for one or more child components.",
        "properties": {
          "backgroundColor": {
            "type": "string",
            "description": "The background color for your block. You must set a value defined under *Branding* > *Colors*."
          },
          "backgroundImage": {
            "type": "string",
            "description": "Set a background image for the block",
            "example": "$user.backgroundImage,"
          },
          "borderColor": {
            "type": "string",
            "description": "The border color for your block, if you set a border width greater than 0. You must set a value defined under *Branding* > *Colors*."
          },
          "borderRadius": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "Sets the radius of corners for an item in pixels, similar to the `border-radius` CSS property."
          },
          "borderWidth": {
            "type": "integer",
            "description": "The width of the border for this block in pixels."
          },
          "components": {
            "x-scalar-ignore": true,
            "description": "An array of child components that you want to make available inside this widget.",
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "flex": {
            "type": "integer",
            "description": "The single digit syntax for the CSS `flex` property. The value you use here determines the propotional amount of space the block consumes in a parent container."
          },
          "height": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The height of the component in pixels, if you want to constrain it. If you don't set a height or width, we'll scale your content to fit your message or container."
          },
          "padding": {
            "type": "array",
            "description": "Defines padding for the block, based on the values set under *Branding* > *Padding*. As with the CSS `padding` property, values in the array represent top, right, bottom, and left padding.",
            "maxItems": 4,
            "items": {
              "type": "string",
              "description": "The padding label you set under *Branding* > *Padding*."
            }
          },
          "safeInsets": {
            "type": "boolean",
            "description": "Based on the env `safe-area-inset-*` CSS properties. Set to true to ensure that the block can't overflow the defined screen or the defined area of your message. Defaults to `false`.",
            "default": false
          },
          "type": {
            "type": "string",
            "description": "Defines the widget type.",
            "enum": [
              "blockWidget"
            ]
          }
        }
      },
      "conditionalWidget": {
        "x-scalar-ignore": true,
        "description": "Set a true/false condition determining which content to show. Use a variable in your condition to populate the condition when you set up your message in Customer.io.",
        "type": "object",
        "properties": {
          "condition": {
            "type": "string",
            "description": "The condition you want to evaluate. You can evaluate a condition using `>`, `<`, `==` & `in` operators. If you don't use an operator, the condition checks if the property is null."
          },
          "false": {
            "type": "object",
            "description": "The component you want to show when your condition is false."
          },
          "true": {
            "type": "object",
            "description": "The component you want to show when your condition is true."
          },
          "type": {
            "type": "string",
            "description": "Defines the widget type.",
            "enum": [
              "conditionalWidget"
            ]
          }
        }
      },
      "actionWidget": {
        "x-scalar-ignore": true,
        "description": "An action is either a link or a way to dismiss your message. The `behaviour` property determines how your app treats the action.",
        "type": "object",
        "required": [
          "type",
          "component",
          "action"
        ],
        "properties": {
          "action": {
            "type": "string",
            "description": "The link or place you want to send a person. This is either a deep link in your app, a web address, a `mailto` link, or a way to close the message (`gist://close`)."
          },
          "component": {
            "type": "object",
            "description": "The component a person taps to perform the action defined in this widget."
          },
          "type": {
            "type": "string",
            "description": "Defines the widget type.",
            "enum": [
              "actionWidget"
            ]
          },
          "behaviour": {
            "type": "string",
            "description": "Action behavior; `push` adds a route, `system` delegates to the OS, `back` pops one route, and `retain` replaces the current view.",
            "enum": [
              "push",
              "system",
              "back",
              "retain"
            ]
          }
        }
      },
      "fixedListWidget": {
        "x-scalar-ignore": true,
        "description": "Displays a series of components in a vertical list.",
        "type": "object",
        "properties": {
          "components": {
            "x-scalar-ignore": true,
            "description": "An array of child components that you want to make available inside this widget.",
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "crossAxisAlignment": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The crossAxisAlignment property supports the following options",
            "enum": [
              "center",
              "start",
              "end",
              "center",
              "stretch",
              "baseline"
            ]
          },
          "mainAxisAlignment": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The mainAxisAlignment property supports the following options.",
            "enum": [
              "start",
              "end",
              "spaceBetween",
              "spaceAround",
              "spaceEvenly"
            ]
          },
          "type": {
            "description": "Defines the widget type.",
            "enum": [
              "fixedListWidget"
            ]
          }
        }
      },
      "fixedHorizontalListWidget": {
        "x-scalar-ignore": true,
        "description": "Displays a series of components in a horizontal list, like if you want to put an image and text next to each other.",
        "type": "object",
        "properties": {
          "components": {
            "x-scalar-ignore": true,
            "description": "An array of child components that you want to make available inside this widget.",
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "crossAxisAlignment": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The crossAxisAlignment property supports the following options",
            "enum": [
              "center",
              "start",
              "end",
              "center",
              "stretch",
              "baseline"
            ]
          },
          "mainAxisAlignment": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The mainAxisAlignment property supports the following options.",
            "enum": [
              "start",
              "end",
              "spaceBetween",
              "spaceAround",
              "spaceEvenly"
            ]
          },
          "type": {
            "type": "string",
            "description": "Defines the widget type.",
            "enum": [
              "fixedHorizontalListWidget"
            ]
          }
        }
      },
      "fixedHorizontalScrollWidget": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "A series of components that you can scroll through, like a carousel.",
        "properties": {
          "components": {
            "x-scalar-ignore": true,
            "description": "An array of child components that you want to make available inside this widget.",
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "height": {
            "type": "integer",
            "description": "The height of the widget in pixels."
          },
          "type": {
            "type": "string",
            "description": "Defines the widget type",
            "enum": [
              "fixedHorizontalListScrollWidget"
            ]
          }
        }
      },
      "fixedGridWidget": {
        "x-scalar-ignore": true,
        "description": "Used to layout an in-app message in a fixed grid.",
        "type": "object",
        "required": [
          "type",
          "components",
          "columns"
        ],
        "properties": {
          "columns": {
            "type": "integer",
            "description": "The number of columns in your grid."
          },
          "components": {
            "x-scalar-ignore": true,
            "description": "An array of child components that you want to make available inside this widget.",
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "type": {
            "type": "string",
            "description": "Defines the widget type.",
            "enum": [
              "fixedGridWidget"
            ]
          },
          "childAspectRatio": {
            "type": "number",
            "description": "The aspect ratio for items in the grid. Defaults to 1.0"
          },
          "itemPadding": {
            "type": "string",
            "description": "The padding between items in your grid."
          }
        }
      },
      "inAppMessageEventDetail": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "An object containing message specific data depending on the event type.",
        "properties": {
          "deliveryId": {
            "type": "string",
            "description": "Delivery Id for the corresponding in-app message (not present in test message)."
          },
          "messageId": {
            "type": "string",
            "description": "Identifier string of the in-app message."
          }
        }
      },
      "inAppMessageOpenedEvent": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "Event object passed to the listener function when user is shown an in-app message.",
        "properties": {
          "detail": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "An object containing message specific data depending on the event type.",
            "properties": {
              "deliveryId": {
                "type": "string",
                "description": "Delivery Id for the corresponding in-app message (not present in test message)."
              },
              "messageId": {
                "type": "string",
                "description": "Identifier string of the in-app message."
              }
            }
          },
          "type": {
            "type": "string",
            "description": "Defines the event type.",
            "enum": [
              "in-app:message-opened"
            ]
          }
        }
      },
      "inAppMessageDismissedEvent": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "Event object passed to the listener function when user dismisses an in-app message.",
        "properties": {
          "detail": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "An object containing message specific data depending on the event type.",
            "properties": {
              "deliveryId": {
                "type": "string",
                "description": "Delivery Id for the corresponding in-app message (not present in test message)."
              },
              "messageId": {
                "type": "string",
                "description": "Identifier string of the in-app message."
              }
            }
          },
          "type": {
            "type": "string",
            "description": "Defines the event type.",
            "enum": [
              "in-app:message-dismissed"
            ]
          }
        }
      },
      "inAppMessageActionEvent": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "Event object passed to the listener function when user performs an action in the in-app message.",
        "properties": {
          "detail": {
            "type": "object",
            "properties": {
              "actionName": {
                "type": "string",
                "description": "The name of the action specified when building the in-app message."
              },
              "actionValue": {
                "type": "string",
                "description": "The type of action that triggered the event."
              },
              "deliveryId": {
                "type": "string",
                "description": "Delivery Id for the corresponding in-app message (not present in test message)."
              },
              "messageId": {
                "type": "string",
                "description": "Identifier string of the in-app message."
              }
            }
          },
          "type": {
            "type": "string",
            "description": "Defines the event type.",
            "enum": [
              "in-app:message-action"
            ]
          }
        }
      },
      "inAppMessageErrorEvent": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "Event object passed to the listener function when an error occurs.",
        "properties": {
          "detail": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "An object containing message specific data depending on the event type.",
            "properties": {
              "deliveryId": {
                "type": "string",
                "description": "Delivery Id for the corresponding in-app message (not present in test message)."
              },
              "messageId": {
                "type": "string",
                "description": "Identifier string of the in-app message."
              }
            }
          },
          "type": {
            "type": "string",
            "description": "Defines the event type.",
            "enum": [
              "in-app:message-error"
            ]
          }
        }
      },
      "errors": {
        "x-scalar-ignore": true,
        "type": "array",
        "description": "An array of errors, where each object represents a different error.",
        "items": {
          "type": "object",
          "properties": {
            "field": {
              "type": "string",
              "description": "The field containing the error."
            },
            "message": {
              "type": "string",
              "description": "A detailed description of the error in the offending field."
            },
            "reason": {
              "type": "string",
              "description": "The reason for the error."
            }
          }
        }
      },
      "object_operations": {
        "x-scalar-ignore": true,
        "title": "Object operations",
        "example": {
          "action": "identify",
          "identifiers": {
            "object_id": "acme",
            "object_type_id": "1"
          },
          "type": "object",
          "attributes": {
            "name": "Acme Corp"
          }
        },
        "oneOf": [
          {
            "example": {
              "action": "identify",
              "identifiers": {
                "object_id": "acme",
                "object_type_id": "1"
              },
              "type": "object",
              "attributes": {
                "name": "Acme Corp",
                "plan": "enterprise",
                "seats": 50
              }
            },
            "type": "object",
            "title": "Object: Identify",
            "description": "The `action` determines the type of operation you want to perform with an object. If `identifiers.object_id` does not exist, we'll create a new object; if it exists, we'll update the object accordingly.\n",
            "properties": {
              "action": {
                "type": "string",
                "description": "Indicates that the operation will `identify` the item of the specified `type`.",
                "enum": [
                  "identify"
                ]
              },
              "identifiers": {
                "description": "Custom object identifiers. To create, provide `object_type_id` and `object_id`; to update, use those values or `cio_object_id`.",
                "oneOf": [
                  {
                    "title": "Object ID (create and update)",
                    "type": "object",
                    "required": [
                      "object_type_id",
                      "object_id"
                    ],
                    "properties": {
                      "object_id": {
                        "type": "string",
                        "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                        "example": "acme"
                      },
                      "object_type_id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "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.",
                        "example": "1"
                      }
                    }
                  },
                  {
                    "title": "CIO Object ID (updates only)",
                    "type": "object",
                    "required": [
                      "cio_object_id"
                    ],
                    "properties": {
                      "cio_object_id": {
                        "type": "string",
                        "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                        "example": "obb7fd050101"
                      }
                    }
                  }
                ]
              },
              "type": {
                "description": "The operation modifies a single object—non person data.",
                "type": "string",
                "enum": [
                  "object"
                ]
              },
              "attributes": {
                "x-scalar-ignore": true,
                "type": "object",
                "description": "Data that belongs to the object. Pass `null` or an empty string to remove an attribute. Some attributes have special meaning—see [reserved attributes](/journeys/objects-data/objects/create/#reserved-attributes)."
              },
              "cio_relationships": {
                "x-scalar-ignore": true,
                "type": "array",
                "description": "The people you want to associate with an object. Each object in the array represents a person.",
                "items": {
                  "type": "object",
                  "properties": {
                    "identifiers": {
                      "oneOf": [
                        {
                          "title": "id",
                          "type": "object",
                          "properties": {
                            "id": {
                              "x-scalar-ignore": true,
                              "type": "string",
                              "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                              "example": "42"
                            }
                          }
                        },
                        {
                          "title": "email",
                          "type": "object",
                          "properties": {
                            "email": {
                              "x-scalar-ignore": true,
                              "type": "string",
                              "description": "The email address of the customer.",
                              "example": "test@example.com"
                            }
                          }
                        },
                        {
                          "title": "cio_id",
                          "type": "object",
                          "properties": {
                            "cio_id": {
                              "x-scalar-ignore": true,
                              "type": "string",
                              "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                              "example": "a3000001"
                            }
                          }
                        }
                      ]
                    },
                    "relationship_attributes": {
                      "type": "object",
                      "description": "The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
                      "additionalProperties": {
                        "x-additionalPropertiesName": "Relationship Attributes"
                      }
                    }
                  },
                  "example": {
                    "identifiers": {
                      "id": "42"
                    },
                    "relationship_attributes": {
                      "role": "admin",
                      "date_created": 1702480414
                    }
                  }
                }
              }
            },
            "required": [
              "type",
              "identifiers",
              "action"
            ]
          },
          {
            "title": "Object: Identify anonymous",
            "description": "The `identify_anonymous` action lets you relate an object to a person who hasn't yet identified themselves by anonymous_id. When you identify the person, their anonymous relationship will carry over to the identified profile.",
            "example": {
              "action": "identify_anonymous",
              "identifiers": {
                "object_id": "acme",
                "object_type_id": "1"
              },
              "type": "object",
              "anonymous_id": "anon-abc-123"
            },
            "properties": {
              "action": {
                "type": "string",
                "description": "Indicates that the operation will `identify` the item of the specified `type` and relate it to an `anonymous_id`.",
                "enum": [
                  "identify_anonymous"
                ]
              },
              "identifiers": {
                "description": "Custom object identifiers. To create, provide `object_type_id` and `object_id`; to update, use those values or `cio_object_id`.",
                "oneOf": [
                  {
                    "title": "Object ID (create and update)",
                    "type": "object",
                    "required": [
                      "object_type_id",
                      "object_id"
                    ],
                    "properties": {
                      "object_id": {
                        "type": "string",
                        "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                        "example": "acme"
                      },
                      "object_type_id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "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.",
                        "example": "1"
                      }
                    }
                  },
                  {
                    "title": "CIO Object ID (updates only)",
                    "type": "object",
                    "required": [
                      "cio_object_id"
                    ],
                    "properties": {
                      "cio_object_id": {
                        "type": "string",
                        "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                        "example": "obb7fd050101"
                      }
                    }
                  }
                ]
              },
              "type": {
                "description": "The operation modifies a single object—non person data.",
                "type": "string",
                "enum": [
                  "object"
                ]
              },
              "attributes": {
                "x-scalar-ignore": true,
                "type": "object",
                "description": "Data that belongs to the object. Pass `null` or an empty string to remove an attribute. Some attributes have special meaning—see [reserved attributes](/journeys/objects-data/objects/create/#reserved-attributes)."
              },
              "cio_relationships": {
                "type": "array",
                "description": "The anonymous people you want to associate with an object. Each object in the array contains an `anonymous_id` representing a person you haven't yet identified by `id` or `email`.",
                "items": {
                  "type": "object",
                  "properties": {
                    "identifiers": {
                      "type": "object",
                      "properties": {
                        "anonymous_id": {
                          "x-scalar-ignore": true,
                          "type": "string",
                          "description": "An identifier for an anonymous event, like a cookie. If set as an attribute on a person, any events bearing the same anonymous value are associated with this person. This value must be unique and is not reusable."
                        }
                      }
                    },
                    "relationship_attributes": {
                      "type": "object",
                      "description": "Coming October 2023 - The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship."
                    }
                  }
                }
              }
            },
            "required": [
              "type",
              "identifiers",
              "action"
            ]
          },
          {
            "title": "Object: Delete",
            "description": "Delete an object. This also removes relationships from people.\n",
            "example": {
              "action": "delete",
              "type": "object",
              "identifiers": {
                "object_id": "acme",
                "object_type_id": "1"
              }
            },
            "properties": {
              "action": {
                "type": "string",
                "description": "Indicates that the operation will `delete` the item of the specified `type`.",
                "enum": [
                  "delete"
                ]
              },
              "type": {
                "description": "The operation modifies a single object—non person data.",
                "type": "string",
                "enum": [
                  "object"
                ]
              },
              "identifiers": {
                "description": "The identifiers for a particular object. You can use either the `object_type_id` and `object_id` (where `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object) or the `cio_object_id`.",
                "oneOf": [
                  {
                    "title": "Object ID",
                    "type": "object",
                    "required": [
                      "object_type_id",
                      "object_id"
                    ],
                    "properties": {
                      "object_id": {
                        "type": "string",
                        "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                        "example": "acme"
                      },
                      "object_type_id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "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.",
                        "example": "1"
                      }
                    }
                  },
                  {
                    "title": "CIO Object ID",
                    "type": "object",
                    "required": [
                      "cio_object_id"
                    ],
                    "properties": {
                      "cio_object_id": {
                        "type": "string",
                        "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                        "example": "obb7fd050101"
                      }
                    }
                  }
                ]
              }
            },
            "required": [
              "type",
              "action"
            ]
          },
          {
            "title": "Object: Add relationships",
            "description": "Add relationships between an object and one or more people.",
            "example": {
              "action": "add_relationships",
              "cio_relationships": [
                {
                  "identifiers": {
                    "id": "42"
                  },
                  "relationship_attributes": {
                    "role": "admin"
                  }
                }
              ],
              "type": "object",
              "identifiers": {
                "object_id": "acme",
                "object_type_id": "1"
              }
            },
            "properties": {
              "action": {
                "type": "string",
                "description": "This operation associates an object with one or more people.",
                "enum": [
                  "add_relationships"
                ]
              },
              "cio_relationships": {
                "x-scalar-ignore": true,
                "type": "array",
                "description": "The people you want to associate with an object. Each object in the array represents a person.",
                "items": {
                  "type": "object",
                  "properties": {
                    "identifiers": {
                      "oneOf": [
                        {
                          "title": "id",
                          "type": "object",
                          "properties": {
                            "id": {
                              "x-scalar-ignore": true,
                              "type": "string",
                              "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                              "example": "42"
                            }
                          }
                        },
                        {
                          "title": "email",
                          "type": "object",
                          "properties": {
                            "email": {
                              "x-scalar-ignore": true,
                              "type": "string",
                              "description": "The email address of the customer.",
                              "example": "test@example.com"
                            }
                          }
                        },
                        {
                          "title": "cio_id",
                          "type": "object",
                          "properties": {
                            "cio_id": {
                              "x-scalar-ignore": true,
                              "type": "string",
                              "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                              "example": "a3000001"
                            }
                          }
                        }
                      ]
                    },
                    "relationship_attributes": {
                      "type": "object",
                      "description": "The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
                      "additionalProperties": {
                        "x-additionalPropertiesName": "Relationship Attributes"
                      }
                    }
                  },
                  "example": {
                    "identifiers": {
                      "id": "42"
                    },
                    "relationship_attributes": {
                      "role": "admin",
                      "date_created": 1702480414
                    }
                  }
                }
              },
              "type": {
                "description": "The operation modifies a single object—non person data.",
                "type": "string",
                "enum": [
                  "object"
                ]
              },
              "identifiers": {
                "description": "The identifiers for a particular object. You can use either the `object_type_id` and `object_id` (where `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object) or the `cio_object_id`.",
                "oneOf": [
                  {
                    "title": "Object ID",
                    "type": "object",
                    "required": [
                      "object_type_id",
                      "object_id"
                    ],
                    "properties": {
                      "object_id": {
                        "type": "string",
                        "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                        "example": "acme"
                      },
                      "object_type_id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "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.",
                        "example": "1"
                      }
                    }
                  },
                  {
                    "title": "CIO Object ID",
                    "type": "object",
                    "required": [
                      "cio_object_id"
                    ],
                    "properties": {
                      "cio_object_id": {
                        "type": "string",
                        "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                        "example": "obb7fd050101"
                      }
                    }
                  }
                ]
              }
            },
            "required": [
              "type",
              "action",
              "cio_relationships"
            ]
          },
          {
            "title": "Object: Delete relationships",
            "description": "Delete relationships between an object and one or more people.",
            "example": {
              "action": "delete_relationships",
              "cio_relationships": [
                {
                  "identifiers": {
                    "id": "42"
                  }
                }
              ],
              "type": "object",
              "identifiers": {
                "object_id": "acme",
                "object_type_id": "1"
              }
            },
            "properties": {
              "action": {
                "type": "string",
                "description": "This operation deletes an object relationship from one or more people.",
                "enum": [
                  "delete_relationships"
                ]
              },
              "cio_relationships": {
                "x-scalar-ignore": true,
                "type": "array",
                "description": "The people you want to associate with an object. Each object in the array represents a person.",
                "items": {
                  "type": "object",
                  "properties": {
                    "identifiers": {
                      "oneOf": [
                        {
                          "title": "id",
                          "type": "object",
                          "properties": {
                            "id": {
                              "x-scalar-ignore": true,
                              "type": "string",
                              "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                              "example": "42"
                            }
                          }
                        },
                        {
                          "title": "email",
                          "type": "object",
                          "properties": {
                            "email": {
                              "x-scalar-ignore": true,
                              "type": "string",
                              "description": "The email address of the customer.",
                              "example": "test@example.com"
                            }
                          }
                        },
                        {
                          "title": "cio_id",
                          "type": "object",
                          "properties": {
                            "cio_id": {
                              "x-scalar-ignore": true,
                              "type": "string",
                              "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                              "example": "a3000001"
                            }
                          }
                        }
                      ]
                    },
                    "relationship_attributes": {
                      "type": "object",
                      "description": "The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
                      "additionalProperties": {
                        "x-additionalPropertiesName": "Relationship Attributes"
                      }
                    }
                  },
                  "example": {
                    "identifiers": {
                      "id": "42"
                    },
                    "relationship_attributes": {
                      "role": "admin",
                      "date_created": 1702480414
                    }
                  }
                }
              },
              "type": {
                "description": "The operation modifies a single object—non person data.",
                "type": "string",
                "enum": [
                  "object"
                ]
              },
              "identifiers": {
                "description": "The identifiers for a particular object. You can use either the `object_type_id` and `object_id` (where `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object) or the `cio_object_id`.",
                "oneOf": [
                  {
                    "title": "Object ID",
                    "type": "object",
                    "required": [
                      "object_type_id",
                      "object_id"
                    ],
                    "properties": {
                      "object_id": {
                        "type": "string",
                        "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                        "example": "acme"
                      },
                      "object_type_id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "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.",
                        "example": "1"
                      }
                    }
                  },
                  {
                    "title": "CIO Object ID",
                    "type": "object",
                    "required": [
                      "cio_object_id"
                    ],
                    "properties": {
                      "cio_object_id": {
                        "type": "string",
                        "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                        "example": "obb7fd050101"
                      }
                    }
                  }
                ]
              }
            },
            "required": [
              "type",
              "action",
              "cio_relationships"
            ]
          }
        ],
        "discriminator": {
          "propertyName": "action"
        }
      },
      "person_operations": {
        "x-scalar-ignore": true,
        "title": "Person operations",
        "example": {
          "action": "identify",
          "identifiers": {
            "id": "42"
          },
          "type": "person",
          "attributes": {
            "first_name": "Jane"
          }
        },
        "oneOf": [
          {
            "title": "Person: Identify",
            "description": "Add or update a person.",
            "example": {
              "action": "identify",
              "identifiers": {
                "id": "42"
              },
              "type": "person",
              "attributes": {
                "first_name": "Jane",
                "last_name": "Doe",
                "plan": "premium"
              }
            },
            "properties": {
              "action": {
                "type": "string",
                "description": "Indicates that the operation will `identify` the item of the specified `type`.",
                "enum": [
                  "identify"
                ]
              },
              "identifiers": {
                "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
                "oneOf": [
                  {
                    "title": "id",
                    "type": "object",
                    "required": [
                      "id"
                    ],
                    "properties": {
                      "id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                        "example": "42"
                      }
                    }
                  },
                  {
                    "title": "email",
                    "type": "object",
                    "required": [
                      "email"
                    ],
                    "properties": {
                      "email": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The email address of the customer.",
                        "example": "test@example.com"
                      }
                    }
                  },
                  {
                    "title": "phone",
                    "type": "object",
                    "required": [
                      "phone"
                    ],
                    "properties": {
                      "phone": {
                        "type": "string",
                        "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                        "example": "+14155552671"
                      }
                    }
                  },
                  {
                    "title": "cio_id",
                    "type": "object",
                    "required": [
                      "cio_id"
                    ],
                    "properties": {
                      "cio_id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                        "example": "a3000001"
                      }
                    }
                  }
                ]
              },
              "type": {
                "description": "The operation modifies a person in Customer.io",
                "type": "string",
                "enum": [
                  "person"
                ]
              },
              "attributes": {
                "type": "object",
                "description": "Attributes that you want to add or update for this person. You can pass properties that aren't defined below to set custom attributes; the defined properties are reserved in the Customer.io Track API.",
                "properties": {
                  "_update": {
                    "type": "boolean",
                    "default": false,
                    "description": "If `true`, update only existing people and prevent accidental profile creation. If no person matches the identifiers, the request does nothing."
                  },
                  "cio_subscription_preferences": {
                    "x-scalar-ignore": true,
                    "description": "A person's [subscription center](/journeys/channels/subscriptions/center/) preferences. Use JSON dot notation, such as `cio_subscription_preferences.topics.topic_<id>`, to update one topic without replacing others.",
                    "type": "object",
                    "properties": {
                      "topics": {
                        "type": "object",
                        "description": "Contains active topics in your workspace, named `topic_<id>`.",
                        "additionalProperties": {
                          "x-additionalPropertiesName": "topic_<id>",
                          "description": "Boolean preference for a topic named `topic_<id>`; `true` subscribes, `false` unsubscribes, and empty or missing values use the topic default. Find topic IDs with [getTopics](/integrations/api/app/tag/subscription-center/getTopics/).",
                          "type": "boolean"
                        }
                      }
                    },
                    "example": {
                      "topics": {
                        "topic_1": true,
                        "topic_2": false,
                        "topic_3": true
                      }
                    }
                  }
                },
                "additionalProperties": {
                  "x-additionalPropertiesName": "additional attributes",
                  "description": "Custom properties that you want to set as attributes on this person."
                }
              },
              "cio_relationships": {
                "x-scalar-ignore": true,
                "type": "array",
                "description": "Each object in the array represents a relationship you want to add to, or remove from, a person.",
                "items": {
                  "properties": {
                    "identifiers": {
                      "description": "The identifiers for a particular object. You can use either the `object_type_id` and `object_id` (where `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object) or the `cio_object_id`.",
                      "oneOf": [
                        {
                          "title": "Object ID",
                          "type": "object",
                          "required": [
                            "object_type_id",
                            "object_id"
                          ],
                          "properties": {
                            "object_id": {
                              "type": "string",
                              "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                              "example": "acme"
                            },
                            "object_type_id": {
                              "x-scalar-ignore": true,
                              "type": "string",
                              "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.",
                              "example": "1"
                            }
                          }
                        },
                        {
                          "title": "CIO Object ID",
                          "type": "object",
                          "required": [
                            "cio_object_id"
                          ],
                          "properties": {
                            "cio_object_id": {
                              "type": "string",
                              "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                              "example": "obb7fd050101"
                            }
                          }
                        }
                      ]
                    },
                    "relationship_attributes": {
                      "x-scalar-ignore": true,
                      "type": "object",
                      "description": "The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
                      "additionalProperties": {
                        "x-additionalPropertiesName": "Relationship Attributes"
                      },
                      "example": {
                        "role": "admin"
                      }
                    }
                  }
                }
              },
              "timestamp": {
                "type": "integer",
                "description": "The Unix timestamp for when the attribute update occurred. This can be used to control the order of attribute updates when multiple requests are sent in rapid succession.",
                "example": 1772013598
              }
            },
            "required": [
              "type",
              "identifiers",
              "action"
            ]
          },
          {
            "title": "Person: Delete",
            "description": "Delete a person from your workspace.",
            "example": {
              "action": "delete",
              "identifiers": {
                "id": "42"
              },
              "type": "person"
            },
            "properties": {
              "action": {
                "type": "string",
                "description": "Indicates that the operation will `delete` the item of the specified `type`.",
                "enum": [
                  "delete"
                ]
              },
              "identifiers": {
                "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
                "oneOf": [
                  {
                    "title": "id",
                    "type": "object",
                    "required": [
                      "id"
                    ],
                    "properties": {
                      "id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                        "example": "42"
                      }
                    }
                  },
                  {
                    "title": "email",
                    "type": "object",
                    "required": [
                      "email"
                    ],
                    "properties": {
                      "email": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The email address of the customer.",
                        "example": "test@example.com"
                      }
                    }
                  },
                  {
                    "title": "phone",
                    "type": "object",
                    "required": [
                      "phone"
                    ],
                    "properties": {
                      "phone": {
                        "type": "string",
                        "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                        "example": "+14155552671"
                      }
                    }
                  },
                  {
                    "title": "cio_id",
                    "type": "object",
                    "required": [
                      "cio_id"
                    ],
                    "properties": {
                      "cio_id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                        "example": "a3000001"
                      }
                    }
                  }
                ]
              },
              "type": {
                "description": "The operation modifies a person in Customer.io",
                "type": "string",
                "enum": [
                  "person"
                ]
              }
            },
            "required": [
              "type",
              "identifiers",
              "action"
            ]
          },
          {
            "title": "Person: Event",
            "description": "A custom event attributed to a person. You can use events to trigger automations, or reference event information using liquid in your messages.",
            "example": {
              "action": "event",
              "identifiers": {
                "id": "42"
              },
              "name": "purchase",
              "type": "person",
              "attributes": {
                "product": "Widget",
                "price": 29.99
              }
            },
            "properties": {
              "action": {
                "type": "string",
                "description": "A custom event attributed to the specified person.",
                "enum": [
                  "event"
                ]
              },
              "identifiers": {
                "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
                "oneOf": [
                  {
                    "title": "id",
                    "type": "object",
                    "required": [
                      "id"
                    ],
                    "properties": {
                      "id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                        "example": "42"
                      }
                    }
                  },
                  {
                    "title": "email",
                    "type": "object",
                    "required": [
                      "email"
                    ],
                    "properties": {
                      "email": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The email address of the customer.",
                        "example": "test@example.com"
                      }
                    }
                  },
                  {
                    "title": "phone",
                    "type": "object",
                    "required": [
                      "phone"
                    ],
                    "properties": {
                      "phone": {
                        "type": "string",
                        "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                        "example": "+14155552671"
                      }
                    }
                  },
                  {
                    "title": "cio_id",
                    "type": "object",
                    "required": [
                      "cio_id"
                    ],
                    "properties": {
                      "cio_id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                        "example": "a3000001"
                      }
                    }
                  }
                ]
              },
              "name": {
                "type": "string",
                "description": "The name of the event. This is how you'll find your event in Customer.io or select it when using events as automation triggers."
              },
              "type": {
                "description": "The operation modifies a person in Customer.io",
                "type": "string",
                "enum": [
                  "person"
                ]
              },
              "attributes": {
                "type": "object",
                "description": "Additional information that you might want to reference in a message using liquid or use to set attributes on the identified person.\n",
                "additionalProperties": {
                  "x-additionalPropertiesName": "liquid merge data",
                  "description": "Insert key-values that you want to reference in your message here."
                },
                "properties": {
                  "from_address": {
                    "type": "string",
                    "format": "email",
                    "description": "The address you want to trigger messages from, overriding the `from` field in emails triggered by the event."
                  },
                  "recipient": {
                    "type": "string",
                    "format": "email",
                    "description": "The email address of the person associated with the event, overriding the `to` field in emails triggered by the event."
                  },
                  "reply_to": {
                    "type": "string",
                    "format": "email",
                    "description": "The address you want to receive replies to, overriding the `reply to` field for emails triggered by the event."
                  }
                }
              },
              "id": {
                "type": "string",
                "format": "ULID",
                "description": "A valid ULID used to deduplicate events. Note - our Python and Ruby libraries do not pass this id."
              },
              "timestamp": {
                "type": "integer",
                "description": "The Unix timestamp when the event happened."
              }
            },
            "required": [
              "type",
              "identifiers",
              "action",
              "name"
            ]
          },
          {
            "title": "Person: Screen view",
            "description": "A mobile \"screenview\" event attributed to a person. Our `screen` and `page` event types are more specific than our standard `event`, and help you track and target people based on the pages people visit in your mobile app or website.",
            "example": {
              "action": "screen",
              "identifiers": {
                "id": "42"
              },
              "name": "Dashboard",
              "type": "person",
              "attributes": {
                "app_version": "2.1.0"
              }
            },
            "properties": {
              "action": {
                "type": "string",
                "description": "A mobile \"screenview\" event attributed to a person. Our `screen` and `page` event types are more specific than our standard `event`, and help you track and target people based on the pages people visit in your mobile app or website.",
                "enum": [
                  "screen"
                ]
              },
              "identifiers": {
                "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
                "oneOf": [
                  {
                    "title": "id",
                    "type": "object",
                    "required": [
                      "id"
                    ],
                    "properties": {
                      "id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                        "example": "42"
                      }
                    }
                  },
                  {
                    "title": "email",
                    "type": "object",
                    "required": [
                      "email"
                    ],
                    "properties": {
                      "email": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The email address of the customer.",
                        "example": "test@example.com"
                      }
                    }
                  },
                  {
                    "title": "phone",
                    "type": "object",
                    "required": [
                      "phone"
                    ],
                    "properties": {
                      "phone": {
                        "type": "string",
                        "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                        "example": "+14155552671"
                      }
                    }
                  },
                  {
                    "title": "cio_id",
                    "type": "object",
                    "required": [
                      "cio_id"
                    ],
                    "properties": {
                      "cio_id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                        "example": "a3000001"
                      }
                    }
                  }
                ]
              },
              "name": {
                "type": "string",
                "description": "The name of the screen a person visited. This is how you'll find and select screen view events in Customer.io."
              },
              "type": {
                "description": "The operation modifies a person in Customer.io",
                "type": "string",
                "enum": [
                  "person"
                ]
              },
              "attributes": {
                "type": "object",
                "description": "Additional information that you might want to reference in a message using liquid or use to set attributes on the identified person.",
                "additionalProperties": {
                  "x-additionalPropertiesName": "liquid merge data",
                  "description": "Insert key-values that you want to reference in your message here."
                }
              },
              "id": {
                "type": "string",
                "format": "ULID",
                "description": "A valid ULID used to deduplicate events. Note - our Python and Ruby libraries do not pass this id."
              },
              "timestamp": {
                "type": "integer",
                "description": "The Unix timestamp when the event happened."
              }
            },
            "required": [
              "type",
              "identifiers",
              "action",
              "name"
            ]
          },
          {
            "title": "Person: Page view",
            "description": "A web \"pageview\" event attributed to a person. Our `screen` and `page` event types are more specific than our standard `event`, and help you track and target people based on the pages people visit in your mobile app or website.",
            "example": {
              "action": "page",
              "identifiers": {
                "id": "42"
              },
              "name": "/pricing",
              "type": "person",
              "attributes": {
                "referrer": "https://example.com"
              }
            },
            "properties": {
              "action": {
                "type": "string",
                "description": "A web \"pageview\" event attributed to a person. Our `screen` and `page` event types are more specific than our standard `event`, and help you track and target people based on the pages people visit in your mobile app or website.",
                "enum": [
                  "page"
                ]
              },
              "identifiers": {
                "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
                "oneOf": [
                  {
                    "title": "id",
                    "type": "object",
                    "required": [
                      "id"
                    ],
                    "properties": {
                      "id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                        "example": "42"
                      }
                    }
                  },
                  {
                    "title": "email",
                    "type": "object",
                    "required": [
                      "email"
                    ],
                    "properties": {
                      "email": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The email address of the customer.",
                        "example": "test@example.com"
                      }
                    }
                  },
                  {
                    "title": "phone",
                    "type": "object",
                    "required": [
                      "phone"
                    ],
                    "properties": {
                      "phone": {
                        "type": "string",
                        "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                        "example": "+14155552671"
                      }
                    }
                  },
                  {
                    "title": "cio_id",
                    "type": "object",
                    "required": [
                      "cio_id"
                    ],
                    "properties": {
                      "cio_id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                        "example": "a3000001"
                      }
                    }
                  }
                ]
              },
              "name": {
                "type": "string",
                "description": "The name of the page or page path that a person visited. This is how you'll find and select page view events in Customer.io."
              },
              "type": {
                "description": "The operation modifies a person in Customer.io",
                "type": "string",
                "enum": [
                  "person"
                ]
              },
              "attributes": {
                "type": "object",
                "description": "Additional information that you might want to reference in a message using liquid or use to set attributes on the identified person.",
                "properties": {
                  "keywords": {
                    "type": "array",
                    "description": "Page-content keywords, typically like HTML meta keywords. Mainly for publishers with pageview tracking; not collected automatically.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "path": {
                    "type": "string",
                    "description": "The path portion of the page's URL. Equivalent to the canonical `path` which defaults to `location.pathname` from the DOM API."
                  },
                  "referrer": {
                    "type": "string",
                    "description": "The previous page's full URL. Equivalent to `document.referrer` from the DOM API."
                  },
                  "search": {
                    "type": "string",
                    "description": "The query string portion of the page's URL. Equivalent to `location.search` from the DOM API."
                  },
                  "title": {
                    "type": "string",
                    "description": "The page's title. Equivalent to `document.title` from the DOM API."
                  },
                  "url": {
                    "type": "string",
                    "description": "A page's full URL. We first look for the canonical URL. If the canonical URL is not provided, we'll use `location.href` from the DOM API."
                  }
                },
                "additionalProperties": {
                  "x-additionalPropertiesName": "liquid merge data",
                  "description": "Insert key-values that you want to reference in your message here."
                }
              },
              "id": {
                "type": "string",
                "format": "ULID",
                "description": "A valid ULID used to deduplicate events. Note - our Python and Ruby libraries do not pass this id."
              },
              "timestamp": {
                "type": "integer",
                "description": "The Unix timestamp when the event happened."
              }
            },
            "required": [
              "type",
              "identifiers",
              "action",
              "name"
            ]
          },
          {
            "title": "Person: Add relationships",
            "description": "Associate multiple objects with a person.",
            "example": {
              "action": "add_relationships",
              "cio_relationships": [
                {
                  "identifiers": {
                    "object_id": "acme",
                    "object_type_id": "1"
                  },
                  "relationship_attributes": {
                    "role": "admin"
                  }
                }
              ],
              "identifiers": {
                "id": "42"
              },
              "type": "person"
            },
            "properties": {
              "action": {
                "type": "string",
                "description": "This operation associates a person with one or more objects.",
                "enum": [
                  "add_relationships"
                ]
              },
              "cio_relationships": {
                "x-scalar-ignore": true,
                "type": "array",
                "description": "Each object in the array represents a relationship you want to add to, or remove from, a person.",
                "items": {
                  "properties": {
                    "identifiers": {
                      "description": "The identifiers for a particular object. You can use either the `object_type_id` and `object_id` (where `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object) or the `cio_object_id`.",
                      "oneOf": [
                        {
                          "title": "Object ID",
                          "type": "object",
                          "required": [
                            "object_type_id",
                            "object_id"
                          ],
                          "properties": {
                            "object_id": {
                              "type": "string",
                              "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                              "example": "acme"
                            },
                            "object_type_id": {
                              "x-scalar-ignore": true,
                              "type": "string",
                              "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.",
                              "example": "1"
                            }
                          }
                        },
                        {
                          "title": "CIO Object ID",
                          "type": "object",
                          "required": [
                            "cio_object_id"
                          ],
                          "properties": {
                            "cio_object_id": {
                              "type": "string",
                              "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                              "example": "obb7fd050101"
                            }
                          }
                        }
                      ]
                    },
                    "relationship_attributes": {
                      "x-scalar-ignore": true,
                      "type": "object",
                      "description": "The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
                      "additionalProperties": {
                        "x-additionalPropertiesName": "Relationship Attributes"
                      },
                      "example": {
                        "role": "admin"
                      }
                    }
                  }
                }
              },
              "identifiers": {
                "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
                "oneOf": [
                  {
                    "title": "id",
                    "type": "object",
                    "required": [
                      "id"
                    ],
                    "properties": {
                      "id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                        "example": "42"
                      }
                    }
                  },
                  {
                    "title": "email",
                    "type": "object",
                    "required": [
                      "email"
                    ],
                    "properties": {
                      "email": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The email address of the customer.",
                        "example": "test@example.com"
                      }
                    }
                  },
                  {
                    "title": "phone",
                    "type": "object",
                    "required": [
                      "phone"
                    ],
                    "properties": {
                      "phone": {
                        "type": "string",
                        "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                        "example": "+14155552671"
                      }
                    }
                  },
                  {
                    "title": "cio_id",
                    "type": "object",
                    "required": [
                      "cio_id"
                    ],
                    "properties": {
                      "cio_id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                        "example": "a3000001"
                      }
                    }
                  }
                ]
              },
              "type": {
                "description": "The operation modifies a person in Customer.io",
                "type": "string",
                "enum": [
                  "person"
                ]
              }
            },
            "required": [
              "type",
              "identifiers",
              "action",
              "cio_relationships"
            ]
          },
          {
            "title": "Person: Delete relationships",
            "description": "Remove multiple object relationships from a person.",
            "example": {
              "action": "delete_relationships",
              "cio_relationships": [
                {
                  "identifiers": {
                    "object_id": "acme",
                    "object_type_id": "1"
                  }
                }
              ],
              "identifiers": {
                "id": "42"
              },
              "type": "person"
            },
            "properties": {
              "action": {
                "type": "string",
                "description": "This operation deletes an object relationship from one or more people.",
                "enum": [
                  "delete_relationships"
                ]
              },
              "cio_relationships": {
                "x-scalar-ignore": true,
                "type": "array",
                "description": "Each object in the array represents a relationship you want to add to, or remove from, a person.",
                "items": {
                  "properties": {
                    "identifiers": {
                      "description": "The identifiers for a particular object. You can use either the `object_type_id` and `object_id` (where `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object) or the `cio_object_id`.",
                      "oneOf": [
                        {
                          "title": "Object ID",
                          "type": "object",
                          "required": [
                            "object_type_id",
                            "object_id"
                          ],
                          "properties": {
                            "object_id": {
                              "type": "string",
                              "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                              "example": "acme"
                            },
                            "object_type_id": {
                              "x-scalar-ignore": true,
                              "type": "string",
                              "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.",
                              "example": "1"
                            }
                          }
                        },
                        {
                          "title": "CIO Object ID",
                          "type": "object",
                          "required": [
                            "cio_object_id"
                          ],
                          "properties": {
                            "cio_object_id": {
                              "type": "string",
                              "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                              "example": "obb7fd050101"
                            }
                          }
                        }
                      ]
                    },
                    "relationship_attributes": {
                      "x-scalar-ignore": true,
                      "type": "object",
                      "description": "The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
                      "additionalProperties": {
                        "x-additionalPropertiesName": "Relationship Attributes"
                      },
                      "example": {
                        "role": "admin"
                      }
                    }
                  }
                }
              },
              "identifiers": {
                "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
                "oneOf": [
                  {
                    "title": "id",
                    "type": "object",
                    "required": [
                      "id"
                    ],
                    "properties": {
                      "id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                        "example": "42"
                      }
                    }
                  },
                  {
                    "title": "email",
                    "type": "object",
                    "required": [
                      "email"
                    ],
                    "properties": {
                      "email": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The email address of the customer.",
                        "example": "test@example.com"
                      }
                    }
                  },
                  {
                    "title": "phone",
                    "type": "object",
                    "required": [
                      "phone"
                    ],
                    "properties": {
                      "phone": {
                        "type": "string",
                        "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                        "example": "+14155552671"
                      }
                    }
                  },
                  {
                    "title": "cio_id",
                    "type": "object",
                    "required": [
                      "cio_id"
                    ],
                    "properties": {
                      "cio_id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                        "example": "a3000001"
                      }
                    }
                  }
                ]
              },
              "type": {
                "description": "The operation modifies a person in Customer.io",
                "type": "string",
                "enum": [
                  "person"
                ]
              }
            },
            "required": [
              "type",
              "identifiers",
              "action",
              "cio_relationships"
            ]
          },
          {
            "title": "Person: Add device",
            "description": "Assign devices to a person.",
            "example": {
              "action": "add_device",
              "device": {
                "platform": "ios",
                "token": "a83b219c-e756-4c5b-a8e3-d1a5c5b2f3c1",
                "last_used": 1713484800
              },
              "identifiers": {
                "id": "42"
              },
              "type": "person"
            },
            "properties": {
              "action": {
                "type": "string",
                "description": "Add a mobile device to a person's profile.",
                "enum": [
                  "add_device"
                ]
              },
              "device": {
                "description": "Device properties collected by [Customer.io SDKs](/integrations/sdk/) unless `autoTrackDeviceAttributes` is disabled. You can reference them outside `attributes` in segments.",
                "properties": {
                  "platform": {
                    "type": "string",
                    "enum": [
                      "ios",
                      "android"
                    ],
                    "description": "The device/messaging platform."
                  },
                  "token": {
                    "description": "The device token.",
                    "type": "string"
                  },
                  "attributes": {
                    "type": "object",
                    "description": "Attributes that you can reference to segment your audience—like a person's attributes, but specific to a device. These can be either the attributes defined below or custom key-value attributes.",
                    "properties": {
                      "_last_status": {
                        "type": "string",
                        "readOnly": true,
                        "description": "The delivery status of the last message sent to the device—sent, bounced, or suppressed. An empty string indicates that that the device hasn't received a push yet.",
                        "enum": [
                          "",
                          "bounced",
                          "sent",
                          "suppressed"
                        ]
                      },
                      "app_identifier": {
                        "type": "string",
                        "description": "The app that the device belongs to—the **Bundle ID / App identifier** you entered with that app's push credentials. If you have more than one app, we use this attribute to send push notifications to the right app. A device without an app identifier receives push notifications you send to your [default app](/messaging/channels/push/getting-started/#the-default-app)."
                      },
                      "app_version": {
                        "type": "string",
                        "description": "The version of your app that a customer uses. You might target app versions to let people know when they need to update, or expose them to new features when they do."
                      },
                      "cio_sdk_version": {
                        "type": "string",
                        "description": "The version of the Customer.io SDK in the app."
                      },
                      "device_locale": {
                        "type": "string",
                        "description": "The device's [IETF language code](/journeys/channels/localization/getting-started/#supported-languages), such as `en-MX` or `es-ES`."
                      },
                      "device_model": {
                        "type": "string",
                        "description": "The model of the device a person uses."
                      },
                      "device_os": {
                        "type": "string",
                        "description": "The operating system, including the version, on the device."
                      },
                      "push_enabled": {
                        "type": "string",
                        "description": "If `\"true\"`, the device is opted-in and can receive push notifications.",
                        "enum": [
                          "true",
                          "false"
                        ]
                      }
                    },
                    "additionalProperties": {
                      "x-additionalPropertiesName": "Custom Device Attributes",
                      "description": "Custom properties that you want to associate with the device.",
                      "type": "string"
                    }
                  },
                  "last_used": {
                    "type": "integer",
                    "format": "unix timestamp",
                    "description": "The `timestamp` when you last identified this device. If you don't pass a timestamp when you add or update a device, we use the time of the request itself. Our SDKs identify a device when a person launches their app."
                  }
                },
                "required": [
                  "token",
                  "platform"
                ]
              },
              "identifiers": {
                "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
                "oneOf": [
                  {
                    "title": "id",
                    "type": "object",
                    "required": [
                      "id"
                    ],
                    "properties": {
                      "id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                        "example": "42"
                      }
                    }
                  },
                  {
                    "title": "email",
                    "type": "object",
                    "required": [
                      "email"
                    ],
                    "properties": {
                      "email": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The email address of the customer.",
                        "example": "test@example.com"
                      }
                    }
                  },
                  {
                    "title": "phone",
                    "type": "object",
                    "required": [
                      "phone"
                    ],
                    "properties": {
                      "phone": {
                        "type": "string",
                        "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                        "example": "+14155552671"
                      }
                    }
                  },
                  {
                    "title": "cio_id",
                    "type": "object",
                    "required": [
                      "cio_id"
                    ],
                    "properties": {
                      "cio_id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                        "example": "a3000001"
                      }
                    }
                  }
                ]
              },
              "type": {
                "description": "The operation modifies a person in Customer.io",
                "type": "string",
                "enum": [
                  "person"
                ]
              }
            },
            "required": [
              "type",
              "identifiers",
              "action",
              "device"
            ]
          },
          {
            "title": "Person: Delete device",
            "description": "Delete devices that belong to a person.",
            "example": {
              "action": "delete_device",
              "device": {
                "token": "a83b219c-e756-4c5b-a8e3-d1a5c5b2f3c1"
              },
              "identifiers": {
                "id": "42"
              },
              "type": "person"
            },
            "properties": {
              "action": {
                "type": "string",
                "description": "Delete a device from a person's profile.",
                "enum": [
                  "delete_device"
                ]
              },
              "device": {
                "description": "The device you want to remove.",
                "type": "object",
                "required": [
                  "token"
                ],
                "properties": {
                  "token": {
                    "description": "The token of the device you want to remove.",
                    "type": "string"
                  }
                }
              },
              "identifiers": {
                "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
                "oneOf": [
                  {
                    "title": "id",
                    "type": "object",
                    "required": [
                      "id"
                    ],
                    "properties": {
                      "id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                        "example": "42"
                      }
                    }
                  },
                  {
                    "title": "email",
                    "type": "object",
                    "required": [
                      "email"
                    ],
                    "properties": {
                      "email": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The email address of the customer.",
                        "example": "test@example.com"
                      }
                    }
                  },
                  {
                    "title": "phone",
                    "type": "object",
                    "required": [
                      "phone"
                    ],
                    "properties": {
                      "phone": {
                        "type": "string",
                        "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                        "example": "+14155552671"
                      }
                    }
                  },
                  {
                    "title": "cio_id",
                    "type": "object",
                    "required": [
                      "cio_id"
                    ],
                    "properties": {
                      "cio_id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                        "example": "a3000001"
                      }
                    }
                  }
                ]
              },
              "type": {
                "description": "The operation modifies a person in Customer.io",
                "type": "string",
                "enum": [
                  "person"
                ]
              }
            },
            "required": [
              "type",
              "identifiers",
              "action",
              "device"
            ]
          },
          {
            "title": "Person: Merge",
            "example": {
              "primary": {
                "id": "42"
              },
              "secondary": {
                "id": "known-user-456"
              }
            },
            "type": "object",
            "description": "Merges `secondary` into `primary`, then deletes `secondary`. The operation is not reversible, and `primary` must already exist. See [merging duplicate people](/journeys/people/manage/merge-people/).",
            "required": [
              "type",
              "primary",
              "secondary",
              "action"
            ],
            "properties": {
              "action": {
                "type": "string",
                "description": "Merges `secondary` into `primary`, then deletes `secondary`. Not reversible; see [merging duplicate people](/journeys/people/manage/merge-people/).",
                "enum": [
                  "merge"
                ]
              },
              "primary": {
                "description": "The person who remains after the merge, identified by `id`, `email`, or `cio_id`. If email identifiers are disabled in [workspace settings](https://fly.customer.io/workspaces/last/settings/edit), use `id` or `cio_id`.",
                "oneOf": [
                  {
                    "title": "id",
                    "type": "object",
                    "required": [
                      "id"
                    ],
                    "properties": {
                      "id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                        "example": "42"
                      }
                    }
                  },
                  {
                    "title": "email",
                    "type": "object",
                    "required": [
                      "email"
                    ],
                    "properties": {
                      "email": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The email address of the customer.",
                        "example": "test@example.com"
                      }
                    }
                  },
                  {
                    "title": "cio_id",
                    "type": "object",
                    "required": [
                      "cio_id"
                    ],
                    "properties": {
                      "cio_id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                        "example": "a3000001"
                      }
                    }
                  }
                ]
              },
              "secondary": {
                "description": "The person deleted after the merge, identified by `id`, `email`, or `cio_id`. If email identifiers are disabled in [workspace settings](https://fly.customer.io/workspaces/last/settings/edit), use `id` or `cio_id`.",
                "oneOf": [
                  {
                    "title": "id",
                    "type": "object",
                    "required": [
                      "id"
                    ],
                    "properties": {
                      "id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                        "example": "42"
                      }
                    }
                  },
                  {
                    "title": "email",
                    "type": "object",
                    "required": [
                      "email"
                    ],
                    "properties": {
                      "email": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The email address of the customer.",
                        "example": "test@example.com"
                      }
                    }
                  },
                  {
                    "title": "cio_id",
                    "type": "object",
                    "required": [
                      "cio_id"
                    ],
                    "properties": {
                      "cio_id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                        "example": "a3000001"
                      }
                    }
                  }
                ]
              },
              "type": {
                "description": "The operation modifies a person in Customer.io",
                "type": "string",
                "enum": [
                  "person"
                ]
              }
            }
          },
          {
            "title": "Person: Suppress",
            "description": "Suppress a person's identifier(s) in Customer.io, so that you can't message a person or add their identifiers back to your workspace. This is separate from suppressions performed by your email provider.",
            "example": {
              "action": "suppress",
              "identifiers": {
                "id": "42"
              },
              "type": "person"
            },
            "properties": {
              "action": {
                "type": "string",
                "description": "Suppress a person's identifier(s) in Customer.io, so that you can't message a person or add their identifiers back to your workspace. This is separate from suppressions performed by your email provider.",
                "enum": [
                  "suppress"
                ]
              },
              "identifiers": {
                "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
                "oneOf": [
                  {
                    "title": "id",
                    "type": "object",
                    "required": [
                      "id"
                    ],
                    "properties": {
                      "id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                        "example": "42"
                      }
                    }
                  },
                  {
                    "title": "email",
                    "type": "object",
                    "required": [
                      "email"
                    ],
                    "properties": {
                      "email": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The email address of the customer.",
                        "example": "test@example.com"
                      }
                    }
                  },
                  {
                    "title": "phone",
                    "type": "object",
                    "required": [
                      "phone"
                    ],
                    "properties": {
                      "phone": {
                        "type": "string",
                        "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                        "example": "+14155552671"
                      }
                    }
                  },
                  {
                    "title": "cio_id",
                    "type": "object",
                    "required": [
                      "cio_id"
                    ],
                    "properties": {
                      "cio_id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                        "example": "a3000001"
                      }
                    }
                  }
                ]
              },
              "type": {
                "description": "The operation modifies a person in Customer.io",
                "type": "string",
                "enum": [
                  "person"
                ]
              }
            },
            "required": [
              "type",
              "identifiers",
              "action"
            ]
          },
          {
            "title": "Person: Unsuppress",
            "description": "Unsuppress a person's identifier(s) in Customer.io, so that you can message a person or add their identifiers back to your workspace. This does not unsuppress addresses that were previously suppressed by your email provider.",
            "example": {
              "action": "unsuppress",
              "identifiers": {
                "id": "42"
              },
              "type": "person"
            },
            "properties": {
              "action": {
                "type": "string",
                "description": "Unsuppress a person's identifier(s) in Customer.io, so that you can message a person or add their identifiers back to your workspace. This does not unsuppress addresses that were previously suppressed by your email provider.",
                "enum": [
                  "unsuppress"
                ]
              },
              "identifiers": {
                "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
                "oneOf": [
                  {
                    "title": "id",
                    "type": "object",
                    "required": [
                      "id"
                    ],
                    "properties": {
                      "id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                        "example": "42"
                      }
                    }
                  },
                  {
                    "title": "email",
                    "type": "object",
                    "required": [
                      "email"
                    ],
                    "properties": {
                      "email": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The email address of the customer.",
                        "example": "test@example.com"
                      }
                    }
                  },
                  {
                    "title": "phone",
                    "type": "object",
                    "required": [
                      "phone"
                    ],
                    "properties": {
                      "phone": {
                        "type": "string",
                        "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                        "example": "+14155552671"
                      }
                    }
                  },
                  {
                    "title": "cio_id",
                    "type": "object",
                    "required": [
                      "cio_id"
                    ],
                    "properties": {
                      "cio_id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                        "example": "a3000001"
                      }
                    }
                  }
                ]
              },
              "type": {
                "description": "The operation modifies a person in Customer.io",
                "type": "string",
                "enum": [
                  "person"
                ]
              }
            },
            "required": [
              "type",
              "identifiers",
              "action"
            ]
          }
        ],
        "discriminator": {
          "propertyName": "action"
        }
      },
      "person_common": {
        "x-scalar-ignore": true,
        "type": "object",
        "required": [
          "type",
          "identifiers"
        ],
        "properties": {
          "identifiers": {
            "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
            "oneOf": [
              {
                "title": "id",
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                    "example": "42"
                  }
                }
              },
              {
                "title": "email",
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The email address of the customer.",
                    "example": "test@example.com"
                  }
                }
              },
              {
                "title": "phone",
                "type": "object",
                "required": [
                  "phone"
                ],
                "properties": {
                  "phone": {
                    "type": "string",
                    "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                    "example": "+14155552671"
                  }
                }
              },
              {
                "title": "cio_id",
                "type": "object",
                "required": [
                  "cio_id"
                ],
                "properties": {
                  "cio_id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                    "example": "a3000001"
                  }
                }
              }
            ]
          },
          "type": {
            "description": "The operation modifies a person in Customer.io",
            "type": "string",
            "enum": [
              "person"
            ]
          }
        }
      },
      "person_attributes": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "Attributes that you want to add or update for this person.",
        "properties": {
          "cio_subscription_preferences": {
            "x-scalar-ignore": true,
            "description": "A person's [subscription center](/journeys/channels/subscriptions/center/) preferences. Use JSON dot notation, such as `cio_subscription_preferences.topics.topic_<id>`, to update one topic without replacing others.",
            "type": "object",
            "properties": {
              "topics": {
                "type": "object",
                "description": "Contains active topics in your workspace, named `topic_<id>`.",
                "additionalProperties": {
                  "x-additionalPropertiesName": "topic_<id>",
                  "description": "Boolean preference for a topic named `topic_<id>`; `true` subscribes, `false` unsubscribes, and empty or missing values use the topic default. Find topic IDs with [getTopics](/integrations/api/app/tag/subscription-center/getTopics/).",
                  "type": "boolean"
                }
              }
            },
            "example": {
              "topics": {
                "topic_1": true,
                "topic_2": false,
                "topic_3": true
              }
            }
          }
        }
      },
      "object_relationships": {
        "x-scalar-ignore": true,
        "type": "array",
        "description": "Each object in the array represents a relationship you want to add to, or remove from, a person.",
        "items": {
          "properties": {
            "identifiers": {
              "description": "The identifiers for a particular object. You can use either the `object_type_id` and `object_id` (where `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object) or the `cio_object_id`.",
              "oneOf": [
                {
                  "title": "Object ID",
                  "type": "object",
                  "required": [
                    "object_type_id",
                    "object_id"
                  ],
                  "properties": {
                    "object_id": {
                      "type": "string",
                      "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                      "example": "acme"
                    },
                    "object_type_id": {
                      "x-scalar-ignore": true,
                      "type": "string",
                      "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.",
                      "example": "1"
                    }
                  }
                },
                {
                  "title": "CIO Object ID",
                  "type": "object",
                  "required": [
                    "cio_object_id"
                  ],
                  "properties": {
                    "cio_object_id": {
                      "type": "string",
                      "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                      "example": "obb7fd050101"
                    }
                  }
                }
              ]
            },
            "relationship_attributes": {
              "x-scalar-ignore": true,
              "type": "object",
              "description": "The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
              "additionalProperties": {
                "x-additionalPropertiesName": "Relationship Attributes"
              },
              "example": {
                "role": "admin"
              }
            }
          }
        }
      },
      "relationship_attributes": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
        "additionalProperties": {
          "x-additionalPropertiesName": "Relationship Attributes"
        },
        "example": {
          "role": "admin"
        }
      },
      "object_attributes": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "Data that belongs to the object. Pass `null` or an empty string to remove an attribute. Some attributes have special meaning—see [reserved attributes](/journeys/objects-data/objects/create/#reserved-attributes)."
      },
      "object_common_identify": {
        "x-scalar-ignore": true,
        "type": "object",
        "required": [
          "type",
          "identifiers"
        ],
        "properties": {
          "identifiers": {
            "description": "Custom object identifiers. To create, provide `object_type_id` and `object_id`; to update, use those values or `cio_object_id`.",
            "oneOf": [
              {
                "title": "Object ID (create and update)",
                "type": "object",
                "required": [
                  "object_type_id",
                  "object_id"
                ],
                "properties": {
                  "object_id": {
                    "type": "string",
                    "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                    "example": "acme"
                  },
                  "object_type_id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "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.",
                    "example": "1"
                  }
                }
              },
              {
                "title": "CIO Object ID (updates only)",
                "type": "object",
                "required": [
                  "cio_object_id"
                ],
                "properties": {
                  "cio_object_id": {
                    "type": "string",
                    "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                    "example": "obb7fd050101"
                  }
                }
              }
            ]
          },
          "type": {
            "description": "The operation modifies a single object—non person data.",
            "type": "string",
            "enum": [
              "object"
            ]
          }
        }
      },
      "object_common": {
        "x-scalar-ignore": true,
        "properties": {
          "type": {
            "description": "The operation modifies a single object—non person data.",
            "type": "string",
            "enum": [
              "object"
            ]
          },
          "identifiers": {
            "description": "The identifiers for a particular object. You can use either the `object_type_id` and `object_id` (where `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object) or the `cio_object_id`.",
            "oneOf": [
              {
                "title": "Object ID",
                "type": "object",
                "required": [
                  "object_type_id",
                  "object_id"
                ],
                "properties": {
                  "object_id": {
                    "type": "string",
                    "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                    "example": "acme"
                  },
                  "object_type_id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "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.",
                    "example": "1"
                  }
                }
              },
              {
                "title": "CIO Object ID",
                "type": "object",
                "required": [
                  "cio_object_id"
                ],
                "properties": {
                  "cio_object_id": {
                    "type": "string",
                    "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                    "example": "obb7fd050101"
                  }
                }
              }
            ]
          }
        },
        "required": [
          "type"
        ]
      },
      "v2_cio_relationships": {
        "x-scalar-ignore": true,
        "type": "array",
        "description": "The people you want to associate with an object. Each object in the array represents a person.",
        "items": {
          "type": "object",
          "properties": {
            "identifiers": {
              "oneOf": [
                {
                  "title": "id",
                  "type": "object",
                  "properties": {
                    "id": {
                      "x-scalar-ignore": true,
                      "type": "string",
                      "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                      "example": "42"
                    }
                  }
                },
                {
                  "title": "email",
                  "type": "object",
                  "properties": {
                    "email": {
                      "x-scalar-ignore": true,
                      "type": "string",
                      "description": "The email address of the customer.",
                      "example": "test@example.com"
                    }
                  }
                },
                {
                  "title": "cio_id",
                  "type": "object",
                  "properties": {
                    "cio_id": {
                      "x-scalar-ignore": true,
                      "type": "string",
                      "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                      "example": "a3000001"
                    }
                  }
                }
              ]
            },
            "relationship_attributes": {
              "type": "object",
              "description": "The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
              "additionalProperties": {
                "x-additionalPropertiesName": "Relationship Attributes"
              }
            }
          },
          "example": {
            "identifiers": {
              "id": "42"
            },
            "relationship_attributes": {
              "role": "admin",
              "date_created": 1702480414
            }
          }
        }
      },
      "v1_cio_relationships": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "Describes relationships to an entity—a non-person object in Customer.io, like a company, educational course, job board, etc.",
        "properties": {
          "action": {
            "type": "string",
            "description": "This determines whether the `relationships` array adds relationships to a person or removes them from a person.",
            "enum": [
              "add_relationships",
              "delete_relationships"
            ]
          },
          "relationships": {
            "x-scalar-ignore": true,
            "type": "array",
            "description": "Each object in the array represents a relationship you want to add to, or remove from, a person.",
            "items": {
              "properties": {
                "identifiers": {
                  "description": "The identifiers for a particular object. You can use either the `object_type_id` and `object_id` (where `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object) or the `cio_object_id`.",
                  "oneOf": [
                    {
                      "title": "Object ID",
                      "type": "object",
                      "required": [
                        "object_type_id",
                        "object_id"
                      ],
                      "properties": {
                        "object_id": {
                          "type": "string",
                          "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                          "example": "acme"
                        },
                        "object_type_id": {
                          "x-scalar-ignore": true,
                          "type": "string",
                          "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.",
                          "example": "1"
                        }
                      }
                    },
                    {
                      "title": "CIO Object ID",
                      "type": "object",
                      "required": [
                        "cio_object_id"
                      ],
                      "properties": {
                        "cio_object_id": {
                          "type": "string",
                          "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                          "example": "obb7fd050101"
                        }
                      }
                    }
                  ]
                },
                "relationship_attributes": {
                  "x-scalar-ignore": true,
                  "type": "object",
                  "description": "The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
                  "additionalProperties": {
                    "x-additionalPropertiesName": "Relationship Attributes"
                  },
                  "example": {
                    "role": "admin"
                  }
                }
              }
            }
          }
        }
      },
      "track-metrics": {
        "x-scalar-ignore": true,
        "description": "The base properties shared across multiple metric types.",
        "type": "object",
        "required": [
          "delivery_id"
        ],
        "properties": {
          "delivery_id": {
            "type": "string",
            "description": "The CIO-Delivery-ID from the notification that you want to associate the `event` with.",
            "example": "RPILAgUBcRhIBqSfeiIwdIYJKxTY"
          },
          "timestamp": {
            "type": "integer",
            "format": "unix timestamp",
            "description": "The unix timestamp when the event occurred.",
            "example": 1613063089
          }
        }
      },
      "object_identify": {
        "example": {
          "action": "identify",
          "identifiers": {
            "object_id": "acme",
            "object_type_id": "1"
          },
          "type": "object",
          "attributes": {
            "name": "Acme Corp",
            "plan": "enterprise",
            "seats": 50
          }
        },
        "type": "object",
        "title": "Object: Identify",
        "description": "The `action` determines the type of operation you want to perform with an object. If `identifiers.object_id` does not exist, we'll create a new object; if it exists, we'll update the object accordingly.\n",
        "properties": {
          "action": {
            "type": "string",
            "description": "Indicates that the operation will `identify` the item of the specified `type`.",
            "enum": [
              "identify"
            ]
          },
          "identifiers": {
            "description": "Custom object identifiers. To create, provide `object_type_id` and `object_id`; to update, use those values or `cio_object_id`.",
            "oneOf": [
              {
                "title": "Object ID (create and update)",
                "type": "object",
                "required": [
                  "object_type_id",
                  "object_id"
                ],
                "properties": {
                  "object_id": {
                    "type": "string",
                    "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                    "example": "acme"
                  },
                  "object_type_id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "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.",
                    "example": "1"
                  }
                }
              },
              {
                "title": "CIO Object ID (updates only)",
                "type": "object",
                "required": [
                  "cio_object_id"
                ],
                "properties": {
                  "cio_object_id": {
                    "type": "string",
                    "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                    "example": "obb7fd050101"
                  }
                }
              }
            ]
          },
          "type": {
            "description": "The operation modifies a single object—non person data.",
            "type": "string",
            "enum": [
              "object"
            ]
          },
          "attributes": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "Data that belongs to the object. Pass `null` or an empty string to remove an attribute. Some attributes have special meaning—see [reserved attributes](/journeys/objects-data/objects/create/#reserved-attributes)."
          },
          "cio_relationships": {
            "x-scalar-ignore": true,
            "type": "array",
            "description": "The people you want to associate with an object. Each object in the array represents a person.",
            "items": {
              "type": "object",
              "properties": {
                "identifiers": {
                  "oneOf": [
                    {
                      "title": "id",
                      "type": "object",
                      "properties": {
                        "id": {
                          "x-scalar-ignore": true,
                          "type": "string",
                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                          "example": "42"
                        }
                      }
                    },
                    {
                      "title": "email",
                      "type": "object",
                      "properties": {
                        "email": {
                          "x-scalar-ignore": true,
                          "type": "string",
                          "description": "The email address of the customer.",
                          "example": "test@example.com"
                        }
                      }
                    },
                    {
                      "title": "cio_id",
                      "type": "object",
                      "properties": {
                        "cio_id": {
                          "x-scalar-ignore": true,
                          "type": "string",
                          "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                          "example": "a3000001"
                        }
                      }
                    }
                  ]
                },
                "relationship_attributes": {
                  "type": "object",
                  "description": "The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
                  "additionalProperties": {
                    "x-additionalPropertiesName": "Relationship Attributes"
                  }
                }
              },
              "example": {
                "identifiers": {
                  "id": "42"
                },
                "relationship_attributes": {
                  "role": "admin",
                  "date_created": 1702480414
                }
              }
            }
          }
        },
        "required": [
          "type",
          "identifiers",
          "action"
        ]
      },
      "object_identify_anonymous": {
        "title": "Object: Identify anonymous",
        "description": "The `identify_anonymous` action lets you relate an object to a person who hasn't yet identified themselves by anonymous_id. When you identify the person, their anonymous relationship will carry over to the identified profile.",
        "example": {
          "action": "identify_anonymous",
          "identifiers": {
            "object_id": "acme",
            "object_type_id": "1"
          },
          "type": "object",
          "anonymous_id": "anon-abc-123"
        },
        "properties": {
          "action": {
            "type": "string",
            "description": "Indicates that the operation will `identify` the item of the specified `type` and relate it to an `anonymous_id`.",
            "enum": [
              "identify_anonymous"
            ]
          },
          "identifiers": {
            "description": "Custom object identifiers. To create, provide `object_type_id` and `object_id`; to update, use those values or `cio_object_id`.",
            "oneOf": [
              {
                "title": "Object ID (create and update)",
                "type": "object",
                "required": [
                  "object_type_id",
                  "object_id"
                ],
                "properties": {
                  "object_id": {
                    "type": "string",
                    "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                    "example": "acme"
                  },
                  "object_type_id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "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.",
                    "example": "1"
                  }
                }
              },
              {
                "title": "CIO Object ID (updates only)",
                "type": "object",
                "required": [
                  "cio_object_id"
                ],
                "properties": {
                  "cio_object_id": {
                    "type": "string",
                    "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                    "example": "obb7fd050101"
                  }
                }
              }
            ]
          },
          "type": {
            "description": "The operation modifies a single object—non person data.",
            "type": "string",
            "enum": [
              "object"
            ]
          },
          "attributes": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "Data that belongs to the object. Pass `null` or an empty string to remove an attribute. Some attributes have special meaning—see [reserved attributes](/journeys/objects-data/objects/create/#reserved-attributes)."
          },
          "cio_relationships": {
            "type": "array",
            "description": "The anonymous people you want to associate with an object. Each object in the array contains an `anonymous_id` representing a person you haven't yet identified by `id` or `email`.",
            "items": {
              "type": "object",
              "properties": {
                "identifiers": {
                  "type": "object",
                  "properties": {
                    "anonymous_id": {
                      "x-scalar-ignore": true,
                      "type": "string",
                      "description": "An identifier for an anonymous event, like a cookie. If set as an attribute on a person, any events bearing the same anonymous value are associated with this person. This value must be unique and is not reusable."
                    }
                  }
                },
                "relationship_attributes": {
                  "type": "object",
                  "description": "Coming October 2023 - The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship."
                }
              }
            }
          }
        },
        "required": [
          "type",
          "identifiers",
          "action"
        ]
      },
      "object_add_relationships": {
        "title": "Object: Add relationships",
        "description": "Add relationships between an object and one or more people.",
        "example": {
          "action": "add_relationships",
          "cio_relationships": [
            {
              "identifiers": {
                "id": "42"
              },
              "relationship_attributes": {
                "role": "admin"
              }
            }
          ],
          "type": "object",
          "identifiers": {
            "object_id": "acme",
            "object_type_id": "1"
          }
        },
        "properties": {
          "action": {
            "type": "string",
            "description": "This operation associates an object with one or more people.",
            "enum": [
              "add_relationships"
            ]
          },
          "cio_relationships": {
            "x-scalar-ignore": true,
            "type": "array",
            "description": "The people you want to associate with an object. Each object in the array represents a person.",
            "items": {
              "type": "object",
              "properties": {
                "identifiers": {
                  "oneOf": [
                    {
                      "title": "id",
                      "type": "object",
                      "properties": {
                        "id": {
                          "x-scalar-ignore": true,
                          "type": "string",
                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                          "example": "42"
                        }
                      }
                    },
                    {
                      "title": "email",
                      "type": "object",
                      "properties": {
                        "email": {
                          "x-scalar-ignore": true,
                          "type": "string",
                          "description": "The email address of the customer.",
                          "example": "test@example.com"
                        }
                      }
                    },
                    {
                      "title": "cio_id",
                      "type": "object",
                      "properties": {
                        "cio_id": {
                          "x-scalar-ignore": true,
                          "type": "string",
                          "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                          "example": "a3000001"
                        }
                      }
                    }
                  ]
                },
                "relationship_attributes": {
                  "type": "object",
                  "description": "The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
                  "additionalProperties": {
                    "x-additionalPropertiesName": "Relationship Attributes"
                  }
                }
              },
              "example": {
                "identifiers": {
                  "id": "42"
                },
                "relationship_attributes": {
                  "role": "admin",
                  "date_created": 1702480414
                }
              }
            }
          },
          "type": {
            "description": "The operation modifies a single object—non person data.",
            "type": "string",
            "enum": [
              "object"
            ]
          },
          "identifiers": {
            "description": "The identifiers for a particular object. You can use either the `object_type_id` and `object_id` (where `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object) or the `cio_object_id`.",
            "oneOf": [
              {
                "title": "Object ID",
                "type": "object",
                "required": [
                  "object_type_id",
                  "object_id"
                ],
                "properties": {
                  "object_id": {
                    "type": "string",
                    "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                    "example": "acme"
                  },
                  "object_type_id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "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.",
                    "example": "1"
                  }
                }
              },
              {
                "title": "CIO Object ID",
                "type": "object",
                "required": [
                  "cio_object_id"
                ],
                "properties": {
                  "cio_object_id": {
                    "type": "string",
                    "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                    "example": "obb7fd050101"
                  }
                }
              }
            ]
          }
        },
        "required": [
          "type",
          "action",
          "cio_relationships"
        ]
      },
      "object_delete_relationships": {
        "title": "Object: Delete relationships",
        "description": "Delete relationships between an object and one or more people.",
        "example": {
          "action": "delete_relationships",
          "cio_relationships": [
            {
              "identifiers": {
                "id": "42"
              }
            }
          ],
          "type": "object",
          "identifiers": {
            "object_id": "acme",
            "object_type_id": "1"
          }
        },
        "properties": {
          "action": {
            "type": "string",
            "description": "This operation deletes an object relationship from one or more people.",
            "enum": [
              "delete_relationships"
            ]
          },
          "cio_relationships": {
            "x-scalar-ignore": true,
            "type": "array",
            "description": "The people you want to associate with an object. Each object in the array represents a person.",
            "items": {
              "type": "object",
              "properties": {
                "identifiers": {
                  "oneOf": [
                    {
                      "title": "id",
                      "type": "object",
                      "properties": {
                        "id": {
                          "x-scalar-ignore": true,
                          "type": "string",
                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                          "example": "42"
                        }
                      }
                    },
                    {
                      "title": "email",
                      "type": "object",
                      "properties": {
                        "email": {
                          "x-scalar-ignore": true,
                          "type": "string",
                          "description": "The email address of the customer.",
                          "example": "test@example.com"
                        }
                      }
                    },
                    {
                      "title": "cio_id",
                      "type": "object",
                      "properties": {
                        "cio_id": {
                          "x-scalar-ignore": true,
                          "type": "string",
                          "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                          "example": "a3000001"
                        }
                      }
                    }
                  ]
                },
                "relationship_attributes": {
                  "type": "object",
                  "description": "The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
                  "additionalProperties": {
                    "x-additionalPropertiesName": "Relationship Attributes"
                  }
                }
              },
              "example": {
                "identifiers": {
                  "id": "42"
                },
                "relationship_attributes": {
                  "role": "admin",
                  "date_created": 1702480414
                }
              }
            }
          },
          "type": {
            "description": "The operation modifies a single object—non person data.",
            "type": "string",
            "enum": [
              "object"
            ]
          },
          "identifiers": {
            "description": "The identifiers for a particular object. You can use either the `object_type_id` and `object_id` (where `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object) or the `cio_object_id`.",
            "oneOf": [
              {
                "title": "Object ID",
                "type": "object",
                "required": [
                  "object_type_id",
                  "object_id"
                ],
                "properties": {
                  "object_id": {
                    "type": "string",
                    "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                    "example": "acme"
                  },
                  "object_type_id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "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.",
                    "example": "1"
                  }
                }
              },
              {
                "title": "CIO Object ID",
                "type": "object",
                "required": [
                  "cio_object_id"
                ],
                "properties": {
                  "cio_object_id": {
                    "type": "string",
                    "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                    "example": "obb7fd050101"
                  }
                }
              }
            ]
          }
        },
        "required": [
          "type",
          "action",
          "cio_relationships"
        ]
      },
      "object_delete": {
        "title": "Object: Delete",
        "description": "Delete an object. This also removes relationships from people.\n",
        "example": {
          "action": "delete",
          "type": "object",
          "identifiers": {
            "object_id": "acme",
            "object_type_id": "1"
          }
        },
        "properties": {
          "action": {
            "type": "string",
            "description": "Indicates that the operation will `delete` the item of the specified `type`.",
            "enum": [
              "delete"
            ]
          },
          "type": {
            "description": "The operation modifies a single object—non person data.",
            "type": "string",
            "enum": [
              "object"
            ]
          },
          "identifiers": {
            "description": "The identifiers for a particular object. You can use either the `object_type_id` and `object_id` (where `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object) or the `cio_object_id`.",
            "oneOf": [
              {
                "title": "Object ID",
                "type": "object",
                "required": [
                  "object_type_id",
                  "object_id"
                ],
                "properties": {
                  "object_id": {
                    "type": "string",
                    "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                    "example": "acme"
                  },
                  "object_type_id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "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.",
                    "example": "1"
                  }
                }
              },
              {
                "title": "CIO Object ID",
                "type": "object",
                "required": [
                  "cio_object_id"
                ],
                "properties": {
                  "cio_object_id": {
                    "type": "string",
                    "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                    "example": "obb7fd050101"
                  }
                }
              }
            ]
          }
        },
        "required": [
          "type",
          "action"
        ]
      },
      "identify_person": {
        "title": "Person: Identify",
        "description": "Add or update a person.",
        "example": {
          "action": "identify",
          "identifiers": {
            "id": "42"
          },
          "type": "person",
          "attributes": {
            "first_name": "Jane",
            "last_name": "Doe",
            "plan": "premium"
          }
        },
        "properties": {
          "action": {
            "type": "string",
            "description": "Indicates that the operation will `identify` the item of the specified `type`.",
            "enum": [
              "identify"
            ]
          },
          "identifiers": {
            "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
            "oneOf": [
              {
                "title": "id",
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                    "example": "42"
                  }
                }
              },
              {
                "title": "email",
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The email address of the customer.",
                    "example": "test@example.com"
                  }
                }
              },
              {
                "title": "phone",
                "type": "object",
                "required": [
                  "phone"
                ],
                "properties": {
                  "phone": {
                    "type": "string",
                    "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                    "example": "+14155552671"
                  }
                }
              },
              {
                "title": "cio_id",
                "type": "object",
                "required": [
                  "cio_id"
                ],
                "properties": {
                  "cio_id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                    "example": "a3000001"
                  }
                }
              }
            ]
          },
          "type": {
            "description": "The operation modifies a person in Customer.io",
            "type": "string",
            "enum": [
              "person"
            ]
          },
          "attributes": {
            "type": "object",
            "description": "Attributes that you want to add or update for this person. You can pass properties that aren't defined below to set custom attributes; the defined properties are reserved in the Customer.io Track API.",
            "properties": {
              "_update": {
                "type": "boolean",
                "default": false,
                "description": "If `true`, update only existing people and prevent accidental profile creation. If no person matches the identifiers, the request does nothing."
              },
              "cio_subscription_preferences": {
                "x-scalar-ignore": true,
                "description": "A person's [subscription center](/journeys/channels/subscriptions/center/) preferences. Use JSON dot notation, such as `cio_subscription_preferences.topics.topic_<id>`, to update one topic without replacing others.",
                "type": "object",
                "properties": {
                  "topics": {
                    "type": "object",
                    "description": "Contains active topics in your workspace, named `topic_<id>`.",
                    "additionalProperties": {
                      "x-additionalPropertiesName": "topic_<id>",
                      "description": "Boolean preference for a topic named `topic_<id>`; `true` subscribes, `false` unsubscribes, and empty or missing values use the topic default. Find topic IDs with [getTopics](/integrations/api/app/tag/subscription-center/getTopics/).",
                      "type": "boolean"
                    }
                  }
                },
                "example": {
                  "topics": {
                    "topic_1": true,
                    "topic_2": false,
                    "topic_3": true
                  }
                }
              }
            },
            "additionalProperties": {
              "x-additionalPropertiesName": "additional attributes",
              "description": "Custom properties that you want to set as attributes on this person."
            }
          },
          "cio_relationships": {
            "x-scalar-ignore": true,
            "type": "array",
            "description": "Each object in the array represents a relationship you want to add to, or remove from, a person.",
            "items": {
              "properties": {
                "identifiers": {
                  "description": "The identifiers for a particular object. You can use either the `object_type_id` and `object_id` (where `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object) or the `cio_object_id`.",
                  "oneOf": [
                    {
                      "title": "Object ID",
                      "type": "object",
                      "required": [
                        "object_type_id",
                        "object_id"
                      ],
                      "properties": {
                        "object_id": {
                          "type": "string",
                          "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                          "example": "acme"
                        },
                        "object_type_id": {
                          "x-scalar-ignore": true,
                          "type": "string",
                          "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.",
                          "example": "1"
                        }
                      }
                    },
                    {
                      "title": "CIO Object ID",
                      "type": "object",
                      "required": [
                        "cio_object_id"
                      ],
                      "properties": {
                        "cio_object_id": {
                          "type": "string",
                          "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                          "example": "obb7fd050101"
                        }
                      }
                    }
                  ]
                },
                "relationship_attributes": {
                  "x-scalar-ignore": true,
                  "type": "object",
                  "description": "The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
                  "additionalProperties": {
                    "x-additionalPropertiesName": "Relationship Attributes"
                  },
                  "example": {
                    "role": "admin"
                  }
                }
              }
            }
          },
          "timestamp": {
            "type": "integer",
            "description": "The Unix timestamp for when the attribute update occurred. This can be used to control the order of attribute updates when multiple requests are sent in rapid succession.",
            "example": 1772013598
          }
        },
        "required": [
          "type",
          "identifiers",
          "action"
        ]
      },
      "person_delete": {
        "title": "Person: Delete",
        "description": "Delete a person from your workspace.",
        "example": {
          "action": "delete",
          "identifiers": {
            "id": "42"
          },
          "type": "person"
        },
        "properties": {
          "action": {
            "type": "string",
            "description": "Indicates that the operation will `delete` the item of the specified `type`.",
            "enum": [
              "delete"
            ]
          },
          "identifiers": {
            "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
            "oneOf": [
              {
                "title": "id",
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                    "example": "42"
                  }
                }
              },
              {
                "title": "email",
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The email address of the customer.",
                    "example": "test@example.com"
                  }
                }
              },
              {
                "title": "phone",
                "type": "object",
                "required": [
                  "phone"
                ],
                "properties": {
                  "phone": {
                    "type": "string",
                    "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                    "example": "+14155552671"
                  }
                }
              },
              {
                "title": "cio_id",
                "type": "object",
                "required": [
                  "cio_id"
                ],
                "properties": {
                  "cio_id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                    "example": "a3000001"
                  }
                }
              }
            ]
          },
          "type": {
            "description": "The operation modifies a person in Customer.io",
            "type": "string",
            "enum": [
              "person"
            ]
          }
        },
        "required": [
          "type",
          "identifiers",
          "action"
        ]
      },
      "person_event": {
        "title": "Person: Event",
        "description": "A custom event attributed to a person. You can use events to trigger automations, or reference event information using liquid in your messages.",
        "example": {
          "action": "event",
          "identifiers": {
            "id": "42"
          },
          "name": "purchase",
          "type": "person",
          "attributes": {
            "product": "Widget",
            "price": 29.99
          }
        },
        "properties": {
          "action": {
            "type": "string",
            "description": "A custom event attributed to the specified person.",
            "enum": [
              "event"
            ]
          },
          "identifiers": {
            "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
            "oneOf": [
              {
                "title": "id",
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                    "example": "42"
                  }
                }
              },
              {
                "title": "email",
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The email address of the customer.",
                    "example": "test@example.com"
                  }
                }
              },
              {
                "title": "phone",
                "type": "object",
                "required": [
                  "phone"
                ],
                "properties": {
                  "phone": {
                    "type": "string",
                    "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                    "example": "+14155552671"
                  }
                }
              },
              {
                "title": "cio_id",
                "type": "object",
                "required": [
                  "cio_id"
                ],
                "properties": {
                  "cio_id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                    "example": "a3000001"
                  }
                }
              }
            ]
          },
          "name": {
            "type": "string",
            "description": "The name of the event. This is how you'll find your event in Customer.io or select it when using events as automation triggers."
          },
          "type": {
            "description": "The operation modifies a person in Customer.io",
            "type": "string",
            "enum": [
              "person"
            ]
          },
          "attributes": {
            "type": "object",
            "description": "Additional information that you might want to reference in a message using liquid or use to set attributes on the identified person.\n",
            "additionalProperties": {
              "x-additionalPropertiesName": "liquid merge data",
              "description": "Insert key-values that you want to reference in your message here."
            },
            "properties": {
              "from_address": {
                "type": "string",
                "format": "email",
                "description": "The address you want to trigger messages from, overriding the `from` field in emails triggered by the event."
              },
              "recipient": {
                "type": "string",
                "format": "email",
                "description": "The email address of the person associated with the event, overriding the `to` field in emails triggered by the event."
              },
              "reply_to": {
                "type": "string",
                "format": "email",
                "description": "The address you want to receive replies to, overriding the `reply to` field for emails triggered by the event."
              }
            }
          },
          "id": {
            "type": "string",
            "format": "ULID",
            "description": "A valid ULID used to deduplicate events. Note - our Python and Ruby libraries do not pass this id."
          },
          "timestamp": {
            "type": "integer",
            "description": "The Unix timestamp when the event happened."
          }
        },
        "required": [
          "type",
          "identifiers",
          "action",
          "name"
        ]
      },
      "person_page": {
        "title": "Person: Page view",
        "description": "A web \"pageview\" event attributed to a person. Our `screen` and `page` event types are more specific than our standard `event`, and help you track and target people based on the pages people visit in your mobile app or website.",
        "example": {
          "action": "page",
          "identifiers": {
            "id": "42"
          },
          "name": "/pricing",
          "type": "person",
          "attributes": {
            "referrer": "https://example.com"
          }
        },
        "properties": {
          "action": {
            "type": "string",
            "description": "A web \"pageview\" event attributed to a person. Our `screen` and `page` event types are more specific than our standard `event`, and help you track and target people based on the pages people visit in your mobile app or website.",
            "enum": [
              "page"
            ]
          },
          "identifiers": {
            "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
            "oneOf": [
              {
                "title": "id",
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                    "example": "42"
                  }
                }
              },
              {
                "title": "email",
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The email address of the customer.",
                    "example": "test@example.com"
                  }
                }
              },
              {
                "title": "phone",
                "type": "object",
                "required": [
                  "phone"
                ],
                "properties": {
                  "phone": {
                    "type": "string",
                    "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                    "example": "+14155552671"
                  }
                }
              },
              {
                "title": "cio_id",
                "type": "object",
                "required": [
                  "cio_id"
                ],
                "properties": {
                  "cio_id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                    "example": "a3000001"
                  }
                }
              }
            ]
          },
          "name": {
            "type": "string",
            "description": "The name of the page or page path that a person visited. This is how you'll find and select page view events in Customer.io."
          },
          "type": {
            "description": "The operation modifies a person in Customer.io",
            "type": "string",
            "enum": [
              "person"
            ]
          },
          "attributes": {
            "type": "object",
            "description": "Additional information that you might want to reference in a message using liquid or use to set attributes on the identified person.",
            "properties": {
              "keywords": {
                "type": "array",
                "description": "Page-content keywords, typically like HTML meta keywords. Mainly for publishers with pageview tracking; not collected automatically.",
                "items": {
                  "type": "string"
                }
              },
              "path": {
                "type": "string",
                "description": "The path portion of the page's URL. Equivalent to the canonical `path` which defaults to `location.pathname` from the DOM API."
              },
              "referrer": {
                "type": "string",
                "description": "The previous page's full URL. Equivalent to `document.referrer` from the DOM API."
              },
              "search": {
                "type": "string",
                "description": "The query string portion of the page's URL. Equivalent to `location.search` from the DOM API."
              },
              "title": {
                "type": "string",
                "description": "The page's title. Equivalent to `document.title` from the DOM API."
              },
              "url": {
                "type": "string",
                "description": "A page's full URL. We first look for the canonical URL. If the canonical URL is not provided, we'll use `location.href` from the DOM API."
              }
            },
            "additionalProperties": {
              "x-additionalPropertiesName": "liquid merge data",
              "description": "Insert key-values that you want to reference in your message here."
            }
          },
          "id": {
            "type": "string",
            "format": "ULID",
            "description": "A valid ULID used to deduplicate events. Note - our Python and Ruby libraries do not pass this id."
          },
          "timestamp": {
            "type": "integer",
            "description": "The Unix timestamp when the event happened."
          }
        },
        "required": [
          "type",
          "identifiers",
          "action",
          "name"
        ]
      },
      "person_screen": {
        "title": "Person: Screen view",
        "description": "A mobile \"screenview\" event attributed to a person. Our `screen` and `page` event types are more specific than our standard `event`, and help you track and target people based on the pages people visit in your mobile app or website.",
        "example": {
          "action": "screen",
          "identifiers": {
            "id": "42"
          },
          "name": "Dashboard",
          "type": "person",
          "attributes": {
            "app_version": "2.1.0"
          }
        },
        "properties": {
          "action": {
            "type": "string",
            "description": "A mobile \"screenview\" event attributed to a person. Our `screen` and `page` event types are more specific than our standard `event`, and help you track and target people based on the pages people visit in your mobile app or website.",
            "enum": [
              "screen"
            ]
          },
          "identifiers": {
            "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
            "oneOf": [
              {
                "title": "id",
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                    "example": "42"
                  }
                }
              },
              {
                "title": "email",
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The email address of the customer.",
                    "example": "test@example.com"
                  }
                }
              },
              {
                "title": "phone",
                "type": "object",
                "required": [
                  "phone"
                ],
                "properties": {
                  "phone": {
                    "type": "string",
                    "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                    "example": "+14155552671"
                  }
                }
              },
              {
                "title": "cio_id",
                "type": "object",
                "required": [
                  "cio_id"
                ],
                "properties": {
                  "cio_id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                    "example": "a3000001"
                  }
                }
              }
            ]
          },
          "name": {
            "type": "string",
            "description": "The name of the screen a person visited. This is how you'll find and select screen view events in Customer.io."
          },
          "type": {
            "description": "The operation modifies a person in Customer.io",
            "type": "string",
            "enum": [
              "person"
            ]
          },
          "attributes": {
            "type": "object",
            "description": "Additional information that you might want to reference in a message using liquid or use to set attributes on the identified person.",
            "additionalProperties": {
              "x-additionalPropertiesName": "liquid merge data",
              "description": "Insert key-values that you want to reference in your message here."
            }
          },
          "id": {
            "type": "string",
            "format": "ULID",
            "description": "A valid ULID used to deduplicate events. Note - our Python and Ruby libraries do not pass this id."
          },
          "timestamp": {
            "type": "integer",
            "description": "The Unix timestamp when the event happened."
          }
        },
        "required": [
          "type",
          "identifiers",
          "action",
          "name"
        ]
      },
      "person_add_relationships": {
        "title": "Person: Add relationships",
        "description": "Associate multiple objects with a person.",
        "example": {
          "action": "add_relationships",
          "cio_relationships": [
            {
              "identifiers": {
                "object_id": "acme",
                "object_type_id": "1"
              },
              "relationship_attributes": {
                "role": "admin"
              }
            }
          ],
          "identifiers": {
            "id": "42"
          },
          "type": "person"
        },
        "properties": {
          "action": {
            "type": "string",
            "description": "This operation associates a person with one or more objects.",
            "enum": [
              "add_relationships"
            ]
          },
          "cio_relationships": {
            "x-scalar-ignore": true,
            "type": "array",
            "description": "Each object in the array represents a relationship you want to add to, or remove from, a person.",
            "items": {
              "properties": {
                "identifiers": {
                  "description": "The identifiers for a particular object. You can use either the `object_type_id` and `object_id` (where `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object) or the `cio_object_id`.",
                  "oneOf": [
                    {
                      "title": "Object ID",
                      "type": "object",
                      "required": [
                        "object_type_id",
                        "object_id"
                      ],
                      "properties": {
                        "object_id": {
                          "type": "string",
                          "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                          "example": "acme"
                        },
                        "object_type_id": {
                          "x-scalar-ignore": true,
                          "type": "string",
                          "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.",
                          "example": "1"
                        }
                      }
                    },
                    {
                      "title": "CIO Object ID",
                      "type": "object",
                      "required": [
                        "cio_object_id"
                      ],
                      "properties": {
                        "cio_object_id": {
                          "type": "string",
                          "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                          "example": "obb7fd050101"
                        }
                      }
                    }
                  ]
                },
                "relationship_attributes": {
                  "x-scalar-ignore": true,
                  "type": "object",
                  "description": "The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
                  "additionalProperties": {
                    "x-additionalPropertiesName": "Relationship Attributes"
                  },
                  "example": {
                    "role": "admin"
                  }
                }
              }
            }
          },
          "identifiers": {
            "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
            "oneOf": [
              {
                "title": "id",
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                    "example": "42"
                  }
                }
              },
              {
                "title": "email",
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The email address of the customer.",
                    "example": "test@example.com"
                  }
                }
              },
              {
                "title": "phone",
                "type": "object",
                "required": [
                  "phone"
                ],
                "properties": {
                  "phone": {
                    "type": "string",
                    "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                    "example": "+14155552671"
                  }
                }
              },
              {
                "title": "cio_id",
                "type": "object",
                "required": [
                  "cio_id"
                ],
                "properties": {
                  "cio_id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                    "example": "a3000001"
                  }
                }
              }
            ]
          },
          "type": {
            "description": "The operation modifies a person in Customer.io",
            "type": "string",
            "enum": [
              "person"
            ]
          }
        },
        "required": [
          "type",
          "identifiers",
          "action",
          "cio_relationships"
        ]
      },
      "person_delete_relationships": {
        "title": "Person: Delete relationships",
        "description": "Remove multiple object relationships from a person.",
        "example": {
          "action": "delete_relationships",
          "cio_relationships": [
            {
              "identifiers": {
                "object_id": "acme",
                "object_type_id": "1"
              }
            }
          ],
          "identifiers": {
            "id": "42"
          },
          "type": "person"
        },
        "properties": {
          "action": {
            "type": "string",
            "description": "This operation deletes an object relationship from one or more people.",
            "enum": [
              "delete_relationships"
            ]
          },
          "cio_relationships": {
            "x-scalar-ignore": true,
            "type": "array",
            "description": "Each object in the array represents a relationship you want to add to, or remove from, a person.",
            "items": {
              "properties": {
                "identifiers": {
                  "description": "The identifiers for a particular object. You can use either the `object_type_id` and `object_id` (where `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object) or the `cio_object_id`.",
                  "oneOf": [
                    {
                      "title": "Object ID",
                      "type": "object",
                      "required": [
                        "object_type_id",
                        "object_id"
                      ],
                      "properties": {
                        "object_id": {
                          "type": "string",
                          "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                          "example": "acme"
                        },
                        "object_type_id": {
                          "x-scalar-ignore": true,
                          "type": "string",
                          "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.",
                          "example": "1"
                        }
                      }
                    },
                    {
                      "title": "CIO Object ID",
                      "type": "object",
                      "required": [
                        "cio_object_id"
                      ],
                      "properties": {
                        "cio_object_id": {
                          "type": "string",
                          "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                          "example": "obb7fd050101"
                        }
                      }
                    }
                  ]
                },
                "relationship_attributes": {
                  "x-scalar-ignore": true,
                  "type": "object",
                  "description": "The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
                  "additionalProperties": {
                    "x-additionalPropertiesName": "Relationship Attributes"
                  },
                  "example": {
                    "role": "admin"
                  }
                }
              }
            }
          },
          "identifiers": {
            "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
            "oneOf": [
              {
                "title": "id",
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                    "example": "42"
                  }
                }
              },
              {
                "title": "email",
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The email address of the customer.",
                    "example": "test@example.com"
                  }
                }
              },
              {
                "title": "phone",
                "type": "object",
                "required": [
                  "phone"
                ],
                "properties": {
                  "phone": {
                    "type": "string",
                    "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                    "example": "+14155552671"
                  }
                }
              },
              {
                "title": "cio_id",
                "type": "object",
                "required": [
                  "cio_id"
                ],
                "properties": {
                  "cio_id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                    "example": "a3000001"
                  }
                }
              }
            ]
          },
          "type": {
            "description": "The operation modifies a person in Customer.io",
            "type": "string",
            "enum": [
              "person"
            ]
          }
        },
        "required": [
          "type",
          "identifiers",
          "action",
          "cio_relationships"
        ]
      },
      "person_add_device": {
        "title": "Person: Add device",
        "description": "Assign devices to a person.",
        "example": {
          "action": "add_device",
          "device": {
            "platform": "ios",
            "token": "a83b219c-e756-4c5b-a8e3-d1a5c5b2f3c1",
            "last_used": 1713484800
          },
          "identifiers": {
            "id": "42"
          },
          "type": "person"
        },
        "properties": {
          "action": {
            "type": "string",
            "description": "Add a mobile device to a person's profile.",
            "enum": [
              "add_device"
            ]
          },
          "device": {
            "description": "Device properties collected by [Customer.io SDKs](/integrations/sdk/) unless `autoTrackDeviceAttributes` is disabled. You can reference them outside `attributes` in segments.",
            "properties": {
              "platform": {
                "type": "string",
                "enum": [
                  "ios",
                  "android"
                ],
                "description": "The device/messaging platform."
              },
              "token": {
                "description": "The device token.",
                "type": "string"
              },
              "attributes": {
                "type": "object",
                "description": "Attributes that you can reference to segment your audience—like a person's attributes, but specific to a device. These can be either the attributes defined below or custom key-value attributes.",
                "properties": {
                  "_last_status": {
                    "type": "string",
                    "readOnly": true,
                    "description": "The delivery status of the last message sent to the device—sent, bounced, or suppressed. An empty string indicates that that the device hasn't received a push yet.",
                    "enum": [
                      "",
                      "bounced",
                      "sent",
                      "suppressed"
                    ]
                  },
                  "app_identifier": {
                    "type": "string",
                    "description": "The app that the device belongs to—the **Bundle ID / App identifier** you entered with that app's push credentials. If you have more than one app, we use this attribute to send push notifications to the right app. A device without an app identifier receives push notifications you send to your [default app](/messaging/channels/push/getting-started/#the-default-app)."
                  },
                  "app_version": {
                    "type": "string",
                    "description": "The version of your app that a customer uses. You might target app versions to let people know when they need to update, or expose them to new features when they do."
                  },
                  "cio_sdk_version": {
                    "type": "string",
                    "description": "The version of the Customer.io SDK in the app."
                  },
                  "device_locale": {
                    "type": "string",
                    "description": "The device's [IETF language code](/journeys/channels/localization/getting-started/#supported-languages), such as `en-MX` or `es-ES`."
                  },
                  "device_model": {
                    "type": "string",
                    "description": "The model of the device a person uses."
                  },
                  "device_os": {
                    "type": "string",
                    "description": "The operating system, including the version, on the device."
                  },
                  "push_enabled": {
                    "type": "string",
                    "description": "If `\"true\"`, the device is opted-in and can receive push notifications.",
                    "enum": [
                      "true",
                      "false"
                    ]
                  }
                },
                "additionalProperties": {
                  "x-additionalPropertiesName": "Custom Device Attributes",
                  "description": "Custom properties that you want to associate with the device.",
                  "type": "string"
                }
              },
              "last_used": {
                "type": "integer",
                "format": "unix timestamp",
                "description": "The `timestamp` when you last identified this device. If you don't pass a timestamp when you add or update a device, we use the time of the request itself. Our SDKs identify a device when a person launches their app."
              }
            },
            "required": [
              "token",
              "platform"
            ]
          },
          "identifiers": {
            "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
            "oneOf": [
              {
                "title": "id",
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                    "example": "42"
                  }
                }
              },
              {
                "title": "email",
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The email address of the customer.",
                    "example": "test@example.com"
                  }
                }
              },
              {
                "title": "phone",
                "type": "object",
                "required": [
                  "phone"
                ],
                "properties": {
                  "phone": {
                    "type": "string",
                    "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                    "example": "+14155552671"
                  }
                }
              },
              {
                "title": "cio_id",
                "type": "object",
                "required": [
                  "cio_id"
                ],
                "properties": {
                  "cio_id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                    "example": "a3000001"
                  }
                }
              }
            ]
          },
          "type": {
            "description": "The operation modifies a person in Customer.io",
            "type": "string",
            "enum": [
              "person"
            ]
          }
        },
        "required": [
          "type",
          "identifiers",
          "action",
          "device"
        ]
      },
      "person_delete_device": {
        "title": "Person: Delete device",
        "description": "Delete devices that belong to a person.",
        "example": {
          "action": "delete_device",
          "device": {
            "token": "a83b219c-e756-4c5b-a8e3-d1a5c5b2f3c1"
          },
          "identifiers": {
            "id": "42"
          },
          "type": "person"
        },
        "properties": {
          "action": {
            "type": "string",
            "description": "Delete a device from a person's profile.",
            "enum": [
              "delete_device"
            ]
          },
          "device": {
            "description": "The device you want to remove.",
            "type": "object",
            "required": [
              "token"
            ],
            "properties": {
              "token": {
                "description": "The token of the device you want to remove.",
                "type": "string"
              }
            }
          },
          "identifiers": {
            "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
            "oneOf": [
              {
                "title": "id",
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                    "example": "42"
                  }
                }
              },
              {
                "title": "email",
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The email address of the customer.",
                    "example": "test@example.com"
                  }
                }
              },
              {
                "title": "phone",
                "type": "object",
                "required": [
                  "phone"
                ],
                "properties": {
                  "phone": {
                    "type": "string",
                    "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                    "example": "+14155552671"
                  }
                }
              },
              {
                "title": "cio_id",
                "type": "object",
                "required": [
                  "cio_id"
                ],
                "properties": {
                  "cio_id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                    "example": "a3000001"
                  }
                }
              }
            ]
          },
          "type": {
            "description": "The operation modifies a person in Customer.io",
            "type": "string",
            "enum": [
              "person"
            ]
          }
        },
        "required": [
          "type",
          "identifiers",
          "action",
          "device"
        ]
      },
      "person_merge": {
        "title": "Person: Merge",
        "example": {
          "primary": {
            "id": "42"
          },
          "secondary": {
            "id": "known-user-456"
          }
        },
        "type": "object",
        "description": "Merges `secondary` into `primary`, then deletes `secondary`. The operation is not reversible, and `primary` must already exist. See [merging duplicate people](/journeys/people/manage/merge-people/).",
        "required": [
          "type",
          "primary",
          "secondary",
          "action"
        ],
        "properties": {
          "action": {
            "type": "string",
            "description": "Merges `secondary` into `primary`, then deletes `secondary`. Not reversible; see [merging duplicate people](/journeys/people/manage/merge-people/).",
            "enum": [
              "merge"
            ]
          },
          "primary": {
            "description": "The person who remains after the merge, identified by `id`, `email`, or `cio_id`. If email identifiers are disabled in [workspace settings](https://fly.customer.io/workspaces/last/settings/edit), use `id` or `cio_id`.",
            "oneOf": [
              {
                "title": "id",
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                    "example": "42"
                  }
                }
              },
              {
                "title": "email",
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The email address of the customer.",
                    "example": "test@example.com"
                  }
                }
              },
              {
                "title": "cio_id",
                "type": "object",
                "required": [
                  "cio_id"
                ],
                "properties": {
                  "cio_id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                    "example": "a3000001"
                  }
                }
              }
            ]
          },
          "secondary": {
            "description": "The person deleted after the merge, identified by `id`, `email`, or `cio_id`. If email identifiers are disabled in [workspace settings](https://fly.customer.io/workspaces/last/settings/edit), use `id` or `cio_id`.",
            "oneOf": [
              {
                "title": "id",
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                    "example": "42"
                  }
                }
              },
              {
                "title": "email",
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The email address of the customer.",
                    "example": "test@example.com"
                  }
                }
              },
              {
                "title": "cio_id",
                "type": "object",
                "required": [
                  "cio_id"
                ],
                "properties": {
                  "cio_id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                    "example": "a3000001"
                  }
                }
              }
            ]
          },
          "type": {
            "description": "The operation modifies a person in Customer.io",
            "type": "string",
            "enum": [
              "person"
            ]
          }
        }
      },
      "person_suppress": {
        "title": "Person: Suppress",
        "description": "Suppress a person's identifier(s) in Customer.io, so that you can't message a person or add their identifiers back to your workspace. This is separate from suppressions performed by your email provider.",
        "example": {
          "action": "suppress",
          "identifiers": {
            "id": "42"
          },
          "type": "person"
        },
        "properties": {
          "action": {
            "type": "string",
            "description": "Suppress a person's identifier(s) in Customer.io, so that you can't message a person or add their identifiers back to your workspace. This is separate from suppressions performed by your email provider.",
            "enum": [
              "suppress"
            ]
          },
          "identifiers": {
            "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
            "oneOf": [
              {
                "title": "id",
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                    "example": "42"
                  }
                }
              },
              {
                "title": "email",
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The email address of the customer.",
                    "example": "test@example.com"
                  }
                }
              },
              {
                "title": "phone",
                "type": "object",
                "required": [
                  "phone"
                ],
                "properties": {
                  "phone": {
                    "type": "string",
                    "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                    "example": "+14155552671"
                  }
                }
              },
              {
                "title": "cio_id",
                "type": "object",
                "required": [
                  "cio_id"
                ],
                "properties": {
                  "cio_id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                    "example": "a3000001"
                  }
                }
              }
            ]
          },
          "type": {
            "description": "The operation modifies a person in Customer.io",
            "type": "string",
            "enum": [
              "person"
            ]
          }
        },
        "required": [
          "type",
          "identifiers",
          "action"
        ]
      },
      "person_unsuppress": {
        "title": "Person: Unsuppress",
        "description": "Unsuppress a person's identifier(s) in Customer.io, so that you can message a person or add their identifiers back to your workspace. This does not unsuppress addresses that were previously suppressed by your email provider.",
        "example": {
          "action": "unsuppress",
          "identifiers": {
            "id": "42"
          },
          "type": "person"
        },
        "properties": {
          "action": {
            "type": "string",
            "description": "Unsuppress a person's identifier(s) in Customer.io, so that you can message a person or add their identifiers back to your workspace. This does not unsuppress addresses that were previously suppressed by your email provider.",
            "enum": [
              "unsuppress"
            ]
          },
          "identifiers": {
            "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
            "oneOf": [
              {
                "title": "id",
                "type": "object",
                "required": [
                  "id"
                ],
                "properties": {
                  "id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                    "example": "42"
                  }
                }
              },
              {
                "title": "email",
                "type": "object",
                "required": [
                  "email"
                ],
                "properties": {
                  "email": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The email address of the customer.",
                    "example": "test@example.com"
                  }
                }
              },
              {
                "title": "phone",
                "type": "object",
                "required": [
                  "phone"
                ],
                "properties": {
                  "phone": {
                    "type": "string",
                    "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                    "example": "+14155552671"
                  }
                }
              },
              {
                "title": "cio_id",
                "type": "object",
                "required": [
                  "cio_id"
                ],
                "properties": {
                  "cio_id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                    "example": "a3000001"
                  }
                }
              }
            ]
          },
          "type": {
            "description": "The operation modifies a person in Customer.io",
            "type": "string",
            "enum": [
              "person"
            ]
          }
        },
        "required": [
          "type",
          "identifiers",
          "action"
        ]
      },
      "delivery_operations": {
        "title": "Delivery: Event",
        "description": "The \"delivery\" type lets you attribute metrics to messages that don't self-report back to Customer.io, like push and in-app notifications.",
        "example": {
          "action": "event",
          "attributes": {
            "device_token": "a83b219c-e756-4c5b-a8e3-d1a5c5b2f3c1"
          },
          "identifiers": {
            "id": "RPIyMTM6OjEyMzQ="
          },
          "name": "opened",
          "type": "delivery"
        },
        "type": "object",
        "required": [
          "type",
          "action",
          "identifiers",
          "name",
          "attributes"
        ],
        "properties": {
          "action": {
            "type": "string",
            "description": "An `event` action indicates a delivery event. Use the `name` to determine the specific metric that you want to attribute to this delivery.",
            "enum": [
              "event"
            ]
          },
          "attributes": {
            "type": "object",
            "required": [
              "device_token"
            ],
            "description": "Contains information about the delivery and the individual who received the message.",
            "properties": {
              "device_token": {
                "type": "string",
                "description": "The device that received the message."
              }
            }
          },
          "identifiers": {
            "type": "object",
            "description": "Contains identifiers for the delivery itself.",
            "properties": {
              "id": {
                "type": "string",
                "description": "The `delivery_id` for the delivery that you want to attribute metrics to."
              }
            }
          },
          "name": {
            "type": "string",
            "description": "The name of the metric you want to attribute to this \"delivery\".",
            "enum": [
              "opened",
              "converted",
              "delivered"
            ]
          },
          "type": {
            "type": "string",
            "description": "The \"delivery\" type lets you attribute metrics to messages that don't self-report back to Customer.io, like push and in-app notifications.",
            "enum": [
              "delivery"
            ]
          }
        }
      },
      "cio_subscription_preferences": {
        "x-scalar-ignore": true,
        "description": "A person's [subscription center](/journeys/channels/subscriptions/center/) preferences. Use JSON dot notation, such as `cio_subscription_preferences.topics.topic_<id>`, to update one topic without replacing others.",
        "type": "object",
        "properties": {
          "topics": {
            "type": "object",
            "description": "Contains active topics in your workspace, named `topic_<id>`.",
            "additionalProperties": {
              "x-additionalPropertiesName": "topic_<id>",
              "description": "Boolean preference for a topic named `topic_<id>`; `true` subscribes, `false` unsubscribes, and empty or missing values use the topic default. Find topic IDs with [getTopics](/integrations/api/app/tag/subscription-center/getTopics/).",
              "type": "boolean"
            }
          }
        },
        "example": {
          "topics": {
            "topic_1": true,
            "topic_2": false,
            "topic_3": true
          }
        }
      },
      "workspace": {
        "x-scalar-ignore": true,
        "description": "Contains workspace properties including the count of messages, people, and objects. Customer.io caches these counts, so your data may be up to two hours old.",
        "type": "object",
        "properties": {
          "billable_messages_sent": {
            "type": "integer",
            "description": "The count of [emails sent](/journeys/channels/message-statuses/#sent) that are considered for billing in your current billing period. Ultimately, we only bill for the overages on your plan.",
            "example": 75124
          },
          "id": {
            "type": "integer",
            "description": "The id of the workspace.",
            "example": "13XXXX"
          },
          "messages_sent": {
            "type": "integer",
            "description": "The count of [messages sent](/journeys/channels/message-statuses/#sent) via any channel (email, SMS, in-app, push, slack) in the current billing period.",
            "example": 100202
          },
          "name": {
            "type": "string",
            "description": "The name of the workspace.",
            "example": "Workspace 1"
          },
          "object_types": {
            "type": "integer",
            "description": "The current count of object types in the workspace. Updates roughly every hour.",
            "example": 4
          },
          "objects": {
            "type": "integer",
            "description": "The current count of object profiles in the workspace. Updates roughly every hour.",
            "example": 10
          },
          "people": {
            "type": "integer",
            "description": "The current count of people profiles in the workspace. Updates roughly every hour.",
            "example": 25666
          }
        }
      },
      "campaign_actions": {
        "x-scalar-ignore": true,
        "type": "array",
        "description": "An array of actions contained within the automation.",
        "items": {
          "type": "object",
          "properties": {
            "id": {
              "type": "integer",
              "description": "The identifier for the action.",
              "example": 259
            },
            "type": {
              "type": "string",
              "description": "The action type.",
              "example": "email"
            }
          }
        }
      },
      "campaign_name": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The name of the automation.",
        "readOnly": true
      },
      "campaign_description": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The description of the automation, if one was set.",
        "example": "Sends a welcome series to new trial signups."
      },
      "active": {
        "x-scalar-ignore": true,
        "type": "boolean",
        "description": "If true, the automation is active and can still send messages."
      },
      "state": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The status of the automation.",
        "enum": [
          "running",
          "draft",
          "stopped"
        ]
      },
      "first_started": {
        "x-scalar-ignore": true,
        "type": "integer",
        "format": "unix timestamp",
        "description": "The date and time when you first started the automation and it first became eligible to be triggered.",
        "example": 1552341937
      },
      "tags": {
        "x-scalar-ignore": true,
        "type": "array",
        "description": "An array of tags you set on this automation.",
        "items": {
          "type": "string"
        },
        "example": [
          "new",
          "welcome"
        ]
      },
      "filter_segment_ids": {
        "x-scalar-ignore": true,
        "description": "A list of segments used in the automation filter, returned if the automation audience was filtered on one or more segments.",
        "type": "array",
        "items": {
          "type": "integer"
        },
        "example": [
          21,
          42
        ]
      },
      "object_type_id_trigger": {
        "x-scalar-ignore": true,
        "description": "The object type ID of the trigger.",
        "type": "integer"
      },
      "filter_object_attributes": {
        "x-scalar-ignore": true,
        "description": "A list of object attributes used in the automation filter, returned if the automation audience was filtered on one or more object attributes.",
        "type": "string",
        "example": "{\"and\":[{\"object_attribute\":{\"type_id\":1,\"field\":\"name\",\"operator\":\"eq\",\"value\":\"sfa\"}},{\"object_attribute\":{\"type_id\":1,\"field\":\"renewal_date\",\"operator\":\"eq\",\"value\":\"sdfs\"}}]}"
      },
      "filter_relationship_attributes": {
        "x-scalar-ignore": true,
        "description": "A list of relationship attributes used in the automation filter, returned if the automation audience was filtered on one or more relationship attributes.",
        "type": "string",
        "example": "{\"and\":[{\"relationship_attribute\":{\"type_id\":1,\"field\":\"email\",\"operator\":\"eq\",\"value\":\"dscs@test.com\"}},{\"relationship_attribute\":{\"type_id\":1,\"field\":\"trig\",\"operator\":\"eq\",\"value\":\"false\"}}]}"
      },
      "appApiError": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "An array/list of failures where each entry is a separate failure reason.",
        "required": [
          "errors"
        ],
        "properties": {
          "errors": {
            "type": "array",
            "description": "One entry for each reason the request failed.",
            "items": {
              "type": "object",
              "required": [
                "detail",
                "status"
              ],
              "properties": {
                "detail": {
                  "type": "string",
                  "description": "What went wrong, in plain text. Most messages end with a support reference you can use if you need to contact support.",
                  "example": "bad request (reference a1b2c3)"
                },
                "status": {
                  "type": "string",
                  "description": "The HTTP status code as a string.",
                  "example": "400"
                },
                "code": {
                  "type": "string",
                  "description": "A stable identifier for the failure, on the errors that carry one. Use this rather than the text in `detail` if you need to identify the error programmatically.",
                  "example": "invalid_credentials"
                },
                "meta": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "Extra context (if available)."
                },
                "source": {
                  "type": "object",
                  "description": "The part of the request that the error refers to.",
                  "properties": {
                    "pointer": {
                      "type": "string",
                      "description": "A JSON pointer to the part of the request body that the error refers to.",
                      "example": "/data/attributes/email"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "responses": {
      "200": {
        "description": "A successful request returns an empty object response."
      },
      "204": {
        "description": "Success. No content."
      },
      "400": {
        "description": "Invalid or malformed request.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "meta": {
                  "type": "object",
                  "properties": {
                    "errors": {
                      "type": "array",
                      "description": "An array of errors.",
                      "items": {
                        "type": "string",
                        "description": "Error descriptions."
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "401": {
        "description": "Unauthorized request. Make sure that you provided the right credentials."
      },
      "404": {
        "description": "The automation and/or action do not exist."
      },
      "429": {
        "description": "Your request is over the 10-per-second limit. `Retry-After` tells you how many seconds you must wait before you send the next request.",
        "headers": {
          "Retry-After": {
            "description": "How many seconds you must wait before you send another request. This header is present when you are rate limited by a per-second limit. If you hit a daily quota, this header is not set.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "example": 1
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "x-scalar-ignore": true,
              "type": "object",
              "description": "An array/list of failures where each entry is a separate failure reason.",
              "required": [
                "errors"
              ],
              "properties": {
                "errors": {
                  "type": "array",
                  "description": "One entry for each reason the request failed.",
                  "items": {
                    "type": "object",
                    "required": [
                      "detail",
                      "status"
                    ],
                    "properties": {
                      "detail": {
                        "type": "string",
                        "description": "What went wrong, in plain text. Most messages end with a support reference you can use if you need to contact support.",
                        "example": "bad request (reference a1b2c3)"
                      },
                      "status": {
                        "type": "string",
                        "description": "The HTTP status code as a string.",
                        "example": "400"
                      },
                      "code": {
                        "type": "string",
                        "description": "A stable identifier for the failure, on the errors that carry one. Use this rather than the text in `detail` if you need to identify the error programmatically.",
                        "example": "invalid_credentials"
                      },
                      "meta": {
                        "type": "object",
                        "additionalProperties": true,
                        "description": "Extra context (if available)."
                      },
                      "source": {
                        "type": "object",
                        "description": "The part of the request that the error refers to.",
                        "properties": {
                          "pointer": {
                            "type": "string",
                            "description": "A JSON pointer to the part of the request body that the error refers to.",
                            "example": "/data/attributes/email"
                          }
                        }
                      }
                    }
                  }
                }
              }
            },
            "example": {
              "errors": [
                {
                  "detail": "rate limited to 10 requests per 1s (reference a1b2c3)",
                  "status": "429"
                }
              ]
            }
          }
        }
      },
      "400-campaigns": {
        "description": "The `campaignID` or `actionID` is invalid."
      },
      "400-campaigns-lang": {
        "description": "The `campaignID` or `actionID` is invalid. It could also be that the `language` requested does not exist for this action."
      },
      "400-broadcasts": {
        "description": "The `broadcastID`, `actionID` or `triggerID` is invalid."
      },
      "400-broadcasts-lang": {
        "description": "The `broadcastID`, `actionID` or `triggerID` is invalid. Or the `language` does not exist for this action."
      },
      "400-app": {
        "description": "Invalid or malformed request. Use this response, not the shared `400`, for anything served from `api.customer.io` — the App API reports errors as a list under `errors`, where the Track and Pipelines APIs use `meta`.",
        "content": {
          "application/json": {
            "schema": {
              "x-scalar-ignore": true,
              "type": "object",
              "description": "An array/list of failures where each entry is a separate failure reason.",
              "required": [
                "errors"
              ],
              "properties": {
                "errors": {
                  "type": "array",
                  "description": "One entry for each reason the request failed.",
                  "items": {
                    "type": "object",
                    "required": [
                      "detail",
                      "status"
                    ],
                    "properties": {
                      "detail": {
                        "type": "string",
                        "description": "What went wrong, in plain text. Most messages end with a support reference you can use if you need to contact support.",
                        "example": "bad request (reference a1b2c3)"
                      },
                      "status": {
                        "type": "string",
                        "description": "The HTTP status code as a string.",
                        "example": "400"
                      },
                      "code": {
                        "type": "string",
                        "description": "A stable identifier for the failure, on the errors that carry one. Use this rather than the text in `detail` if you need to identify the error programmatically.",
                        "example": "invalid_credentials"
                      },
                      "meta": {
                        "type": "object",
                        "additionalProperties": true,
                        "description": "Extra context (if available)."
                      },
                      "source": {
                        "type": "object",
                        "description": "The part of the request that the error refers to.",
                        "properties": {
                          "pointer": {
                            "type": "string",
                            "description": "A JSON pointer to the part of the request body that the error refers to.",
                            "example": "/data/attributes/email"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "404-broadcasts": {
        "description": "The broadcast, action, and/or trigger do not exist."
      },
      "429-archived": {
        "description": "Your request is over one of the limits on this endpoint. The per-second limit sets `Retry-After`. The daily quota doesn't, because the wait is until the next day. `X-RateLimit-Remaining` tells you how much of today's quota is left.",
        "headers": {
          "Retry-After": {
            "description": "How many seconds you must wait before you send another request. This header is present when you are rate limited by a per-second limit. If you hit a daily quota, this header is not set.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "example": 1
            }
          },
          "X-RateLimit-Limit": {
            "description": "How many requests the daily quota on this endpoint allows.",
            "schema": {
              "type": "integer",
              "example": 100
            }
          },
          "X-RateLimit-Remaining": {
            "description": "How many requests are left in today's quota for this endpoint. Endpoints with a daily quota set it on every response, not only on a 429, so you can slow down before you run out.",
            "schema": {
              "type": "integer",
              "example": 97
            }
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "x-scalar-ignore": true,
              "type": "object",
              "description": "An array/list of failures where each entry is a separate failure reason.",
              "required": [
                "errors"
              ],
              "properties": {
                "errors": {
                  "type": "array",
                  "description": "One entry for each reason the request failed.",
                  "items": {
                    "type": "object",
                    "required": [
                      "detail",
                      "status"
                    ],
                    "properties": {
                      "detail": {
                        "type": "string",
                        "description": "What went wrong, in plain text. Most messages end with a support reference you can use if you need to contact support.",
                        "example": "bad request (reference a1b2c3)"
                      },
                      "status": {
                        "type": "string",
                        "description": "The HTTP status code as a string.",
                        "example": "400"
                      },
                      "code": {
                        "type": "string",
                        "description": "A stable identifier for the failure, on the errors that carry one. Use this rather than the text in `detail` if you need to identify the error programmatically.",
                        "example": "invalid_credentials"
                      },
                      "meta": {
                        "type": "object",
                        "additionalProperties": true,
                        "description": "Extra context (if available)."
                      },
                      "source": {
                        "type": "object",
                        "description": "The part of the request that the error refers to.",
                        "properties": {
                          "pointer": {
                            "type": "string",
                            "description": "A JSON pointer to the part of the request body that the error refers to.",
                            "example": "/data/attributes/email"
                          }
                        }
                      }
                    }
                  }
                }
              }
            },
            "example": {
              "errors": [
                {
                  "detail": "rate limited to 100 request(s) per day (reference a1b2c3)",
                  "status": "429"
                }
              ]
            }
          }
        }
      }
    },
    "headers": {
      "Retry-After": {
        "description": "How many seconds you must wait before you send another request. This header is present when you are rate limited by a per-second limit. If you hit a daily quota, this header is not set.",
        "schema": {
          "type": "integer",
          "minimum": 1,
          "example": 1
        }
      },
      "X-RateLimit-Limit": {
        "description": "How many requests the daily quota on this endpoint allows.",
        "schema": {
          "type": "integer",
          "example": 100
        }
      },
      "X-RateLimit-Remaining": {
        "description": "How many requests are left in today's quota for this endpoint. Endpoints with a daily quota set it on every response, not only on a 429, so you can slow down before you run out.",
        "schema": {
          "type": "integer",
          "example": 97
        }
      }
    },
    "securitySchemes": {
      "Tracking-API-Key": {
        "type": "http",
        "scheme": "basic",
        "description": "The Track API uses a basic authentication scheme. Your credentials are your **Site ID** and your **API key**, **Base-64 encoded** in the format `site_id:api_key`.\n\nYou can find your Site ID and API key on the [Track API Keys page](https://fly.customer.io/settings/api_credentials).\n"
      }
    }
  },
  "openapi": "3.1.0",
  "info": {
    "version": "1.0.0",
    "title": "Customer.io Track API",
    "description": "# Overview\n\nOur Track API provides ways to send real-time customer data to your Customer.io workspace including customer identification and event tracking.\n\n# Use our Postman collection\n\nWe've generated a Postman collection to help you get started with our APIs.\n\nIf you fork this collection, you might want to disable the *Watch original collection* option. We automatically update our Postman collection whenever we release changes to our documentation, even if we don't change our APIs—which happens daily! Rather than being flooded with Postman notifications, you can check out our [Release Notes](/release-notes/) for updates to our APIs.\n\n**NOTE**: Postman endpoints default to our US APIs. If you're in our European (EU) region, you'll need to add `-eu` to the server variables (`track_api_url` and `app_api_url`).\n\n[<img src=\"https://run.pstmn.io/button.svg\" alt=\"Run In Postman\" style=\"width: 128px; height: 32px;\">](https://god.gw.postman.com/run-collection/23697545-0f7ae1e8-8177-46fc-808a-2fd363dd52b9?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D23697545-0f7ae1e8-8177-46fc-808a-2fd363dd52b9%26entityType%3Dcollection%26workspaceId%3Db886877f-fc09-475f-84fe-6221a98f4d18#?env%5BCustomer.io%20API%20Environment%5D=W3sia2V5IjoidHJhY2tfYXBpX3VybCIsInR5cGUiOiJkZWZhdWx0IiwidmFsdWUiOiJ0cmFjay5jdXN0b21lci5pbyIsImVuYWJsZWQiOnRydWV9LHsia2V5IjoiYXBwX2FwaV91cmwiLCJ0eXBlIjoiZGVmYXVsdCIsInZhbHVlIjoiYXBpLmN1c3RvbWVyLmlvIiwiZW5hYmxlZCI6dHJ1ZX0seyJrZXkiOiJzaXRlX2lkIiwidHlwZSI6ImRlZmF1bHQiLCJ2YWx1ZSI6IiIsImVuYWJsZWQiOnRydWV9LHsia2V5IjoiYXBpX2tleSIsInR5cGUiOiJzZWNyZXQiLCJ2YWx1ZSI6IiIsImVuYWJsZWQiOnRydWV9LHsia2V5IjoiYmVhcmVyIiwidHlwZSI6ImRlZmF1bHQiLCJ2YWx1ZSI6IiIsImVuYWJsZWQiOnRydWV9LHsia2V5IjoiYnJvYWRjYXN0X2lkIiwidHlwZSI6ImRlZmF1bHQiLCJ2YWx1ZSI6IiIsImVuYWJsZWQiOnRydWV9LHsia2V5IjoiaW1wb3J0X2lkIiwidHlwZSI6ImRlZmF1bHQiLCJ2YWx1ZSI6IiIsImVuYWJsZWQiOnRydWV9LHsia2V5IjoiZW1haWxfYWRkcmVzcyIsInR5cGUiOiJkZWZhdWx0IiwidmFsdWUiOiIiLCJlbmFibGVkIjp0cnVlfSx7ImtleSI6InN1cHByZXNzaW9uX3R5cGUiLCJ0eXBlIjoiZGVmYXVsdCIsInZhbHVlIjoiIiwiZW5hYmxlZCI6dHJ1ZX0seyJrZXkiOiJjb2xsZWN0aW9uX2lkIiwidHlwZSI6ImRlZmF1bHQiLCJ2YWx1ZSI6IiIsImVuYWJsZWQiOnRydWV9LHsia2V5Ijoic25pcHBldF9uYW1lIiwidHlwZSI6ImRlZmF1bHQiLCJ2YWx1ZSI6IiIsImVuYWJsZWQiOnRydWV9LHsia2V5Ijoid2ViaG9va19pZCIsInR5cGUiOiJkZWZhdWx0IiwidmFsdWUiOiIiLCJlbmFibGVkIjp0cnVlfSx7ImtleSI6InNlbmRlcl9pZCIsInR5cGUiOiJkZWZhdWx0IiwidmFsdWUiOiIiLCJlbmFibGVkIjp0cnVlfSx7ImtleSI6ImV4cG9ydF9pZCIsInR5cGUiOiJkZWZhdWx0IiwidmFsdWUiOiIiLCJlbmFibGVkIjp0cnVlfSx7ImtleSI6Im1lc3NhZ2VfaWQiLCJ0eXBlIjoiZGVmYXVsdCIsInZhbHVlIjoiIiwiZW5hYmxlZCI6dHJ1ZX0seyJrZXkiOiJzZWdtZW50X2lkIiwidHlwZSI6ImRlZmF1bHQiLCJ2YWx1ZSI6IiIsImVuYWJsZWQiOnRydWV9LHsia2V5IjoibmV3c2xldHRlcl9pZCIsInR5cGUiOiJkZWZhdWx0IiwidmFsdWUiOiIiLCJlbmFibGVkIjp0cnVlfSx7ImtleSI6ImNvbnRlbnRfaWQiLCJ0eXBlIjoiZGVmYXVsdCIsInZhbHVlIjoiIiwiZW5hYmxlZCI6dHJ1ZX0seyJrZXkiOiJjYW1wYWlnbl9pZCIsInR5cGUiOiJkZWZhdWx0IiwidmFsdWUiOiIiLCJlbmFibGVkIjp0cnVlfSx7ImtleSI6ImFjdGlvbl9pZCIsInR5cGUiOiJkZWZhdWx0IiwidmFsdWUiOiIiLCJlbmFibGVkIjp0cnVlfSx7ImtleSI6ImN1c3RvbWVyX2lkIiwidHlwZSI6ImRlZmF1bHQiLCJ2YWx1ZSI6IiIsImVuYWJsZWQiOnRydWV9LHsia2V5IjoidHJhbnNhY3Rpb25hbF9pZCIsInR5cGUiOiJkZWZhdWx0IiwidmFsdWUiOiIiLCJlbmFibGVkIjp0cnVlfSx7ImtleSI6InRyaWdnZXJfaWQiLCJ0eXBlIjoiZGVmYXVsdCIsInZhbHVlIjoiIiwiZW5hYmxlZCI6dHJ1ZX0seyJrZXkiOiJmb3JtX2lkIiwidHlwZSI6ImRlZmF1bHQiLCJ2YWx1ZSI6IiIsImVuYWJsZWQiOnRydWV9LHsia2V5IjoiaWRlbnRpZmllciIsInR5cGUiOiJkZWZhdWx0IiwidmFsdWUiOiIiLCJlbmFibGVkIjp0cnVlfSx7ImtleSI6ImRldmljZV9pZCIsInR5cGUiOiJkZWZhdWx0IiwidmFsdWUiOiIiLCJlbmFibGVkIjp0cnVlfSx7ImtleSI6ImRlbGl2ZXJ5X2lkIiwidHlwZSI6ImRlZmF1bHQiLCJ2YWx1ZSI6IiIsImVuYWJsZWQiOnRydWV9XQ==)\n\n# Server addresses: US and EU\nCustomer.io hosts services in the United States (US) and European Union. Select the appropriate server address for your region.\n\n| Region | Server Address |\n| :-- | :-- |\n| US | https://track.customer.io |\n| EU | https://track-eu.customer.io |\n\nNote that if your account is in the EU region and you send traffic to our US endpoints, we'll redirect it accordingly but this traffic still passes through US servers and data could be logged in the US.\n\n# Authentication \n\nYou can find all of your API authentication information in your [Account Settings](https://fly.customer.io/settings/api_credentials). Our Tracking API uses HTTP basic authorization. The App API uses bearer authorization, and you can generate tokens supporting different scopes. Each operation in this document references the authorization header it requires.\n\n# v1 vs v2 APIs\n\nMost of the time, when we talk about *The Track API*, we're talking about the v1 API because the v2 API isn't used in any of our libraries and rarely used in libraries built by third parties; it's much more common that you'd encounter the v1 API.\n\nIf you're integrating with Customer.io using one of our libraries, or a third party customer data platform (CDP) like Segment or Rudderstack, you'll be using the v1 API.\n\nThe v2 API is newer and supports two important features that the v1 API doesn't natively support: objects and batching. But, if you're integrating directly with our API, we suggest you use the [Pipelines API](/integrations/api/cdp/). The Pipelines API supports both objects, batching, *and* all of our newest integrations and libraries are based on it.\n\n# Rate Limits\n\nThe Track API has a rate limit of 1000 requests per second for both active data integrations and historical backfill scripts. This limit applies to both our v1 and v2 APIs. \n\nWhile this rate is not strictly enforced, consistently exceeding it may lead to throttling or dropped data, especially during periods of high system load. If we detect a sustained high volume that could impact other customers, we may contact you to help adjust your integration or, in rare cases, temporarily block requests.\n\n**Rate limits are subject to change. We may adjust these thresholds to ensure stable performance for all customers.**\n\nBelow are the payload size limits for the Track API. If any of these limits are too restrictive for your needs, contact support to let us know your situation as we may be able to accommodate special circumstances. \n\n## Customer limits\n\nThese limits apply to people and their attributes, often referred to as \"customers\" in our APIs.\n\n| Data Type | Limit | Description |\n| -- | -- | -- |\n| ID | 150 bytes | Max length of a person's ID value |\n| Attribute Name | 150 bytes | Max length of each attribute name |\n| Attribute Value | 1000 bytes | Max length of attribute values |\n| Unique attributes | 300 | Max number of attributes allowed per person or Identify call |\n\n## Object and relationship limits\n\nObjects (groups) and relationships between people and objects can have their own attributes. Their limits are similar to people (customers).\n\n| Data Type | Limit | Description |\n| -- | -- | -- |\n| Object ID | 150 bytes | Max length of a object's ID |\n| Attribute Names | 150 bytes | Max length of each attribute name |\n| Attribute Values | 1000 bytes | Max length of attribute values |\n| Unique attributes | 300 | Max number of attributes allowed per object or relationship |\n| Total attribute size | 100 Kilobytes | Max size of all attributes associated with an object or relationship |\n\n## Track API Event limits\n\nThese limits apply to events that you'll send with the `/v1/track` call.\n\n| Data Type | Limit | Description |\n| -- | -- | -- |\n| Event Name | 100 bytes | Max length of each event name |\n| Event Data | 100000 bytes | Max length of each event data |\n\n\n## v2 API Limits\n\nThe v2 API has two endpoints, both of which have limits on the total size of requests. \n* `/entity` is limited to requests 32kb or smaller.\n* `/batch` is limited to requests 500kb or smaller.\n  \n  Each of the requests within a batch must also be 32kb or smaller.\n"
  },
  "tags": [
    {
      "name": "track_v2",
      "x-displayName": "Track v2 API",
      "description": "This version of our edge API has only two endpoints, but supports the majority of our traditional v1 track operations and then some based on the `type` and `action` keys that you set in your request. \n  \nYou can use the `/batch` call to send multiple requests at the same time. Unlike the v1 API, you can also make requests affecting objects and deliveries. Objects are a grouping mechanism for people—like an account people belong to or an online course that they enroll in. Deliveries are events based on messages sent from Customer.io.\n\nThe chart below lists the type of `action` you can perform for each `type`. Our requests below are broken out by `type`; use the `action` dropdown to see the specific payload structure for each action.\n\n| Action | Person | Object | Delivery | \n| :-- | :--: | :--: | :--: |\n| identify | &#9989; | &#9989; | |\n| delete | &#9989; | &#9989; | |\n| event | &#9989; | | &#9989; |\n| screen | &#9989; | | |\n| page | &#9989; | | |\n| add_relationships | &#9989; | &#9989; | |\n| delete_relationships | &#9989; | &#9989; | |\n| add_device | &#9989; | | | \n| delete_device | &#9989; | | |\n| merge | &#9989; | | |\n| suppress | &#9989; | | |\n| unsuppress | &#9989; | | |\n"
    },
    {
      "name": "Track v1 Overview",
      "description": "## Web SDK vs Backend Integrations \n\nYou can integrate with this API using a [JavaScript snippet](/integrations/data-in/connections/javascript/legacy-js/getting-started/), by consuming the API directly, or both.\n\nYou can copy/paste the JavaScript snippet to your site to track basic customer behaviors directly from your website. In many cases, using the JavaScript snippet is easier to integrate with your app, but there are several reasons why you may want to send events from your backend systems:\n\n* Ad blockers are becoming more prevalent as people and browsers increasingly try to avoid 3rd-party JS trackers.\n* You don't plan to trigger emails based on how customers interact with your website (e.g. users who haven’t visited the site in X days).\n* You use the JavaScript snippet, but have a few events you’d like to send from your backend system. They will work well together!\n* You would rather not have another JavaScript snippet slowing down your frontend. Our snippet is asynchronous (doesn’t affect initial page load) and very small, but we understand.\n\nYou should base your decision to send events from your backend or a JavaScript snippet on what works best for you. You can fully integrate with Customer.io using either approach.\n"
    },
    {
      "name": "trackRegion",
      "x-displayName": "Account Region",
      "description": "Determine whether your account and data are hosted in the US or EU data center using your [Track API Key](https://fly.customer.io/settings/api_credentials).\n"
    },
    {
      "name": "Track Customers",
      "x-displayName": "Customers",
      "description": "Add, modify, suppress, or unsuppress people (referred to as \"customers\" in our APIs). You can also use these endpoints to set attributes on people."
    },
    {
      "name": "Track Events",
      "x-displayName": "Events",
      "description": "Use customer events to trigger automations or add users to segments. You can attribute events directly to customers or send anonymous events and associate them with users later when you identify them."
    },
    {
      "name": "Track Segments",
      "x-displayName": "Segments",
      "description": "Manual segments are lists of people that you incorporate using the API or by uploading CSVs. You can add people to, or remove people from, manual segments with these endpoints. These endpoints do _not_ let you modify data-driven segments.\n\n**NOTE**: These endpoints do not yet support workspaces that use both `email` and `id` as identifiers.\n\nA segment must exist before you can add people to it. You can create manual segments using the [App API `/segments` endpoints](/integrations/api/app/tag/segments/createManSegment/).\n"
    },
    {
      "name": "Forms",
      "description": "Connect forms to your workspace to identify people, apply form responses to people, and trigger automations for people who fill out forms on your website or in your app."
    }
  ],
  "servers": [
    {
      "url": "https://track.customer.io",
      "description": "The base URL for the Track API. Track endpoints use basic authentication with your Site ID as the user name and your secret key as the password."
    },
    {
      "url": "https://track-eu.customer.io",
      "description": "The base URL for the Track API (EU region). Track endpoints use basic authentication with your Site ID as the user name and your secret key as the password."
    }
  ],
  "paths": {
    "/api/v1/accounts/region": {
      "get": {
        "operationId": "getRegion",
        "summary": "Find your account region",
        "description": "This endpoint returns the appropriate region and URL for your Track API credentials. Use it to determine the URLs you should use to successfully complete other requests.\n\nYou can perform this operation against either of the track API regional URLs; it returns your region in either case. \n\nThis endpoint also returns an `environment_id`, which represents the workspace the credentials are valid for. \n",
        "tags": [
          "trackRegion"
        ],
        "security": [
          {
            "Tracking-API-Key": []
          }
        ],
        "servers": [
          {
            "url": "https://track.customer.io",
            "description": "This endpoint is a part of the Track API."
          }
        ],
        "responses": {
          "200": {
            "description": "Your credentials are valid.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "environment_id": {
                      "type": "integer",
                      "description": "The identifier for the workspace that your credentials grant access to.",
                      "example": 3
                    },
                    "region": {
                      "type": "string",
                      "description": "The 'region' that your account is in. While the `url` relates to the Track API, this tells you which region of the Customer.io API to use. If this value is `eu`, you can append the subdomain any of the Customer.io API URLs with `-eu` to route your request to the appropriate region.",
                      "enum": [
                        "us",
                        "eu"
                      ],
                      "example": "us"
                    },
                    "url": {
                      "type": "string",
                      "description": "The URL you will use for future Track API calls.",
                      "enum": [
                        "https://track.customer.io",
                        "https://track-eu.customer.io"
                      ],
                      "example": "https://track.customer.io"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request. Make sure that you provided the right credentials."
          }
        }
      }
    },
    "/api/v1/customers/{identifier}": {
      "put": {
        "operationId": "identify",
        "tags": [
          "Track Customers"
        ],
        "summary": "Add or update a customer",
        "parameters": [
          {
            "name": "identifier",
            "required": true,
            "in": "path",
            "description": "The unique value representing a person. The values you use to identify a person may be an `id`, `email` address, or the `cio_id` (when updating people), depending on your workspace settings. When you reference people by `cio_id`, you must prefix the value with `cio_`.\n\nYou can't reference a person by their `phone` number here. We determine the identifier type from the shape of the value, so a phone number in the path is treated as an `id`. To identify people by phone number, use the [Track v2 API](/integrations/api/track/tag/track_v2/).\n",
            "schema": {
              "oneOf": [
                {
                  "title": "id",
                  "type": "string",
                  "example": 12345,
                  "description": "The unique identifier for a person that you want to create or modify."
                },
                {
                  "title": "email",
                  "type": "string",
                  "example": "person@example.com",
                  "description": "A person's email address. If adding a new person in an email-based workspace, you must use this value."
                },
                {
                  "title": "cio_id",
                  "type": "string",
                  "format": "cio_[a-zA-Z0-9]*",
                  "description": "A canonical identifier assigned by Customer.io when you add a person. When referencing a person by this value, you must prefix the value with `cio_`. You can [look up a person using the App API](/integrations/api/app/tag/customers/) to find their `cio_id`.\n\nYou must use this value to update a person's other identifiers—their `id` or `email`, unless you enable your workspace's [Allow updates to email using ID](/accounts/workspaces#update-email-with-id) setting.\n",
                  "example": "cio_03000001"
                }
              ]
            }
          }
        ],
        "description": "Adds or updates a person.\n\nIf your request does _not_ include `cio_id` and the identifiers in the request body do not belong to a person, your request adds a person.\n\nIf a person already exists with the identifier in the request path, your request updates that person. If the identifier in the path does not belong to a person but you use an identifier in your request body that _does_ belong to a person, your request updates the person and assigns them the identifier in the path.\n\nIf the identifier in the path and request body belong to different people, your request may return `200 OK` but produce an *Attribute Update Failure* for the identifier in the payload.\n\nIf you want to update a person's identifiers after they are set, you must reference them using their `cio_id` in the format `cio_<cio_id_value>`—unless when updating an `email` with the [Allow updates to email using ID](/accounts/workspaces#update-email-with-id) setting enabled. You can get the `cio_id` value from the [App API](/integrations/api/app/tag/customers/). If your request includes a `cio_id`, we'll attempt to update that person, including any identifiers in the request. If the `cio_id` does not exist or belongs to a person who was deleted, we'll drop the request.\n\nFor workspaces using `email` as an identifier, `email` is case-insensitive. The addresses `person@example.com` and `PERSON@example.com` would represent the same person.\n\n**Tip**: If your workspace identifies people by both `email` and `id`, and you send an identify call with a new `id` but an `email` that already belongs to someone, we update the existing person rather than creating a new one. The existing person gets the new `id`. This is a common source of confusion during testing—if you're generating new IDs but reusing the same email address, you're updating one person repeatedly, not creating multiple people.\n",
        "servers": [
          {
            "url": "https://track.customer.io",
            "description": "This endpoint is a part of the Track API. Track endpoints use basic authentication with your Site ID as the user name and your secret key as the password."
          }
        ],
        "security": [
          {
            "Tracking-API-Key": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "The body of the request contains key-value pairs representing attributes that you want to assign to, or update for, a person.\n\nIf your request body contains \"identifiers\" (like `id` or `email`), your request attempts to update that person. If the identifier in the path and identifiers in the request body belong to different people, your request will produce an *Attribute Update Failure*.\n",
                "additionalProperties": {
                  "x-additionalPropertiesName": "Attributes",
                  "description": "Set attributes on customers. Attributes can have string, integer, or boolean values.",
                  "oneOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "integer"
                    },
                    {
                      "type": "boolean"
                    }
                  ]
                },
                "properties": {
                  "_timestamp": {
                    "type": "integer",
                    "description": "The Unix timestamp for when the attribute update occurred. This can be used to control the order of attribute updates when multiple requests are sent in rapid succession."
                  },
                  "_update": {
                    "type": "boolean",
                    "description": "If you perform multiple requests in rapid succession when you create a person, there's a danger that you could create multiple profiles. If you know that a profile already exists and you want to update it, set `_update:true`, and Customer.io will _not_ create a new profile, even if the `identifier` in the path isn't found.\n\nIf the identifiers in your path or request don't belong to an existing person, the request produces a *Failed Attribute Change* event in your activity log.\n"
                  },
                  "anonymous_id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "An identifier for an anonymous event, like a cookie. If set as an attribute on a person, any events bearing the same anonymous value are associated with this person. This value must be unique and is not reusable."
                  },
                  "cio_relationships": {
                    "x-scalar-ignore": true,
                    "type": "object",
                    "description": "Describes relationships to an entity—a non-person object in Customer.io, like a company, educational course, job board, etc.",
                    "properties": {
                      "action": {
                        "type": "string",
                        "description": "This determines whether the `relationships` array adds relationships to a person or removes them from a person.",
                        "enum": [
                          "add_relationships",
                          "delete_relationships"
                        ]
                      },
                      "relationships": {
                        "x-scalar-ignore": true,
                        "type": "array",
                        "description": "Each object in the array represents a relationship you want to add to, or remove from, a person.",
                        "items": {
                          "properties": {
                            "identifiers": {
                              "description": "The identifiers for a particular object. You can use either the `object_type_id` and `object_id` (where `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object) or the `cio_object_id`.",
                              "oneOf": [
                                {
                                  "title": "Object ID",
                                  "type": "object",
                                  "required": [
                                    "object_type_id",
                                    "object_id"
                                  ],
                                  "properties": {
                                    "object_id": {
                                      "type": "string",
                                      "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                                      "example": "acme"
                                    },
                                    "object_type_id": {
                                      "x-scalar-ignore": true,
                                      "type": "string",
                                      "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.",
                                      "example": "1"
                                    }
                                  }
                                },
                                {
                                  "title": "CIO Object ID",
                                  "type": "object",
                                  "required": [
                                    "cio_object_id"
                                  ],
                                  "properties": {
                                    "cio_object_id": {
                                      "type": "string",
                                      "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                                      "example": "obb7fd050101"
                                    }
                                  }
                                }
                              ]
                            },
                            "relationship_attributes": {
                              "x-scalar-ignore": true,
                              "type": "object",
                              "description": "The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
                              "additionalProperties": {
                                "x-additionalPropertiesName": "Relationship Attributes"
                              },
                              "example": {
                                "role": "admin"
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "cio_subscription_preferences": {
                    "description": "Stores your audience's subscription preferences if you enable our [subscription center](/journeys/channels/subscriptions/center/) feature. These items are set automatically when people use the unsubscribe link in your messages, but you can set preferences outside the subscription flow. To update select topic preferences while preserving those set for other topics, use JSON dot notation `\"cio_subscription_preferences.topics.topic_<topic ID>\":<boolean>`.",
                    "type": "object",
                    "properties": {
                      "topics": {
                        "type": "object",
                        "description": "Contains active topics in your workspace, named `topic_<id>`.",
                        "additionalProperties": {
                          "x-additionalPropertiesName": "topic_<id>",
                          "description": "Each property is a boolean named `topic_<id>`. Topic `id` values begin at `1` and increment for each new topic. You can find your topic ids in [Workspace Settings](https://fly.customer.io/workspaces/last/settings/subscription_center/topics) or by querying our [App API](/integrations/api/app/tag/subscription-center/getTopics/). For each boolean, `true` means that a person is subscribed to the topic; false means they are unsubscribed. An empty or missing value reverts to the default preference for the topic (opt-in or opt-out).",
                          "type": "boolean"
                        }
                      }
                    }
                  },
                  "created_at": {
                    "type": "integer",
                    "description": "The Unix timestamp when the user was created."
                  },
                  "email": {
                    "type": "string",
                    "format": "email",
                    "description": "The email address of the customer."
                  },
                  "id": {
                    "type": "string",
                    "description": "A customer's ID. You can set a person's ID if you identify them by email (in the path); you can update this value if you identify a person by `cio_id`."
                  },
                  "unsubscribed": {
                    "type": "boolean",
                    "description": "If true, a person is unsubscribed from all messages. If false, or absent, a person is eligible to receive messages as determined by their `cio_subscription_preferences`. Like subscription preferences, this attribute is automatically set or updated when a person clicks the \"unsubscribe\" link in your emails. We support any case of true (i.e. TRUE, true, tRUe, etc.), 1, or \"1\" to represent unsubscribed. Any other value is considered “false”, or subscribed."
                  }
                }
              },
              "example": {
                "cio_relationships": {
                  "action": "add_relationships",
                  "relationships": [
                    {
                      "identifiers": {
                        "object_id": "01H5Q5SZVQDJ71SBME2SMDXS88",
                        "object_type_id": "1"
                      },
                      "relationship_attributes": {
                        "role": "admin"
                      }
                    },
                    {
                      "identifiers": {
                        "object_id": "1171SBME",
                        "object_type_id": "2"
                      },
                      "relationship_attributes": {
                        "role": "viewer"
                      }
                    }
                  ]
                },
                "cio_subscription_preferences": {
                  "topics": {
                    "topic_1": true,
                    "topic_2": true,
                    "topic_3": false
                  }
                },
                "created_at": 1361205308,
                "email": "customer@example.com",
                "first_name": "Bob",
                "plan": "basic"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful request returns an empty object response."
          },
          "401": {
            "description": "Unauthorized request. Make sure that you provided the right credentials."
          }
        },
        "x-codeSamples": [
          {
            "lang": "json",
            "label": "JSON",
            "source": "{\n  \"cio_relationships\": {\n    \"action\": \"add_relationships\",\n    \"relationships\": [\n      {\n        \"identifiers\": {\n          \"object_id\": \"01H5Q5SZVQDJ71SBME2SMDXS88\",\n          \"object_type_id\": \"1\"\n        },\n        \"relationship_attributes\": {\n          \"role\": \"admin\"\n        }\n      },\n      {\n        \"identifiers\": {\n          \"object_id\": \"1171SBME\",\n          \"object_type_id\": \"2\"\n        },\n        \"relationship_attributes\": {\n          \"role\": \"viewer\"\n        }\n      }\n    ]\n  },\n  \"cio_subscription_preferences\": {\n    \"topics\": {\n      \"topic_1\": true,\n      \"topic_2\": true,\n      \"topic_3\": false\n    }\n  },\n  \"created_at\": 1361205308,\n  \"email\": \"customer@example.com\",\n  \"first_name\": \"Bob\",\n  \"plan\": \"basic\"\n}"
          },
          {
            "label": "Node.js (SDK)",
            "lang": "javascript",
            "source": "const { TrackClient, RegionUS } = require('customerio-node');\nlet cio = new TrackClient(siteId, apiKey, { region: RegionUS });\n\ncio.identify(5, {\n  email: 'customer@example.com',\n  created_at: 1361205308,\n  first_name: 'Bob',\n  plan: 'basic'\n});\n"
          },
          {
            "label": "Ruby (SDK)",
            "lang": "ruby",
            "source": "$customerio = Customerio::Client.new(\"YOUR SITE ID\", \"YOUR API SECRET KEY\", region: Customerio::Regions::US)\n\n$customerio.identify(\n  :id => 5,\n  :email => \"bob@example.com\",\n  :created_at => customer.created_at.to_i,\n  :first_name => \"Bob\",\n  :plan => \"basic\"\n)\n"
          },
          {
            "label": "Python (SDK)",
            "lang": "python",
            "source": "from customerio import CustomerIO, Regions\ncio = CustomerIO(site_id, api_key, region=Regions.US)\n\ncio.identify(id=\"5\", email='customer@example.com', name='Bob', plan='premium')\n"
          },
          {
            "label": "Go (SDK)",
            "lang": "go",
            "source": "track := customerio.NewTrackClient(\"YOUR SITE ID\", \"YOUR API SECRET KEY\", customerio.WithRegion(customerio.RegionUS))\n\nif err := track.Identify(\"5\", map[string]interface{}{\n  \"email\": \"bob@example.com\",\n  \"created_at\": time.Now().Unix(),\n  \"first_name\": \"Bob\",\n  \"plan\": \"basic\",\n}); err != nil {\n  // do something with error\n}\n"
          }
        ]
      },
      "delete": {
        "parameters": [
          {
            "name": "identifier",
            "required": true,
            "in": "path",
            "description": "The unique value representing a person. The values you use to identify a person may be an `id`, `email` address, or the `cio_id` (when updating people), depending on your workspace settings. When you reference people by `cio_id`, you must prefix the value with `cio_`.\n\nYou can't reference a person by their `phone` number here. We determine the identifier type from the shape of the value, so a phone number in the path is treated as an `id`. To identify people by phone number, use the [Track v2 API](/integrations/api/track/tag/track_v2/).\n",
            "schema": {
              "oneOf": [
                {
                  "title": "id",
                  "type": "string",
                  "example": 12345,
                  "description": "The unique identifier for a person that you want to create or modify."
                },
                {
                  "title": "email",
                  "type": "string",
                  "example": "person@example.com",
                  "description": "A person's email address. If adding a new person in an email-based workspace, you must use this value."
                },
                {
                  "title": "cio_id",
                  "type": "string",
                  "format": "cio_[a-zA-Z0-9]*",
                  "description": "A canonical identifier assigned by Customer.io when you add a person. When referencing a person by this value, you must prefix the value with `cio_`. You can [look up a person using the App API](/integrations/api/app/tag/customers/) to find their `cio_id`.\n\nYou must use this value to update a person's other identifiers—their `id` or `email`, unless you enable your workspace's [Allow updates to email using ID](/accounts/workspaces#update-email-with-id) setting.\n",
                  "example": "cio_03000001"
                }
              ]
            }
          }
        ],
        "summary": "Delete a customer",
        "operationId": "delete",
        "description": "Deleting a customer removes them, and all of their information, from Customer.io.\n\n**NOTE**: Calls that update customers by ID can also create a customer. If you send data to Customer.io through other means (like the Javascript snippet), after you delete a customer, you may accidentally recreate the customer. You cannot delete a customer using the Javascript snippet alone.\n",
        "tags": [
          "Track Customers"
        ],
        "servers": [
          {
            "url": "https://track.customer.io",
            "description": "This endpoint is a part of the Track API. Track endpoints use basic authentication with your Site ID as the user name and your secret key as the password."
          }
        ],
        "security": [
          {
            "Tracking-API-Key": []
          }
        ],
        "responses": {
          "200": {
            "description": "A successful request returns an empty object response."
          },
          "401": {
            "description": "Unauthorized request. Make sure that you provided the right credentials."
          }
        },
        "x-codeSamples": [
          {
            "label": "Node.js (SDK)",
            "lang": "javascript",
            "source": "const { TrackClient, RegionUS } = require('customerio-node');\nlet cio = new TrackClient(siteId, apiKey, { region: RegionUS });\n\n// Depending on your workspace settings, the id (5) may be an email address.\ncio.destroy(5);\n"
          },
          {
            "label": "Ruby (SDK)",
            "lang": "ruby",
            "source": "$customerio = Customerio::Client.new(\"YOUR SITE ID\", \"YOUR API SECRET KEY\", region: Customerio::Regions::US)\n\n// Depending on your workspace settings, the id (5) may be an email address.\n$customerio.delete(5)\n"
          },
          {
            "label": "Python (SDK)",
            "lang": "python",
            "source": "from customerio import CustomerIO, Regions\ncio = CustomerIO(site_id, api_key, region=Regions.US)\n\n// Depending on your workspace settings, the customer_id may be an email address.\ncio.delete(customer_id=\"5\")\n"
          },
          {
            "label": "Go (SDK)",
            "lang": "go",
            "source": "track := customerio.NewTrackClient(\"YOUR SITE ID\", \"YOUR API SECRET KEY\", customerio.WithRegion(customerio.RegionUS))\n\n// Depending on your workspace settings, the id (5) may be an email address.\nif err := track.Delete(\"5\"); err != nil {\n  // do something with error\n}\n"
          }
        ]
      }
    },
    "/api/v1/customers/{identifier}/devices": {
      "parameters": [
        {
          "name": "identifier",
          "required": true,
          "in": "path",
          "description": "The unique value representing a person. The values you use to identify a person may be an `id`, `email` address, or the `cio_id` (when updating people), depending on your workspace settings. When you reference people by `cio_id`, you must prefix the value with `cio_`.\n\nYou can't reference a person by their `phone` number here. We determine the identifier type from the shape of the value, so a phone number in the path is treated as an `id`. To identify people by phone number, use the [Track v2 API](/integrations/api/track/tag/track_v2/).\n",
          "schema": {
            "oneOf": [
              {
                "title": "id",
                "type": "string",
                "example": 12345,
                "description": "The unique identifier for a person that you want to create or modify."
              },
              {
                "title": "email",
                "type": "string",
                "example": "person@example.com",
                "description": "A person's email address. If adding a new person in an email-based workspace, you must use this value."
              },
              {
                "title": "cio_id",
                "type": "string",
                "format": "cio_[a-zA-Z0-9]*",
                "description": "A canonical identifier assigned by Customer.io when you add a person. When referencing a person by this value, you must prefix the value with `cio_`. You can [look up a person using the App API](/integrations/api/app/tag/customers/) to find their `cio_id`.\n\nYou must use this value to update a person's other identifiers—their `id` or `email`, unless you enable your workspace's [Allow updates to email using ID](/accounts/workspaces#update-email-with-id) setting.\n",
                "example": "cio_03000001"
              }
            ]
          }
        }
      ],
      "put": {
        "operationId": "add_device",
        "summary": "Add or update a customer device",
        "description": "Customers can have more than one device. Use this method to add iOS and Android devices to, or update devices for, a customer profile.",
        "tags": [
          "Track Customers"
        ],
        "servers": [
          {
            "url": "https://track.customer.io",
            "description": "This endpoint is a part of the Track API. Track endpoints use basic authentication with your Site ID as the user name and your secret key as the password."
          }
        ],
        "security": [
          {
            "Tracking-API-Key": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "device"
                ],
                "description": "Define the device you want to add to the customer profile.",
                "properties": {
                  "device": {
                    "x-scalar-ignore": true,
                    "description": "Device properties collected by [Customer.io SDKs](/integrations/sdk/) unless `autoTrackDeviceAttributes` is disabled. You can use these properties in segments and Liquid.",
                    "properties": {
                      "id": {
                        "description": "The device token.",
                        "type": "string"
                      },
                      "platform": {
                        "type": "string",
                        "enum": [
                          "ios",
                          "android"
                        ],
                        "description": "The device/messaging platform."
                      },
                      "attributes": {
                        "type": "object",
                        "description": "Attributes that you can reference to segment your audience—like a person's attributes, but specific to a device. These can be either the attributes defined below or custom key-value attributes.",
                        "properties": {
                          "_last_status": {
                            "type": "string",
                            "readOnly": true,
                            "description": "The delivery status of the last message sent to the device—sent, bounced, or suppressed. An empty string indicates that that the device hasn't received a push yet.",
                            "enum": [
                              "",
                              "bounced",
                              "sent",
                              "suppressed"
                            ]
                          },
                          "app_identifier": {
                            "type": "string",
                            "description": "The app that the device belongs to—the **Bundle ID / App identifier** you entered with that app's push credentials. If you have more than one app, we use this attribute to send push notifications to the right app. A device without an app identifier receives push notifications you send to your [default app](/messaging/channels/push/getting-started/#the-default-app)."
                          },
                          "app_version": {
                            "type": "string",
                            "description": "The version of your app that a customer uses. You might target app versions to let people know when they need to update, or expose them to new features when they do."
                          },
                          "cio_sdk_version": {
                            "type": "string",
                            "description": "The version of the Customer.io SDK in the app."
                          },
                          "device_locale": {
                            "type": "string",
                            "description": "The device's [IETF language code](/journeys/channels/localization/getting-started/#supported-languages), such as `en-MX` or `es-ES`."
                          },
                          "device_model": {
                            "type": "string",
                            "description": "The model of the device a person uses."
                          },
                          "device_os": {
                            "type": "string",
                            "description": "The operating system, including the version, on the device."
                          },
                          "push_enabled": {
                            "type": "string",
                            "description": "If `\"true\"`, the device is opted-in and can receive push notifications.",
                            "enum": [
                              "true",
                              "false"
                            ]
                          }
                        },
                        "additionalProperties": {
                          "x-additionalPropertiesName": "Custom Device Attributes",
                          "description": "Custom properties that you want to associate with the device.",
                          "type": "string"
                        }
                      },
                      "last_used": {
                        "type": "integer",
                        "format": "unix timestamp",
                        "description": "The `timestamp` when you last identified this device. If you don't pass a timestamp when you add or update a device, we use the time of the request itself. Our SDKs identify a device when a person launches their app."
                      }
                    },
                    "required": [
                      "id",
                      "platform"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful request returns an empty object response."
          },
          "400": {
            "description": "Invalid or malformed request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "meta": {
                      "type": "object",
                      "properties": {
                        "errors": {
                          "type": "array",
                          "description": "An array of errors.",
                          "items": {
                            "type": "string",
                            "description": "Error descriptions."
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request. Make sure that you provided the right credentials."
          }
        },
        "x-codeSamples": [
          {
            "lang": "json",
            "label": "JSON",
            "source": "{\n  \"device\": {\n    \"id\": \"\",\n    \"platform\": \"ios\",\n    \"attributes\": {\n      \"app_identifier\": \"\",\n      \"app_version\": \"\",\n      \"cio_sdk_version\": \"\",\n      \"device_locale\": \"\",\n      \"device_model\": \"\",\n      \"device_os\": \"\",\n      \"push_enabled\": \"true\",\n      \"Custom Device Attributes\": \"\"\n    },\n    \"last_used\": 1\n  }\n}"
          },
          {
            "label": "Node.js (SDK)",
            "lang": "javascript",
            "source": "const { TrackClient, RegionUS } = require('customerio-node');\nlet cio = new TrackClient(siteId, apiKey, { region: RegionUS });\n\n// Depending on your workspace settings, the id (5) may be an email address.\ncio.addDevice(5, \"device_id\", \"ios\", { primary: true });\n"
          },
          {
            "label": "Ruby (SDK)",
            "lang": "ruby",
            "source": "$customerio = Customerio::Client.new(\"YOUR SITE ID\", \"YOUR API SECRET KEY\", region: Customerio::Regions::US)\n\n// Depending on your workspace settings, the id (5) may be an email address.\n$customerio.add_device(5, \"my_ios_device_id\", \"ios\")\n$customerio.add_device(5, \"my_android_device_id\", \"android\")\n"
          },
          {
            "label": "Python (SDK)",
            "lang": "python",
            "source": "from customerio import CustomerIO, Regions\ncio = CustomerIO(site_id, api_key, region=Regions.US)\n\n// Depending on your workspace settings, the customer_id may be an email address.\ncio.add_device(customer_id=\"1\", device_id='device_hash', platform='ios', last_used=1514764800})\n"
          },
          {
            "label": "Go (SDK)",
            "lang": "go",
            "source": "track := customerio.NewTrackClient(\"YOUR SITE ID\", \"YOUR API SECRET KEY\", customerio.WithRegion(customerio.RegionUS))\n\n// Depending on your workspace settings, the id (5) may be an email address.\nif err := track.AddDevice(\"5\", \"messaging token\", \"android\", map[string]interface{}{\n  \"last_used\": time.Now().Unix(),\n}) err != nil {\n  // do something with error\n}\n"
          }
        ]
      }
    },
    "/api/v1/customers/{identifier}/devices/{device_id}": {
      "parameters": [
        {
          "name": "identifier",
          "required": true,
          "in": "path",
          "description": "The unique value representing a person. The values you use to identify a person may be an `id`, `email` address, or the `cio_id` (when updating people), depending on your workspace settings. When you reference people by `cio_id`, you must prefix the value with `cio_`.\n\nYou can't reference a person by their `phone` number here. We determine the identifier type from the shape of the value, so a phone number in the path is treated as an `id`. To identify people by phone number, use the [Track v2 API](/integrations/api/track/tag/track_v2/).\n",
          "schema": {
            "oneOf": [
              {
                "title": "id",
                "type": "string",
                "example": 12345,
                "description": "The unique identifier for a person that you want to create or modify."
              },
              {
                "title": "email",
                "type": "string",
                "example": "person@example.com",
                "description": "A person's email address. If adding a new person in an email-based workspace, you must use this value."
              },
              {
                "title": "cio_id",
                "type": "string",
                "format": "cio_[a-zA-Z0-9]*",
                "description": "A canonical identifier assigned by Customer.io when you add a person. When referencing a person by this value, you must prefix the value with `cio_`. You can [look up a person using the App API](/integrations/api/app/tag/customers/) to find their `cio_id`.\n\nYou must use this value to update a person's other identifiers—their `id` or `email`, unless you enable your workspace's [Allow updates to email using ID](/accounts/workspaces#update-email-with-id) setting.\n",
                "example": "cio_03000001"
              }
            ]
          }
        },
        {
          "name": "device_id",
          "in": "path",
          "required": true,
          "description": "The ID of the device you want to perform an operation against.",
          "schema": {
            "type": "string"
          }
        }
      ],
      "delete": {
        "operationId": "delete_device",
        "summary": "Delete a customer device",
        "description": "Remove a device from a customer profile. If you continue sending data about a device to Customer.io, you may inadvertently re-add the device to the customer profile.",
        "tags": [
          "Track Customers"
        ],
        "servers": [
          {
            "url": "https://track.customer.io",
            "description": "This endpoint is a part of the Track API. Track endpoints use basic authentication with your Site ID as the user name and your secret key as the password."
          }
        ],
        "security": [
          {
            "Tracking-API-Key": []
          }
        ],
        "responses": {
          "200": {
            "description": "A successful request returns an empty object response."
          },
          "400": {
            "description": "Invalid or malformed request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "meta": {
                      "type": "object",
                      "properties": {
                        "errors": {
                          "type": "array",
                          "description": "An array of errors.",
                          "items": {
                            "type": "string",
                            "description": "Error descriptions."
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request. Make sure that you provided the right credentials."
          }
        },
        "x-codeSamples": [
          {
            "label": "Node.js (SDK)",
            "lang": "javascript",
            "source": "const { TrackClient, RegionUS } = require('customerio-node');\nlet cio = new TrackClient(siteId, apiKey, { region: RegionUS });\n\n// Depending on your workspace settings, the id (5) may be an email address.\ncio.deleteDevice(5, \"device_token\")\n"
          },
          {
            "label": "Ruby (SDK)",
            "lang": "ruby",
            "source": "$customerio = Customerio::Client.new(\"YOUR SITE ID\", \"YOUR API SECRET KEY\", region: Customerio::Regions::US)\n\n// Depending on your workspace settings, the id (5) may be an email address.\n$customerio.delete_device(5, \"my_device_token\")\n"
          },
          {
            "label": "Python (SDK)",
            "lang": "python",
            "source": "from customerio import CustomerIO, Regions\ncio = CustomerIO(site_id, api_key, region=Regions.US)\n\n// Depending on your workspace settings, the customer_id may be an email address.\ncio.delete_device(customer_id=\"5\", device_id='device_hash')\n"
          },
          {
            "label": "Go (SDK)",
            "lang": "go",
            "source": "track := customerio.NewTrackClient(\"YOUR SITE ID\", \"YOUR API SECRET KEY\", customerio.WithRegion(customerio.RegionUS))\n\n// Depending on your workspace settings, the id (5) may be an email address.\nif err := track.DeleteDevice(\"5\", \"messaging-token\"); err != nil {\n  // do something with error\n}\n"
          }
        ]
      }
    },
    "/api/v1/customers/{identifier}/suppress": {
      "parameters": [
        {
          "name": "identifier",
          "required": true,
          "in": "path",
          "description": "The unique value representing a person. The values you use to identify a person may be an `id`, `email` address, or the `cio_id` (when updating people), depending on your workspace settings. When you reference people by `cio_id`, you must prefix the value with `cio_`.\n\nYou can't reference a person by their `phone` number here. We determine the identifier type from the shape of the value, so a phone number in the path is treated as an `id`. To identify people by phone number, use the [Track v2 API](/integrations/api/track/tag/track_v2/).\n",
          "schema": {
            "oneOf": [
              {
                "title": "id",
                "type": "string",
                "example": 12345,
                "description": "The unique identifier for a person that you want to create or modify."
              },
              {
                "title": "email",
                "type": "string",
                "example": "person@example.com",
                "description": "A person's email address. If adding a new person in an email-based workspace, you must use this value."
              },
              {
                "title": "cio_id",
                "type": "string",
                "format": "cio_[a-zA-Z0-9]*",
                "description": "A canonical identifier assigned by Customer.io when you add a person. When referencing a person by this value, you must prefix the value with `cio_`. You can [look up a person using the App API](/integrations/api/app/tag/customers/) to find their `cio_id`.\n\nYou must use this value to update a person's other identifiers—their `id` or `email`, unless you enable your workspace's [Allow updates to email using ID](/accounts/workspaces#update-email-with-id) setting.\n",
                "example": "cio_03000001"
              }
            ]
          }
        }
      ],
      "post": {
        "operationId": "suppress",
        "summary": "Suppress a customer profile",
        "description": "Delete a customer profile and prevent the person's identifier(s) from being re-added to your workspace. Any future API calls or operations referencing the specified ID are ignored. If you suppress a person in a workspace that identifies people by *email or ID* and both identifiers are set, both the person's email and ID are suppressed.\n\n<div class=\"fly-panel bg-warning\">\n<div class=\"fly-panel-body\">\n<p class=\"callout-head text--bold text-warning mrg-t-none\"><svg class=\"api-icon\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.4127 13.3333L9.18133 1.43333C8.95116 0.994094 8.49623 0.718884 8.00033 0.718884C7.50444 0.718884 7.04951 0.994094 6.81933 1.43333L0.587332 13.3333C0.370821 13.7467 0.386147 14.2431 0.627743 14.6423C0.869339 15.0415 1.30205 15.2854 1.76867 15.2853H14.2313C14.698 15.2854 15.1307 15.0415 15.3723 14.6423C15.6139 14.2431 15.6292 13.7467 15.4127 13.3333ZM7.33333 5.61533C7.33333 5.24714 7.63181 4.94867 8 4.94867C8.36819 4.94867 8.66667 5.24714 8.66667 5.61533V9.61533C8.66667 9.98352 8.36819 10.282 8 10.282C7.63181 10.282 7.33333 9.98352 7.33333 9.61533V5.61533ZM8.01466 13.2887H8.03333C8.29806 13.2844 8.54988 13.1735 8.73182 12.9812C8.91376 12.7888 9.01044 12.5312 9 12.2667C8.97854 11.7209 8.53019 11.2893 7.984 11.2887H7.96533C7.70125 11.2935 7.4502 11.4043 7.26865 11.5961C7.0871 11.788 6.99029 12.0447 7 12.3087C7.02073 12.8546 7.46838 13.2869 8.01466 13.2887Z\" /></svg>&nbsp;This API permanently deletes people</p>\n<div class=\"text-warning\"><p>Suppressing a person way deletes their profile <i>and</i> suppresses the identifier you reference in the path of this call, preventing you from re-adding a person using the same identifier (until you unsuppress the identifier). You cannot recover a profile after you suppress it. In general, should use this API sparingly—for GDPR/CCPA requests, etc. </p>\n<p>If you want to keep a record of a person but prevent them from receiving messages, you should set the person's unsubscribed attribute (or use other attributes to represent complex subscription preferences) instead.</p></div>\n</div>\n</div>\n",
        "tags": [
          "Track Customers"
        ],
        "servers": [
          {
            "url": "https://track.customer.io",
            "description": "This endpoint is a part of the Track API. Track endpoints use basic authentication with your Site ID as the user name and your secret key as the password."
          }
        ],
        "security": [
          {
            "Tracking-API-Key": []
          }
        ],
        "responses": {
          "200": {
            "description": "A successful request returns an empty object response."
          },
          "401": {
            "description": "Unauthorized request. Make sure that you provided the right credentials."
          }
        },
        "x-codeSamples": [
          {
            "label": "Node.js (SDK)",
            "lang": "javascript",
            "source": "const { TrackClient, RegionUS } = require('customerio-node');\nlet cio = new TrackClient(siteId, apiKey, { region: RegionUS });\n\n// Depending on your workspace settings, the id (5) may be an email address.\ncio.suppress(5)\n"
          },
          {
            "label": "Ruby (SDK)",
            "lang": "ruby",
            "source": "$customerio = Customerio::Client.new(\"YOUR SITE ID\", \"YOUR API SECRET KEY\", region: Customerio::Regions::US)\n\n// Depending on your workspace settings, the id (5) may be an email address.\n$customerio.suppress(5)\n"
          },
          {
            "label": "Python (SDK)",
            "lang": "python",
            "source": "from customerio import CustomerIO, Regions\ncio = CustomerIO(site_id, api_key, region=Regions.US)\n\n// Depending on your workspace settings, customer_id may be an email address.\ncio.suppress(customer_id=\"5\")\n"
          }
        ]
      }
    },
    "/api/v1/customers/{identifier}/unsuppress": {
      "parameters": [
        {
          "name": "identifier",
          "required": true,
          "in": "path",
          "description": "The unique value representing a person. The values you use to identify a person may be an `id`, `email` address, or the `cio_id` (when updating people), depending on your workspace settings. When you reference people by `cio_id`, you must prefix the value with `cio_`.\n\nYou can't reference a person by their `phone` number here. We determine the identifier type from the shape of the value, so a phone number in the path is treated as an `id`. To identify people by phone number, use the [Track v2 API](/integrations/api/track/tag/track_v2/).\n",
          "schema": {
            "oneOf": [
              {
                "title": "id",
                "type": "string",
                "example": 12345,
                "description": "The unique identifier for a person that you want to create or modify."
              },
              {
                "title": "email",
                "type": "string",
                "example": "person@example.com",
                "description": "A person's email address. If adding a new person in an email-based workspace, you must use this value."
              },
              {
                "title": "cio_id",
                "type": "string",
                "format": "cio_[a-zA-Z0-9]*",
                "description": "A canonical identifier assigned by Customer.io when you add a person. When referencing a person by this value, you must prefix the value with `cio_`. You can [look up a person using the App API](/integrations/api/app/tag/customers/) to find their `cio_id`.\n\nYou must use this value to update a person's other identifiers—their `id` or `email`, unless you enable your workspace's [Allow updates to email using ID](/accounts/workspaces#update-email-with-id) setting.\n",
                "example": "cio_03000001"
              }
            ]
          }
        }
      ],
      "post": {
        "operationId": "unsuppress",
        "summary": "Unsuppress a customer profile",
        "description": "Unsuppressing a profile allows you to add the customer back to Customer.io. If you unsuppress a person in a workspace that identifies people by *email or ID* and the suppressed person had both an email and ID, both the person's email and ID are unsuppressed.\n\nUnsuppressing a profile does not recreate the profile that you previously suppressed. Rather, it just makes the identifier available again. Identifying a person after unsuppressing them creates a new profile, with none of the history of the previously suppressed identifier.\n",
        "tags": [
          "Track Customers"
        ],
        "servers": [
          {
            "url": "https://track.customer.io",
            "description": "This endpoint is a part of the Track API. Track endpoints use basic authentication with your Site ID as the user name and your secret key as the password."
          }
        ],
        "security": [
          {
            "Tracking-API-Key": []
          }
        ],
        "responses": {
          "200": {
            "description": "A successful request returns an empty object response."
          },
          "401": {
            "description": "Unauthorized request. Make sure that you provided the right credentials."
          }
        },
        "x-codeSamples": [
          {
            "label": "Ruby (SDK)",
            "lang": "ruby",
            "source": "$customerio = Customerio::Client.new(\"YOUR SITE ID\", \"YOUR API SECRET KEY\", region: Customerio::Regions::US)\n\n// Depending on your workspace settings, the id (5) may be an email address.\n$customerio.unsuppress(5)\n"
          },
          {
            "label": "Python (SDK)",
            "lang": "python",
            "source": "from customerio import CustomerIO, Regions\ncio = CustomerIO(site_id, api_key, region=Regions.US)\n\n// Depending on your workspace settings, customer_id may be an email address.\ncio.unsuppress(customer_id=\"5\")\n"
          }
        ]
      }
    },
    "/unsubscribe/{delivery_id}": {
      "parameters": [
        {
          "name": "delivery_id",
          "description": "The delivery resulting in a request to unsubscribe.",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "post": {
        "operationId": "unsubscribe",
        "summary": "Custom unsubscribe handling",
        "description": "This endpoint lets you set a global unsubscribed status outside of the subscription pathways native to Customer.io. If you use [custom unsubscribe links](/journeys/people/multiple-subscription-types), you can host a custom unsubscribe page and use this API to send unsubscribe data, associated with a particular delivery, to Customer.io.\n\n**NOTE**: This endpoint **requires** a `Content-type: application/json` header. This endpoint **does not require** an `Authorization` header.\n\nYour request sets a person's `unsubscribed` attribute to `true`, attributes their unsubscribe request to the individual email/delivery that they unsubscribed from, and lets you segment your audience based on `email_unsubscribed` events when you use a custom subscription center.\n\nIf you use a custom subscription center (managing subscriptions to various types of messages with custom attributes), this request *does not* set a custom attribute. You must perform a [separate request](/integrations/api/track/tag/track-customers/identify/) to update a person's custom subscription attributes.\n",
        "tags": [
          "Track Customers"
        ],
        "security": [],
        "servers": [
          {
            "url": "https://track.customer.io",
            "description": "This endpoint is a part of the Track API. This endpoint does not require authorization."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "unsubscribe": {
                    "type": "boolean",
                    "description": "If true, a person's `unsubscribed` attribute is set to true and the unsubscription is attributed to the delivery.",
                    "example": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful request returns an empty object response."
          },
          "400": {
            "description": "The `delivery_id` format is incorrect or the request is malformed."
          }
        },
        "x-codeSamples": [
          {
            "lang": "json",
            "label": "JSON",
            "source": "{\n  \"unsubscribe\": true\n}"
          }
        ]
      }
    },
    "/api/v1/customers/{identifier}/events": {
      "parameters": [
        {
          "name": "identifier",
          "required": true,
          "in": "path",
          "description": "The unique value representing a person. You may identify a person by `id`, `email` address, or the `cio_id` (when updating people), depending on your workspace settings. You can't reference a person by their `phone` number here; a phone number in the path is treated as an `id`. To identify people by phone number, use the [Track v2 API](/integrations/api/track/tag/track_v2/).\n",
          "schema": {
            "oneOf": [
              {
                "title": "id",
                "type": "string",
                "example": 12345,
                "description": "The unique identifier you assigned to a person."
              },
              {
                "title": "email",
                "type": "string",
                "example": "person@example.com",
                "description": "A person's email address."
              },
              {
                "title": "cio_id",
                "type": "string",
                "format": "cio_[a-zA-Z0-9]*",
                "description": "A canonical identifier assigned by Customer.io when you add a person. When referencing a person by this value, you must prefix the value with `cio_`. You can [look up a person using the App API](/integrations/api/app/tag/customers/) to find their `cio_id`, but you must prefix this value with `cio_` when using it to reference a person.\n\nYou can use this value to update a person's other identifiers—their `id` or `email`.\n",
                "example": "cio_03000001"
              }
            ]
          }
        }
      ],
      "post": {
        "operationId": "track",
        "tags": [
          "Track Events"
        ],
        "summary": "Track a customer event",
        "description": "Send an event associated with a person, referenced by the identifier in the path. There are three defined event `type` values: `page`, `screen` and `event`. Page and screen events represent website page views and mobile app screen views respectively; the `name` for these event types is intended to be the page or screen a person visited or viewed. Any other event, is given the `event` type.\n\nWe automatically trim leading and trailing spaces from event names.\n\n**Reserved Properties**\n\nThere are a few important values which, if sent with the events that trigger automations, will override your automation settings:\n\n* `from_address`\n* `recipient`\n* `reply_to`\n\nWhen using the Javascript snippet to track events, you must call the Behavioral Tracking API call after identifying the customer or the event will not associate with the customer’s profile.\n",
        "servers": [
          {
            "url": "https://track.customer.io",
            "description": "This endpoint is a part of the Track API. Track endpoints use basic authentication with your Site ID as the user name and your secret key as the password."
          }
        ],
        "security": [
          {
            "Tracking-API-Key": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "x-scalar-ignore": true,
                "oneOf": [
                  {
                    "title": "Standard event",
                    "type": "object",
                    "required": [
                      "name"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The name of the event. This is how you'll reference the event in automations or segments."
                      },
                      "data": {
                        "type": "object",
                        "description": "Additional information that you might want to reference in a message using liquid or use to set attributes on your customer (referenced by `customer_id`).",
                        "additionalProperties": {
                          "x-additionalPropertiesName": "liquid merge data",
                          "description": "Insert key-values that you want to reference in your message here."
                        },
                        "properties": {
                          "from_address": {
                            "x-scalar-ignore": true,
                            "type": "string",
                            "format": "email",
                            "description": "The address you want to trigger messages from, overriding the `from` field in emails triggered by the event."
                          },
                          "recipient": {
                            "x-scalar-ignore": true,
                            "description": "The recipient address for an action.",
                            "type": "string",
                            "example": "{{customer.email}}"
                          },
                          "reply_to": {
                            "x-scalar-ignore": true,
                            "type": "string",
                            "description": "The address that receives replies for the message, if applicable.",
                            "example": "replyto@example.com"
                          }
                        }
                      },
                      "id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "format": "ulid",
                        "description": "A [ULID](https://github.com/ulid/spec) we use to deduplicate events. If an event repeats a value we've already received, we ignore the duplicate. Our Python and Ruby libraries don't pass this ID."
                      },
                      "timestamp": {
                        "type": "integer",
                        "format": "unix timestamp",
                        "description": "The unix timestamp when the event took place. If you don't provide this value, we use the date-time when we receive the event.\n\n**NOTE**: Events with a timestamp in the past 72 hours can trigger automations.\n"
                      },
                      "type": {
                        "type": "string",
                        "description": "Sets the event type. If your event isn't a `page` or `screen` type event, we automatically set this property to `event`.",
                        "enum": [
                          "event"
                        ]
                      }
                    },
                    "example": {
                      "name": "purchase",
                      "data": {
                        "price": 23.45,
                        "product": "socks"
                      }
                    }
                  },
                  {
                    "title": "Page view",
                    "type": "object",
                    "required": [
                      "name",
                      "type"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The name of the event. This is how you'll reference the event in automations or segments."
                      },
                      "type": {
                        "type": "string",
                        "description": "Indicates that the event represents a page view. See [\"page view\" events](/integrations/data-in/connections/javascript/legacy-js/events/#page-view-events), for more information.",
                        "enum": [
                          "page"
                        ]
                      },
                      "data": {
                        "type": "object",
                        "description": "Additional information that you might want to reference in a message using liquid or use to set attributes on your customer (referenced by `customer_id`).",
                        "additionalProperties": {
                          "x-additionalPropertiesName": "liquid merge data",
                          "description": "Insert key-values that you want to reference in messages or convert to attributes if/when you associate this event with a person."
                        }
                      },
                      "id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "format": "ulid",
                        "description": "A [ULID](https://github.com/ulid/spec) we use to deduplicate events. If an event repeats a value we've already received, we ignore the duplicate. Our Python and Ruby libraries don't pass this ID."
                      },
                      "timestamp": {
                        "type": "integer",
                        "format": "unix timestamp",
                        "description": "The unix timestamp when the event took place. If you don't provide this value, we use the date-time when we receive the event.\n"
                      }
                    },
                    "example": {
                      "name": "https://mysite.com/page",
                      "type": "page",
                      "data": {
                        "first_name": "Cool",
                        "last_name": "Person"
                      }
                    }
                  },
                  {
                    "title": "Mobile screen view",
                    "type": "object",
                    "required": [
                      "anonymous_id",
                      "name",
                      "type"
                    ],
                    "properties": {
                      "anonymous_id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "An identifier for an anonymous event, like a cookie. If set as an attribute on a person, any events bearing the same anonymous value are associated with this person. This value must be unique and is not reusable."
                      },
                      "name": {
                        "type": "string",
                        "description": "The screen or deep link path the person viewed, so you can segment your audience or trigger automations from this event. Trim any leading and trailing spaces."
                      },
                      "type": {
                        "type": "string",
                        "description": "Indicates that the event represents a mobile screen view. You can also capture screen events directly with [our iOS SDK](/integrations/sdk/ios/track-events/#screen-view-events).",
                        "enum": [
                          "screen"
                        ]
                      },
                      "data": {
                        "type": "object",
                        "description": "Additional information that you might want to reference in a message using liquid or use to set attributes on your customer (referenced by `customer_id`).",
                        "additionalProperties": {
                          "x-additionalPropertiesName": "liquid merge data",
                          "description": "Insert key-values that you want to reference in messages or convert to attributes if/when you associate this event with a person."
                        }
                      },
                      "id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "format": "ulid",
                        "description": "A [ULID](https://github.com/ulid/spec) we use to deduplicate events. If an event repeats a value we've already received, we ignore the duplicate. Our Python and Ruby libraries don't pass this ID."
                      },
                      "timestamp": {
                        "type": "integer",
                        "format": "unix timestamp",
                        "description": "The unix timestamp when the event took place. If you don't provide this value, we use the date-time when we receive the event.\n"
                      }
                    },
                    "example": {
                      "name": "homepage",
                      "type": "screen",
                      "data": {
                        "from": "push-notification"
                      }
                    }
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful request returns an empty object response."
          },
          "400": {
            "description": "Invalid or malformed request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "meta": {
                      "type": "object",
                      "properties": {
                        "errors": {
                          "type": "array",
                          "description": "An array of errors.",
                          "items": {
                            "type": "string",
                            "description": "Error descriptions."
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request. Make sure that you provided the right credentials."
          }
        },
        "x-codeSamples": [
          {
            "lang": "json",
            "label": "JSON",
            "source": "{\n  \"name\": \"purchase\",\n  \"data\": {\n    \"price\": 23.45,\n    \"product\": \"socks\"\n  }\n}"
          },
          {
            "label": "Node.js (SDK)",
            "lang": "javascript",
            "source": "const { TrackClient, RegionUS } = require('customerio-node');\nlet cio = new TrackClient(siteId, apiKey, { region: RegionUS });\n\n// Depending on your workspace settings, customer_id may be an email address.\ncio.track(5, {\n  name: 'purchase',\n  data: {\n    price: '23.45',\n    product: 'socks'\n  }\n});\n"
          },
          {
            "label": "Ruby (SDK)",
            "lang": "ruby",
            "source": "$customerio = Customerio::Client.new(\"YOUR SITE ID\", \"YOUR API SECRET KEY\", region: Customerio::Regions::US)\n\n// Depending on your workspace settings, customer_id may be an email address.\n$customerio.track(5, \"purchase\", :type => \"socks\", :price => \"13.99\", :timestamp => 1365436200)\n"
          },
          {
            "label": "Python (SDK)",
            "lang": "python",
            "source": "from customerio import CustomerIO, Regions\ncio = CustomerIO(site_id, api_key, region=Regions.US)\n\n// Depending on your workspace settings, customer_id may be an email address.\ncio.track(customer_id=\"5\", name='purchased', price=23.45, product=\"widget\")\n"
          },
          {
            "label": "Go (SDK)",
            "lang": "go",
            "source": "track := customerio.NewTrackClient(\"YOUR SITE ID\", \"YOUR API SECRET KEY\", customerio.WithRegion(customerio.RegionUS))\n\nif err := track.Track(\"5\", \"purchase\", map[string]interface{}{\n    \"type\": \"socks\",\n    \"price\": \"13.99\",\n}); err != nil {\n    // do something with error\n}\n"
          }
        ]
      }
    },
    "/api/v1/events": {
      "post": {
        "tags": [
          "Track Events"
        ],
        "operationId": "trackAnonymous",
        "summary": "Track an anonymous event",
        "description": "An anonymous event represents a person you haven't identified yet. When you identify a person, you can set their `anonymous_id` attribute. If [event merging](https://fly.customer.io/workspaces/last/settings/merge_options) is turned on in your workspace, and the attribute matches the `anonymous_id` in one or more events that were logged within the last 30 days, we associate those events with the person. If you associate an event with a person within 72 hours of the timestamp on the event, you can trigger automations from the event.\n\nThere are three possible event `type` values: `page`, `screen` and `event`. Page and screen events represent website page views and mobile app screen views respectively; the `name` for these event types is intended to be the page or screen a person visited or viewed. Any other event, is given the `event` type.\n\n**Note**: Avoid using names with leading or trailing spaces, because you can't reference event names with leading or trailing spaces in automations, etc. In workspaces created after September 21, 2021, we trim leading and trailing spaces from event names automatically to fix this issue.\n",
        "servers": [
          {
            "url": "https://track.customer.io",
            "description": "This endpoint is a part of the Track API. Track endpoints use basic authentication with your Site ID as the user name and your secret key as the password."
          }
        ],
        "security": [
          {
            "Tracking-API-Key": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "x-scalar-ignore": true,
                "description": "An event attributed to an unknown person. If you provide an `anonymous_id` with the event, you can associate the event with a person later (using the anonymous ID).",
                "oneOf": [
                  {
                    "title": "Standard anonymous event",
                    "type": "object",
                    "required": [
                      "name"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The name of the event. This is how you'll reference the event in automations or segments."
                      },
                      "anonymous_id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "An identifier for an anonymous event, like a cookie. If set as an attribute on a person, any events bearing the same anonymous value are associated with this person. This value must be unique and is not reusable."
                      },
                      "data": {
                        "type": "object",
                        "description": "Additional event data you can reference in Liquid or use to set customer attributes. You can include `from_address` and `reply_to`, but an event only triggers an automation if you associate it with a person within 72 hours.",
                        "additionalProperties": {
                          "x-additionalPropertiesName": "liquid merge data",
                          "description": "Insert key-values that you want to reference in messages or convert to attributes if/when you associate this event with a person."
                        },
                        "properties": {
                          "from_address": {
                            "x-scalar-ignore": true,
                            "type": "string",
                            "format": "email",
                            "description": "The address you want to trigger messages from, overriding the `from` field in emails triggered by the event."
                          },
                          "reply_to": {
                            "x-scalar-ignore": true,
                            "type": "string",
                            "description": "The address that receives replies for the message, if applicable.",
                            "example": "replyto@example.com"
                          }
                        }
                      },
                      "id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "format": "ulid",
                        "description": "A [ULID](https://github.com/ulid/spec) we use to deduplicate events. If an event repeats a value we've already received, we ignore the duplicate. Our Python and Ruby libraries don't pass this ID."
                      },
                      "timestamp": {
                        "type": "integer",
                        "format": "unix timestamp",
                        "description": "The unix timestamp when the event took place. If you don't provide this value, we use the date-time when we receive the event.\n"
                      },
                      "type": {
                        "type": "string",
                        "description": "Sets the event type. If your event isn't a `page` or `screen` type event, we automatically set this property to `event`.",
                        "enum": [
                          "event",
                          "page",
                          "screen"
                        ]
                      }
                    },
                    "example": {
                      "name": "watched_video",
                      "anonymous_id": "abc123",
                      "data": {
                        "video": "intro-to-platform"
                      }
                    }
                  },
                  {
                    "title": "Page view",
                    "type": "object",
                    "required": [
                      "name",
                      "type"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The name of the event. In general, this should be the URL of the page a person visited, making it easy to segment your audience or trigger automations using this event. Make sure you trim leading and trailing spaces from this field."
                      },
                      "type": {
                        "type": "string",
                        "description": "Indicates that the event represents a page view. See [\"page view\" events](/integrations/data-in/connections/javascript/legacy-js/events/#page-view-events), for more information.",
                        "enum": [
                          "page"
                        ]
                      },
                      "anonymous_id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "An identifier for an anonymous event, like a cookie. If set as an attribute on a person, any events bearing the same anonymous value are associated with this person. This value must be unique and is not reusable."
                      },
                      "data": {
                        "type": "object",
                        "description": "Additional information that you might want to reference in a message using liquid or use to set attributes on your customer (referenced by `customer_id`).",
                        "additionalProperties": {
                          "x-additionalPropertiesName": "liquid merge data",
                          "description": "Insert key-values that you want to reference in messages or convert to attributes if/when you associate this event with a person."
                        }
                      },
                      "id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "format": "ulid",
                        "description": "A [ULID](https://github.com/ulid/spec) we use to deduplicate events. If an event repeats a value we've already received, we ignore the duplicate. Our Python and Ruby libraries don't pass this ID."
                      },
                      "timestamp": {
                        "type": "integer",
                        "format": "unix timestamp",
                        "description": "The unix timestamp when the event took place. If you don't provide this value, we use the date-time when we receive the event.\n"
                      }
                    },
                    "example": {
                      "name": "https://mysite.com/page",
                      "type": "page",
                      "anonymous_id": "abc123",
                      "data": {
                        "first_name": "Person"
                      }
                    }
                  },
                  {
                    "title": "Mobile screen view",
                    "type": "object",
                    "required": [
                      "name",
                      "type"
                    ],
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The screen or deep link path the person viewed, so you can segment your audience or trigger automations from this event. Trim any leading and trailing spaces."
                      },
                      "type": {
                        "type": "string",
                        "description": "Indicates that the event represents a mobile screen view. You can also capture screen events directly with [our iOS SDK](/integrations/sdk/ios/track-events/#screen-view-events).",
                        "enum": [
                          "screen"
                        ]
                      },
                      "anonymous_id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "An identifier for an anonymous event, like a cookie. If set as an attribute on a person, any events bearing the same anonymous value are associated with this person. This value must be unique and is not reusable."
                      },
                      "data": {
                        "type": "object",
                        "description": "Additional information that you might want to reference in a message using liquid or use to set attributes on your customer (referenced by `customer_id`).",
                        "additionalProperties": {
                          "x-additionalPropertiesName": "liquid merge data",
                          "description": "Insert key-values that you want to reference in messages or convert to attributes if/when you associate this event with a person."
                        }
                      },
                      "id": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "format": "ulid",
                        "description": "A [ULID](https://github.com/ulid/spec) we use to deduplicate events. If an event repeats a value we've already received, we ignore the duplicate. Our Python and Ruby libraries don't pass this ID."
                      },
                      "timestamp": {
                        "type": "integer",
                        "format": "unix timestamp",
                        "description": "The unix timestamp when the event took place. If you don't provide this value, we use the date-time when we receive the event.\n"
                      }
                    },
                    "example": {
                      "name": "homepage",
                      "type": "screen",
                      "anonymous_id": "abc123"
                    }
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful request returns an empty object response."
          },
          "400": {
            "description": "Invalid or malformed request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "meta": {
                      "type": "object",
                      "properties": {
                        "errors": {
                          "type": "array",
                          "description": "An array of errors.",
                          "items": {
                            "type": "string",
                            "description": "Error descriptions."
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request. Make sure that you provided the right credentials."
          }
        },
        "x-codeSamples": [
          {
            "lang": "json",
            "label": "JSON",
            "source": "{\n  \"name\": \"watched_video\",\n  \"anonymous_id\": \"abc123\",\n  \"data\": {\n    \"video\": \"intro-to-platform\"\n  }\n}"
          },
          {
            "label": "Node.js (SDK)",
            "lang": "javascript",
            "source": "const { TrackClient, RegionUS } = require('customerio-node');\nlet cio = new TrackClient(siteId, apiKey, { region: RegionUS });\n\ncio.trackAnonymous('anonymous-id', {\n  name: 'updated',\n  data: {\n    updated: true,\n    plan: 'free'\n  }\n});\n"
          },
          {
            "label": "Ruby (SDK)",
            "lang": "ruby",
            "source": "$customerio = Customerio::Client.new(\"YOUR SITE ID\", \"YOUR API SECRET KEY\", region: Customerio::Regions::US)\n\n$customerio.track_anonymous(anonymous_id, \"help_enquiry\", :subject => 'anon-events')\n"
          },
          {
            "label": "Python (SDK)",
            "lang": "python",
            "source": "from customerio import CustomerIO, Regions\ncio = CustomerIO(site_id, api_key, region=Regions.US)\n\ncio.track_anonymous(anonymous_id=\"anon-person\", name=\"purchased\", price=23.45, product=\"widget\")\n"
          },
          {
            "label": "Go (SDK)",
            "lang": "go",
            "source": "track := customerio.NewTrackClient(\"YOUR SITE ID\", \"YOUR API SECRET KEY\", customerio.WithRegion(customerio.RegionUS))\n\nif err := track.TrackAnonymous(anonymous_id, \"new_app\", map[string]interface{}{\n  \"first_name\": \"Alex\",\n  \"source\": \"OldApp\",\n}); err != nil {\n  // do something with error\n}\n"
          }
        ]
      }
    },
    "/api/v1/forms/{form_id}/submit": {
      "post": {
        "operationId": "submitForm",
        "tags": [
          "Forms"
        ],
        "summary": "Submit a form",
        "parameters": [
          {
            "name": "form_id",
            "in": "path",
            "required": true,
            "description": "The identifier for a form. If Customer.io does not recognize the `form_id`, we create a new form connection (found on the *Data & Integrations* > *Forms* page). Use a value that makes sense to you, or something that you can trace to your backend system.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "description": "Submit a form response. If Customer.io does not recognize the `form_id` we create a new form connection (found on the *Data & Integrations* > *Integrations* > *Forms* page). Form submissions with the same ID are treated as submissions from the same form.\n\nThe `data` object _must_ contain at least one of `id` or `email` (depending on the identifiers supported in your workspace)—or a field that is mapped to one of these identifiers—to identify the form respondent. If the person who submitted the form does not already exist, we create them (like an [identify](/integrations/api/track/tag/track-customers/identify/) request).\n\nAdditional keys in the `data` object represent form fields and values from the form that a person submitted. By default, we map form fields in your request directly to attributes, e.g. if you have a form field called `first_name`, we map that field to the `first_name` attribute.\n\n**NOTES**: \n  * You cannot disable fields that you send to this API. If you send a field (as `data`) to this API, we'll include it in the form submission.\n  * If an identifier in your form is called something like `email_address` rather than `email` in your initial request, you'll receive a `400`, but we'll still add your form on the **Data & Integrations** > **Integrations** > **Forms** page. You can then re-map your `email_address` field to `email`, and your form will begin working normally.\n  * Customer.io reserves `form_id`, `form_name`, `form_type`, `form_url`, and `form_url_param` keys. If your request includes these keys, Customer.io ignores them.\n",
        "servers": [
          {
            "url": "https://track.customer.io",
            "description": "This endpoint is a part of the Track API. Track endpoints use basic authentication with your Site ID as the user name and your secret key as the password."
          }
        ],
        "security": [
          {
            "Tracking-API-Key": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "The body of the request contains key-value pairs representing form fields; these values are mapped to attributes. Your request must contain one of—and only one of—`email` or `id` to identify a person (depending on the identifiers supported in your workspace). If the person who filled out your form does not already exist, the request creates them. If your request includes more than one identifier, you'll receive an error.\n\n**NOTE**: If your form field is called something like `email_address`, you'll receive a `400`, but we'll still add your form on the **Data & Integrations** > **Integrations** > **Forms** page. You can then re-map your `email_address` field to `email`, and your form will begin working normally.\n \nAdditional keys in the `data` object represent form fields from the form that a person submitted. By default, we map form fields in your request directly to attributes, e.g. if you have a form field called `first_name`, we map that field to the `first_name` attribute. However, if you added or edited this form on the *Data & Integration* > *Forms* page, you can re-map form fields to attributes. If you turned off a form field on the *Forms* page, you can still include it in your request, but it is not applied to the person your form identifies.\n",
                "required": [
                  "data"
                ],
                "properties": {
                  "data": {
                    "description": "Represents your form data. By default, we assume that form fields map directly to attributes (e.g. if your form field is called `name`, we assume it represents an attribute called \"name\"). However, you can re-map form fields to attributes on the **Forms** page in your workspace.\n\nValues for form fields _must_ be formatted as strings.\n",
                    "oneOf": [
                      {
                        "title": "identify by email",
                        "type": "object",
                        "description": "Identify the person who submitted your form by email.",
                        "required": [
                          "email"
                        ],
                        "properties": {
                          "email": {
                            "x-scalar-ignore": true,
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "The email address of the customer.",
                            "example": "test@example.com"
                          }
                        },
                        "additionalProperties": {
                          "x-additionalPropertiesName": "Form fields",
                          "type": "string",
                          "description": "Fields from the form and associated values; values _must_ be formatted as strings. Each key represents an a form field. You can map form fields to attributes in the UI; by default, we assume that a form field maps directly to an attribute name.\n\nCustomer.io reserves `form_id`, `form_name`, `form_type`, `form_url`, and `form_url_param` keys. If your request includes these keys, Customer.io ignores them.\n"
                        },
                        "example": {
                          "email": "cool.person@example.com",
                          "first_name": "cool",
                          "last_name": "person",
                          "fav_food": "pizza"
                        }
                      },
                      {
                        "title": "identify by id",
                        "type": "object",
                        "required": [
                          "id"
                        ],
                        "description": "Identify the person who submitted your form by ID.",
                        "properties": {
                          "id": {
                            "x-scalar-ignore": true,
                            "type": [
                              "string",
                              "null"
                            ],
                            "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.",
                            "example": "42"
                          }
                        },
                        "additionalProperties": {
                          "x-additionalPropertiesName": "Form fields",
                          "type": "string",
                          "description": "Fields from the form and associated values; values _must_ be formatted as strings. Each key represents an a form field. You can map form fields to attributes in the UI; by default, we assume that a form field maps directly to an attribute name.\n\nCustomer.io reserves `form_id`, `form_name`, and `form_type` keys. If your request includes these keys, Customer.io ignores them.\n"
                        },
                        "example": {
                          "id": 12345,
                          "first_name": "cool",
                          "last_name": "person",
                          "fav_food": "pizza"
                        }
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "Successful requests do not return anything."
          },
          "400": {
            "description": "Invalid or malformed request. One or more form values may not be properly formatted as strings.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "meta": {
                      "type": "object",
                      "properties": {
                        "errors": {
                          "type": "array",
                          "description": "An array of errors.",
                          "items": {
                            "type": "string",
                            "description": "Error descriptions."
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "json",
            "label": "JSON",
            "source": "{\n  \"data\": {\n    \"email\": \"cool.person@example.com\",\n    \"first_name\": \"cool\",\n    \"last_name\": \"person\",\n    \"fav_food\": \"pizza\"\n  }\n}"
          }
        ]
      }
    },
    "/api/v1/merge_customers": {
      "post": {
        "operationId": "merge",
        "tags": [
          "Track Customers"
        ],
        "summary": "Merge duplicate people",
        "description": "Merge two customer profiles together. The payload contains `primary` and `secondary` profile objects. The primary profile remains after the merge and the secondary is deleted. This operation is _not_ reversible. \n\nThe primary profile must already exist in Customer.io for the merge operation to work. If the primary profile doesn't exist, your request won't do anything. \n\nIf you perform requests concurrently or in rapid succession, you could create a race condition where the primary profile doesn't exist yet. For example, if you identify a person and send a request to this endpoint immediately, the primary profile might not exist when we process your merge request.\n\nThe following information is merged into the primary profile from the secondary profile:\n* Attributes that are not set, or are empty, on the primary.\n* The most recent 30-days of event history. Events merged from the secondary person cannot trigger automations.\n* Manual segments that the primary person did not already belong to.\n* Message delivery history. \n* Automation journeys that the primary person has not entered. If the secondary person has started a journey that the primary person has not, the primary person continues on that automation journey after the merge. If the secondary person has completed journeys that the primary person has not, the primary person gains these historical journeys after the merge. This may be important for determining entry (or re-entry) criteria for subsequent automations, segments, etc.\n",
        "servers": [
          {
            "url": "https://track.customer.io",
            "description": "This endpoint is a part of the Track API. Track endpoints use basic authentication with your Site ID as the user name and your secret key as the password."
          }
        ],
        "security": [
          {
            "Tracking-API-Key": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "Provide identifiers for the `primary` and `secondary` people you want to merge together.",
                "required": [
                  "primary",
                  "secondary"
                ],
                "properties": {
                  "primary": {
                    "description": "The person that you want to remain after the merge, identified by one of `id`, `email`, or `cio_id`. This person receives information from the secondary person in the merge. \n\nIf email is disabled as an identifier in your [workspace settings](https://fly.customer.io/workspaces/last/settings/edit), then you must reference people by `id` or `cio_id`. Under How to Modify, `id` must be set to \"Reference people by cio_id\" for a successful merge. \n",
                    "oneOf": [
                      {
                        "title": "ID",
                        "type": "object",
                        "maxProperties": 1,
                        "properties": {
                          "id": {
                            "x-scalar-ignore": true,
                            "type": "string",
                            "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                            "example": "42"
                          }
                        }
                      },
                      {
                        "title": "email",
                        "type": "object",
                        "maxProperties": 1,
                        "properties": {
                          "email": {
                            "x-scalar-ignore": true,
                            "type": "string",
                            "description": "The email address of the customer.",
                            "example": "test@example.com"
                          }
                        }
                      },
                      {
                        "title": "cio_id",
                        "type": "object",
                        "maxProperties": 1,
                        "properties": {
                          "cio_id": {
                            "x-scalar-ignore": true,
                            "type": "string",
                            "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                            "example": "a3000001"
                          }
                        }
                      }
                    ]
                  },
                  "secondary": {
                    "description": "The person that you want to delete after the merge, identified by one of `id`, `email`, or `cio_id`. This person's information is merged into the primary person's profile and then it is deleted.\n\nIf email is disabled as an identifier in your [workspace settings](https://fly.customer.io/workspaces/last/settings/edit), then you must reference people by `id` or `cio_id`. Under How to Modify, `id` must be set to \"Reference people by cio_id\" for a successful merge.\n",
                    "oneOf": [
                      {
                        "title": "ID",
                        "type": "object",
                        "maxProperties": 1,
                        "properties": {
                          "id": {
                            "x-scalar-ignore": true,
                            "type": "string",
                            "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                            "example": "42"
                          }
                        }
                      },
                      {
                        "title": "email",
                        "type": "object",
                        "maxProperties": 1,
                        "properties": {
                          "email": {
                            "x-scalar-ignore": true,
                            "type": "string",
                            "description": "The email address of the customer.",
                            "example": "test@example.com"
                          }
                        }
                      },
                      {
                        "title": "cio_id",
                        "type": "object",
                        "maxProperties": 1,
                        "properties": {
                          "cio_id": {
                            "x-scalar-ignore": true,
                            "type": "string",
                            "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                            "example": "a3000001"
                          }
                        }
                      }
                    ]
                  }
                }
              },
              "example": {
                "primary": {
                  "email": "cool.person@company.com"
                },
                "secondary": {
                  "email": "cperson@gmail.com"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful request returns an empty object response."
          },
          "400": {
            "description": "The request was malformed. You cannot have multiple identifiers (id, email, etc) in the `primary` or `secondary` objects.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "meta": {
                      "type": "object",
                      "description": "Contains errors.",
                      "properties": {
                        "error": {
                          "type": "string",
                          "description": "Describes the error that caused your request to fail."
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request. Make sure that you provided the right credentials."
          }
        },
        "x-codeSamples": [
          {
            "lang": "json",
            "label": "JSON",
            "source": "{\n  \"primary\": {\n    \"email\": \"cool.person@company.com\"\n  },\n  \"secondary\": {\n    \"email\": \"cperson@gmail.com\"\n  }\n}"
          }
        ]
      }
    },
    "/api/v1/metrics": {
      "post": {
        "summary": "Report metrics",
        "servers": [
          {
            "url": "https://track.customer.io",
            "description": "This endpoint is a part of the Track API. It does not require authentication."
          }
        ],
        "description": "This endpoint helps you report metrics from channels that aren't native to Customer.io or don't rely on our SDKs. When we deliver a message, we include a CIO-Delivery-ID header. This is the `delivery_id` in the payload. You can use it as a UTL and you can pass it as a UTM parameter in links, etc to track metrics when people click, convert, etc.\n",
        "operationId": "metrics",
        "tags": [
          "Track Events"
        ],
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "title": "Email",
                    "properties": {
                      "delivery_id": {
                        "type": "string",
                        "description": "The CIO-Delivery-ID from the notification that you want to associate the `event` with.",
                        "example": "RPILAgUBcRhIBqSfeiIwdIYJKxTY"
                      },
                      "metric": {
                        "type": "string",
                        "enum": [
                          "bounced",
                          "clicked",
                          "converted",
                          "deferred",
                          "delivered",
                          "dropped",
                          "opened",
                          "spammed"
                        ],
                        "description": "The email metric you want to report back to Customer.io."
                      },
                      "href": {
                        "type": "string",
                        "description": "For `clicked` metrics, this is the link the recipient clicked."
                      },
                      "reason": {
                        "type": "string",
                        "description": "For metrics indicating a failure (like `bounced`), this field provides the reason for the failure."
                      },
                      "recipient": {
                        "type": "string",
                        "description": "The email of the person who received the message."
                      },
                      "timestamp": {
                        "type": "integer",
                        "format": "unix timestamp",
                        "description": "The unix timestamp when the event occurred.",
                        "example": 1613063089
                      }
                    },
                    "required": [
                      "delivery_id",
                      "metric"
                    ],
                    "description": "The base properties shared across multiple metric types."
                  },
                  {
                    "title": "In-app",
                    "properties": {
                      "delivery_id": {
                        "type": "string",
                        "description": "The CIO-Delivery-ID from the notification that you want to associate the `event` with.",
                        "example": "RPILAgUBcRhIBqSfeiIwdIYJKxTY"
                      },
                      "metric": {
                        "type": "string",
                        "enum": [
                          "clicked",
                          "converted",
                          "opened"
                        ],
                        "description": "The type of device-side event you want to report back to Customer.io."
                      },
                      "href": {
                        "type": "string",
                        "description": "For `clicked` metrics, this is the link the recipient clicked."
                      },
                      "recipient": {
                        "type": "string",
                        "description": "The email address or ID of the recipient (depending on the value you use to target in-app messages)."
                      },
                      "timestamp": {
                        "type": "integer",
                        "format": "unix timestamp",
                        "description": "The unix timestamp when the event occurred.",
                        "example": 1613063089
                      }
                    },
                    "required": [
                      "delivery_id",
                      "metric"
                    ],
                    "description": "The base properties shared across multiple metric types."
                  },
                  {
                    "title": "Push",
                    "properties": {
                      "delivery_id": {
                        "type": "string",
                        "description": "The CIO-Delivery-ID from the notification that you want to associate the `event` with.",
                        "example": "RPILAgUBcRhIBqSfeiIwdIYJKxTY"
                      },
                      "metric": {
                        "type": "string",
                        "enum": [
                          "converted",
                          "delivered",
                          "opened"
                        ],
                        "description": "The type of device-side event you want to report back to Customer.io."
                      },
                      "recipient": {
                        "type": "string",
                        "description": "The device ID that the message was sent to."
                      },
                      "timestamp": {
                        "type": "integer",
                        "format": "unix timestamp",
                        "description": "The unix timestamp when the event occurred.",
                        "example": 1613063089
                      }
                    },
                    "required": [
                      "delivery_id",
                      "metric"
                    ],
                    "description": "The base properties shared across multiple metric types."
                  },
                  {
                    "title": "Slack",
                    "properties": {
                      "delivery_id": {
                        "type": "string",
                        "description": "The CIO-Delivery-ID from the notification that you want to associate the `event` with.",
                        "example": "RPILAgUBcRhIBqSfeiIwdIYJKxTY"
                      },
                      "metric": {
                        "type": "string",
                        "enum": [
                          "clicked",
                          "converted",
                          "delivered",
                          "opened"
                        ],
                        "description": "The metric you want to report back to Customer.io."
                      },
                      "href": {
                        "type": "string",
                        "description": "For `clicked` metrics, this is the link the recipient clicked."
                      },
                      "timestamp": {
                        "type": "integer",
                        "format": "unix timestamp",
                        "description": "The unix timestamp when the event occurred.",
                        "example": 1613063089
                      }
                    },
                    "required": [
                      "delivery_id",
                      "metric"
                    ],
                    "description": "The base properties shared across multiple metric types."
                  },
                  {
                    "title": "SMS",
                    "properties": {
                      "delivery_id": {
                        "type": "string",
                        "description": "The CIO-Delivery-ID from the notification that you want to associate the `event` with.",
                        "example": "RPILAgUBcRhIBqSfeiIwdIYJKxTY"
                      },
                      "metric": {
                        "type": "string",
                        "enum": [
                          "bounced",
                          "clicked",
                          "delivered",
                          "opened"
                        ],
                        "description": "The SMS metric you want to report back to Customer.io."
                      },
                      "href": {
                        "type": "string",
                        "description": "For `clicked` metrics, this is the link the recipient clicked."
                      },
                      "reason": {
                        "type": "string",
                        "description": "For metrics indicating a failure (like `bounced`), this field provides the reason for the failure."
                      },
                      "recipient": {
                        "type": "integer",
                        "description": "The phone number of the person who received the message."
                      },
                      "timestamp": {
                        "type": "integer",
                        "format": "unix timestamp",
                        "description": "The unix timestamp when the event occurred.",
                        "example": 1613063089
                      }
                    },
                    "required": [
                      "delivery_id",
                      "metric"
                    ],
                    "description": "The base properties shared across multiple metric types."
                  },
                  {
                    "title": "Webhook",
                    "properties": {
                      "delivery_id": {
                        "type": "string",
                        "description": "The CIO-Delivery-ID from the notification that you want to associate the `event` with.",
                        "example": "RPILAgUBcRhIBqSfeiIwdIYJKxTY"
                      },
                      "metric": {
                        "type": "string",
                        "enum": [
                          "bounced",
                          "clicked",
                          "converted",
                          "deferred",
                          "delivered",
                          "dropped",
                          "opened",
                          "spammed"
                        ],
                        "description": "The type of device-side event you want to report back to Customer.io."
                      },
                      "href": {
                        "type": "string",
                        "description": "For `clicked` metrics, this is the link the recipient clicked."
                      },
                      "reason": {
                        "type": "string",
                        "description": "For metrics indicating a failure (like `bounced`), this field provides the reason for the failure."
                      },
                      "timestamp": {
                        "type": "integer",
                        "format": "unix timestamp",
                        "description": "The unix timestamp when the event occurred.",
                        "example": 1613063089
                      }
                    },
                    "required": [
                      "delivery_id",
                      "metric"
                    ],
                    "description": "The base properties shared across multiple metric types."
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The request was received."
          }
        },
        "x-codeSamples": [
          {
            "lang": "json",
            "label": "JSON",
            "source": "{\n  \"delivery_id\": \"RPILAgUBcRhIBqSfeiIwdIYJKxTY\",\n  \"metric\": \"bounced\",\n  \"href\": \"\",\n  \"reason\": \"\",\n  \"recipient\": \"\",\n  \"timestamp\": 1613063089\n}"
          }
        ]
      }
    },
    "/api/v1/push/events": {
      "post": {
        "deprecated": true,
        "summary": "Report push metrics",
        "servers": [
          {
            "url": "https://track.customer.io",
            "description": "This endpoint is a part of the Track API. It does not require authentication."
          }
        ],
        "description": "While this endpoint still works, you should take advantage of our [universal metrics endpoint](/integrations/api/track/tag/track-events/metrics/). It supports channels besides push and lets you provide additional information with some metrics.\n\nUse this endpoint to report device-side push metrics—opened, converted, and delivered—back to Customer.io, so you can track the effectiveness of your push notifications. Customer.io has no way of knowing about these metrics, or associating metrics with a specific message, unless you report them back to us.\n\nWhen Customer.io delivers a push notification, we include `CIO-Delivery-ID` and `CIO-Delivery-Token` parameters. Reference these in your payload as the `delivery_id` and `device_id` respectively with the type of device-side `event` metric that you want to associate with your push notification and the person represented by the `device_id`. \n",
        "operationId": "pushMetrics",
        "security": [],
        "tags": [
          "Track Events"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "delivery_id": {
                    "type": "string",
                    "description": "The CIO-Delivery-ID from the notification that you want to associate the `event` with.",
                    "example": "RPILAgUBcRhIBqSfeiIwdIYJKxTY"
                  },
                  "device_id": {
                    "type": "string",
                    "description": "The CIO-Delivery-Token representing the device that received the original notification.",
                    "example": "CIO-Delivery-Token from the notification"
                  },
                  "event": {
                    "type": "string",
                    "enum": [
                      "opened",
                      "converted",
                      "delivered"
                    ],
                    "description": "The type of device-side event you want to report back to Customer.io."
                  },
                  "timestamp": {
                    "type": "integer",
                    "format": "unix timestamp",
                    "description": "The unix timestamp when the event occurred.",
                    "example": 1613063089
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The request was received."
          }
        },
        "x-codeSamples": [
          {
            "lang": "json",
            "label": "JSON",
            "source": "{\n  \"delivery_id\": \"RPILAgUBcRhIBqSfeiIwdIYJKxTY\",\n  \"device_id\": \"CIO-Delivery-Token from the notification\",\n  \"event\": \"opened\",\n  \"timestamp\": 1613063089\n}"
          }
        ]
      }
    },
    "/api/v1/segments/{segment_id}/add_customers": {
      "parameters": [
        {
          "name": "segment_id",
          "in": "path",
          "required": true,
          "description": "The identifier for a segment. You can find your segment's ID on its page in the dashboard—go to *Segments*, select your segment, and find the ID under *Usage*. Or you can find your segment using the [App API](/integrations/api/app/tag/segments/).",
          "schema": {
            "type": "integer",
            "format": "int32"
          }
        },
        {
          "name": "id_type",
          "required": false,
          "in": "query",
          "description": "The type of `ids` you want to use. All of the values in the `ids` array must be of this type. If you don't provide this parameter, we assume that the `ids` array contains `id` values.",
          "schema": {
            "type": "string",
            "enum": [
              "id",
              "email",
              "cio_id"
            ],
            "default": "id"
          }
        }
      ],
      "post": {
        "tags": [
          "Track Segments"
        ],
        "operationId": "add_to_segment",
        "summary": "Add people to a manual segment",
        "description": "Add people to a manual segment by ID. You are limited to 1000 customer IDs per request.\n\nThis endpoint lets you add people to manual segments, but a segment must exist before you can add people to it. You can create and find manual segments using the [App API](/integrations/api/app/tag/segments/createManSegment/).\n\nWhen you call this API, you can pass an `id_type` query parameter determining the type of identifier you want to use, `id`, `email`, or `cio_id`; If you don't pass this parameter, it defaults to `id`. The request body always uses `ids`, even though it'll accept either IDs, emails, or `cio_id`s depending on the query parameter. Everybody in the payload must use the same kind of identifier; we'll ignore values in the `ids` array that don't match the `id_type` parameter.\n\n**NOTE**: You cannot add people to data-driven segments using the API. See [our documentation on segments](/journeys/segmentation/segments) for more information about segments.\n",
        "servers": [
          {
            "url": "https://track.customer.io",
            "description": "This endpoint is a part of the Track API. Track endpoints use basic authentication with your Site ID as the user name and your secret key as the password."
          }
        ],
        "security": [
          {
            "Tracking-API-Key": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "The IDs of people you want to add to the segment.",
                "required": [
                  "ids"
                ],
                "properties": {
                  "ids": {
                    "type": "array",
                    "description": "The customer IDs you want to add to the segment. The type of value you pass in the array corresponds to the `id_type` query parameter—`id`, `email`, or `cio_id`. Entries in the array that don't match the `id_type` are ignored.",
                    "maxItems": 1000,
                    "minItems": 1,
                    "items": {
                      "description": "The customer IDs you want to add to the segment.",
                      "type": "string"
                    }
                  }
                }
              },
              "example": {
                "ids": [
                  "customer_id1",
                  "customer_id2"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful request returns an empty object response."
          },
          "400": {
            "description": "Invalid or malformed request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "meta": {
                      "type": "object",
                      "properties": {
                        "errors": {
                          "type": "array",
                          "description": "An array of errors.",
                          "items": {
                            "type": "string",
                            "description": "Error descriptions."
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request. Make sure that you provided the right credentials."
          }
        },
        "x-codeSamples": [
          {
            "lang": "json",
            "label": "JSON",
            "source": "{\n  \"ids\": [\n    \"customer_id1\",\n    \"customer_id2\"\n  ]\n}"
          }
        ]
      }
    },
    "/api/v1/segments/{segment_id}/remove_customers": {
      "parameters": [
        {
          "name": "segment_id",
          "in": "path",
          "required": true,
          "description": "The identifier for a segment. You can find your segment's ID on its page in the dashboard—go to *Segments*, select your segment, and find the ID under *Usage*. Or you can find your segment using the [App API](/integrations/api/app/tag/segments/).",
          "schema": {
            "type": "integer",
            "format": "int32"
          }
        },
        {
          "name": "id_type",
          "required": false,
          "in": "query",
          "description": "The type of `ids` you want to use. All of the values in the `ids` array must be of this type. If you don't provide this parameter, we assume that the `ids` array contains `id` values.",
          "schema": {
            "type": "string",
            "enum": [
              "id",
              "email",
              "cio_id"
            ],
            "default": "id"
          }
        }
      ],
      "post": {
        "tags": [
          "Track Segments"
        ],
        "operationId": "remove_from_segment",
        "summary": "Remove people from a manual segment",
        "description": "You can remove users from a manual segment by ID. You are limited to 1000 customer IDs per request.\n\nThis endpoint requires people to have `id` attributes. If your workspace does not use `id` as an identifier, or you have not assigned people `id` values, you cannot remove people from manual segments using the API. Our user interface does not have this limitation. You can remove people from manual segments through the UI as a part of an automation workflow.\n\n**NOTE**: You cannot remove people from data-driven segments using the API. See [our documentation on segments](/journeys/segmentation/segments) for more information about segments.\n",
        "servers": [
          {
            "url": "https://track.customer.io",
            "description": "This endpoint is a part of the Track API. Track endpoints use basic authentication with your Site ID as the user name and your secret key as the password."
          }
        ],
        "security": [
          {
            "Tracking-API-Key": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "The IDs of people you want to remove from the segment.",
                "required": [
                  "ids"
                ],
                "properties": {
                  "ids": {
                    "type": "array",
                    "description": "The customer IDs you want to remove from the segment.",
                    "maxItems": 1000,
                    "minItems": 1,
                    "items": {
                      "description": "The customer IDs you want to remove from the segment.",
                      "type": "string"
                    }
                  }
                }
              },
              "example": {
                "ids": [
                  "customer_id1",
                  "customer_id2"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful request returns an empty object response."
          },
          "400": {
            "description": "Invalid or malformed request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "meta": {
                      "type": "object",
                      "properties": {
                        "errors": {
                          "type": "array",
                          "description": "An array of errors.",
                          "items": {
                            "type": "string",
                            "description": "Error descriptions."
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request. Make sure that you provided the right credentials."
          }
        },
        "x-codeSamples": [
          {
            "lang": "json",
            "label": "JSON",
            "source": "{\n  \"ids\": [\n    \"customer_id1\",\n    \"customer_id2\"\n  ]\n}"
          }
        ]
      }
    },
    "/api/v2/entity": {
      "post": {
        "operationId": "entity",
        "tags": [
          "track_v2"
        ],
        "summary": "Make a single request",
        "description": "This endpoint lets you create, update, or delete a single person or object—including managing relationships between objects and people. \n\nAn \"object\" is any kind of non-person entity that you want to associate with one or more people—like a company, an educational course that people signed up for, a product, etc. \n\nYour request must be smaller than 32kb. \n",
        "servers": [
          {
            "url": "https://track.customer.io",
            "description": "This endpoint is a part of the Track API. Track endpoints use basic authentication with your Site ID as the user name and your secret key as the password."
          }
        ],
        "security": [
          {
            "Tracking-API-Key": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "x-scalar-ignore": true,
                    "title": "Person operations",
                    "example": {
                      "action": "identify",
                      "identifiers": {
                        "id": "42"
                      },
                      "type": "person",
                      "attributes": {
                        "first_name": "Jane"
                      }
                    },
                    "oneOf": [
                      {
                        "title": "Person: Identify",
                        "description": "Add or update a person.",
                        "example": {
                          "action": "identify",
                          "identifiers": {
                            "id": "42"
                          },
                          "type": "person",
                          "attributes": {
                            "first_name": "Jane",
                            "last_name": "Doe",
                            "plan": "premium"
                          }
                        },
                        "properties": {
                          "action": {
                            "type": "string",
                            "description": "Indicates that the operation will `identify` the item of the specified `type`.",
                            "enum": [
                              "identify"
                            ]
                          },
                          "identifiers": {
                            "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
                            "oneOf": [
                              {
                                "title": "id",
                                "type": "object",
                                "required": [
                                  "id"
                                ],
                                "properties": {
                                  "id": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                                    "example": "42"
                                  }
                                }
                              },
                              {
                                "title": "email",
                                "type": "object",
                                "required": [
                                  "email"
                                ],
                                "properties": {
                                  "email": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The email address of the customer.",
                                    "example": "test@example.com"
                                  }
                                }
                              },
                              {
                                "title": "phone",
                                "type": "object",
                                "required": [
                                  "phone"
                                ],
                                "properties": {
                                  "phone": {
                                    "type": "string",
                                    "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                                    "example": "+14155552671"
                                  }
                                }
                              },
                              {
                                "title": "cio_id",
                                "type": "object",
                                "required": [
                                  "cio_id"
                                ],
                                "properties": {
                                  "cio_id": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                                    "example": "a3000001"
                                  }
                                }
                              }
                            ]
                          },
                          "type": {
                            "description": "The operation modifies a person in Customer.io",
                            "type": "string",
                            "enum": [
                              "person"
                            ]
                          },
                          "attributes": {
                            "type": "object",
                            "description": "Attributes that you want to add or update for this person. You can pass properties that aren't defined below to set custom attributes; the defined properties are reserved in the Customer.io Track API.",
                            "properties": {
                              "_update": {
                                "type": "boolean",
                                "default": false,
                                "description": "If `true`, update only existing people and prevent accidental profile creation. If no person matches the identifiers, the request does nothing."
                              },
                              "cio_subscription_preferences": {
                                "x-scalar-ignore": true,
                                "description": "A person's [subscription center](/journeys/channels/subscriptions/center/) preferences. Use JSON dot notation, such as `cio_subscription_preferences.topics.topic_<id>`, to update one topic without replacing others.",
                                "type": "object",
                                "properties": {
                                  "topics": {
                                    "type": "object",
                                    "description": "Contains active topics in your workspace, named `topic_<id>`.",
                                    "additionalProperties": {
                                      "x-additionalPropertiesName": "topic_<id>",
                                      "description": "Boolean preference for a topic named `topic_<id>`; `true` subscribes, `false` unsubscribes, and empty or missing values use the topic default. Find topic IDs with [getTopics](/integrations/api/app/tag/subscription-center/getTopics/).",
                                      "type": "boolean"
                                    }
                                  }
                                },
                                "example": {
                                  "topics": {
                                    "topic_1": true,
                                    "topic_2": false,
                                    "topic_3": true
                                  }
                                }
                              }
                            },
                            "additionalProperties": {
                              "x-additionalPropertiesName": "additional attributes",
                              "description": "Custom properties that you want to set as attributes on this person."
                            }
                          },
                          "cio_relationships": {
                            "x-scalar-ignore": true,
                            "type": "array",
                            "description": "Each object in the array represents a relationship you want to add to, or remove from, a person.",
                            "items": {
                              "properties": {
                                "identifiers": {
                                  "description": "The identifiers for a particular object. You can use either the `object_type_id` and `object_id` (where `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object) or the `cio_object_id`.",
                                  "oneOf": [
                                    {
                                      "title": "Object ID",
                                      "type": "object",
                                      "required": [
                                        "object_type_id",
                                        "object_id"
                                      ],
                                      "properties": {
                                        "object_id": {
                                          "type": "string",
                                          "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                                          "example": "acme"
                                        },
                                        "object_type_id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "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.",
                                          "example": "1"
                                        }
                                      }
                                    },
                                    {
                                      "title": "CIO Object ID",
                                      "type": "object",
                                      "required": [
                                        "cio_object_id"
                                      ],
                                      "properties": {
                                        "cio_object_id": {
                                          "type": "string",
                                          "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                                          "example": "obb7fd050101"
                                        }
                                      }
                                    }
                                  ]
                                },
                                "relationship_attributes": {
                                  "x-scalar-ignore": true,
                                  "type": "object",
                                  "description": "The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
                                  "additionalProperties": {
                                    "x-additionalPropertiesName": "Relationship Attributes"
                                  },
                                  "example": {
                                    "role": "admin"
                                  }
                                }
                              }
                            }
                          },
                          "timestamp": {
                            "type": "integer",
                            "description": "The Unix timestamp for when the attribute update occurred. This can be used to control the order of attribute updates when multiple requests are sent in rapid succession.",
                            "example": 1772013598
                          }
                        },
                        "required": [
                          "type",
                          "identifiers",
                          "action"
                        ]
                      },
                      {
                        "title": "Person: Delete",
                        "description": "Delete a person from your workspace.",
                        "example": {
                          "action": "delete",
                          "identifiers": {
                            "id": "42"
                          },
                          "type": "person"
                        },
                        "properties": {
                          "action": {
                            "type": "string",
                            "description": "Indicates that the operation will `delete` the item of the specified `type`.",
                            "enum": [
                              "delete"
                            ]
                          },
                          "identifiers": {
                            "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
                            "oneOf": [
                              {
                                "title": "id",
                                "type": "object",
                                "required": [
                                  "id"
                                ],
                                "properties": {
                                  "id": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                                    "example": "42"
                                  }
                                }
                              },
                              {
                                "title": "email",
                                "type": "object",
                                "required": [
                                  "email"
                                ],
                                "properties": {
                                  "email": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The email address of the customer.",
                                    "example": "test@example.com"
                                  }
                                }
                              },
                              {
                                "title": "phone",
                                "type": "object",
                                "required": [
                                  "phone"
                                ],
                                "properties": {
                                  "phone": {
                                    "type": "string",
                                    "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                                    "example": "+14155552671"
                                  }
                                }
                              },
                              {
                                "title": "cio_id",
                                "type": "object",
                                "required": [
                                  "cio_id"
                                ],
                                "properties": {
                                  "cio_id": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                                    "example": "a3000001"
                                  }
                                }
                              }
                            ]
                          },
                          "type": {
                            "description": "The operation modifies a person in Customer.io",
                            "type": "string",
                            "enum": [
                              "person"
                            ]
                          }
                        },
                        "required": [
                          "type",
                          "identifiers",
                          "action"
                        ]
                      },
                      {
                        "title": "Person: Event",
                        "description": "A custom event attributed to a person. You can use events to trigger automations, or reference event information using liquid in your messages.",
                        "example": {
                          "action": "event",
                          "identifiers": {
                            "id": "42"
                          },
                          "name": "purchase",
                          "type": "person",
                          "attributes": {
                            "product": "Widget",
                            "price": 29.99
                          }
                        },
                        "properties": {
                          "action": {
                            "type": "string",
                            "description": "A custom event attributed to the specified person.",
                            "enum": [
                              "event"
                            ]
                          },
                          "identifiers": {
                            "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
                            "oneOf": [
                              {
                                "title": "id",
                                "type": "object",
                                "required": [
                                  "id"
                                ],
                                "properties": {
                                  "id": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                                    "example": "42"
                                  }
                                }
                              },
                              {
                                "title": "email",
                                "type": "object",
                                "required": [
                                  "email"
                                ],
                                "properties": {
                                  "email": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The email address of the customer.",
                                    "example": "test@example.com"
                                  }
                                }
                              },
                              {
                                "title": "phone",
                                "type": "object",
                                "required": [
                                  "phone"
                                ],
                                "properties": {
                                  "phone": {
                                    "type": "string",
                                    "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                                    "example": "+14155552671"
                                  }
                                }
                              },
                              {
                                "title": "cio_id",
                                "type": "object",
                                "required": [
                                  "cio_id"
                                ],
                                "properties": {
                                  "cio_id": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                                    "example": "a3000001"
                                  }
                                }
                              }
                            ]
                          },
                          "name": {
                            "type": "string",
                            "description": "The name of the event. This is how you'll find your event in Customer.io or select it when using events as automation triggers."
                          },
                          "type": {
                            "description": "The operation modifies a person in Customer.io",
                            "type": "string",
                            "enum": [
                              "person"
                            ]
                          },
                          "attributes": {
                            "type": "object",
                            "description": "Additional information that you might want to reference in a message using liquid or use to set attributes on the identified person.\n",
                            "additionalProperties": {
                              "x-additionalPropertiesName": "liquid merge data",
                              "description": "Insert key-values that you want to reference in your message here."
                            },
                            "properties": {
                              "from_address": {
                                "type": "string",
                                "format": "email",
                                "description": "The address you want to trigger messages from, overriding the `from` field in emails triggered by the event."
                              },
                              "recipient": {
                                "type": "string",
                                "format": "email",
                                "description": "The email address of the person associated with the event, overriding the `to` field in emails triggered by the event."
                              },
                              "reply_to": {
                                "type": "string",
                                "format": "email",
                                "description": "The address you want to receive replies to, overriding the `reply to` field for emails triggered by the event."
                              }
                            }
                          },
                          "id": {
                            "type": "string",
                            "format": "ULID",
                            "description": "A valid ULID used to deduplicate events. Note - our Python and Ruby libraries do not pass this id."
                          },
                          "timestamp": {
                            "type": "integer",
                            "description": "The Unix timestamp when the event happened."
                          }
                        },
                        "required": [
                          "type",
                          "identifiers",
                          "action",
                          "name"
                        ]
                      },
                      {
                        "title": "Person: Screen view",
                        "description": "A mobile \"screenview\" event attributed to a person. Our `screen` and `page` event types are more specific than our standard `event`, and help you track and target people based on the pages people visit in your mobile app or website.",
                        "example": {
                          "action": "screen",
                          "identifiers": {
                            "id": "42"
                          },
                          "name": "Dashboard",
                          "type": "person",
                          "attributes": {
                            "app_version": "2.1.0"
                          }
                        },
                        "properties": {
                          "action": {
                            "type": "string",
                            "description": "A mobile \"screenview\" event attributed to a person. Our `screen` and `page` event types are more specific than our standard `event`, and help you track and target people based on the pages people visit in your mobile app or website.",
                            "enum": [
                              "screen"
                            ]
                          },
                          "identifiers": {
                            "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
                            "oneOf": [
                              {
                                "title": "id",
                                "type": "object",
                                "required": [
                                  "id"
                                ],
                                "properties": {
                                  "id": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                                    "example": "42"
                                  }
                                }
                              },
                              {
                                "title": "email",
                                "type": "object",
                                "required": [
                                  "email"
                                ],
                                "properties": {
                                  "email": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The email address of the customer.",
                                    "example": "test@example.com"
                                  }
                                }
                              },
                              {
                                "title": "phone",
                                "type": "object",
                                "required": [
                                  "phone"
                                ],
                                "properties": {
                                  "phone": {
                                    "type": "string",
                                    "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                                    "example": "+14155552671"
                                  }
                                }
                              },
                              {
                                "title": "cio_id",
                                "type": "object",
                                "required": [
                                  "cio_id"
                                ],
                                "properties": {
                                  "cio_id": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                                    "example": "a3000001"
                                  }
                                }
                              }
                            ]
                          },
                          "name": {
                            "type": "string",
                            "description": "The name of the screen a person visited. This is how you'll find and select screen view events in Customer.io."
                          },
                          "type": {
                            "description": "The operation modifies a person in Customer.io",
                            "type": "string",
                            "enum": [
                              "person"
                            ]
                          },
                          "attributes": {
                            "type": "object",
                            "description": "Additional information that you might want to reference in a message using liquid or use to set attributes on the identified person.",
                            "additionalProperties": {
                              "x-additionalPropertiesName": "liquid merge data",
                              "description": "Insert key-values that you want to reference in your message here."
                            }
                          },
                          "id": {
                            "type": "string",
                            "format": "ULID",
                            "description": "A valid ULID used to deduplicate events. Note - our Python and Ruby libraries do not pass this id."
                          },
                          "timestamp": {
                            "type": "integer",
                            "description": "The Unix timestamp when the event happened."
                          }
                        },
                        "required": [
                          "type",
                          "identifiers",
                          "action",
                          "name"
                        ]
                      },
                      {
                        "title": "Person: Page view",
                        "description": "A web \"pageview\" event attributed to a person. Our `screen` and `page` event types are more specific than our standard `event`, and help you track and target people based on the pages people visit in your mobile app or website.",
                        "example": {
                          "action": "page",
                          "identifiers": {
                            "id": "42"
                          },
                          "name": "/pricing",
                          "type": "person",
                          "attributes": {
                            "referrer": "https://example.com"
                          }
                        },
                        "properties": {
                          "action": {
                            "type": "string",
                            "description": "A web \"pageview\" event attributed to a person. Our `screen` and `page` event types are more specific than our standard `event`, and help you track and target people based on the pages people visit in your mobile app or website.",
                            "enum": [
                              "page"
                            ]
                          },
                          "identifiers": {
                            "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
                            "oneOf": [
                              {
                                "title": "id",
                                "type": "object",
                                "required": [
                                  "id"
                                ],
                                "properties": {
                                  "id": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                                    "example": "42"
                                  }
                                }
                              },
                              {
                                "title": "email",
                                "type": "object",
                                "required": [
                                  "email"
                                ],
                                "properties": {
                                  "email": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The email address of the customer.",
                                    "example": "test@example.com"
                                  }
                                }
                              },
                              {
                                "title": "phone",
                                "type": "object",
                                "required": [
                                  "phone"
                                ],
                                "properties": {
                                  "phone": {
                                    "type": "string",
                                    "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                                    "example": "+14155552671"
                                  }
                                }
                              },
                              {
                                "title": "cio_id",
                                "type": "object",
                                "required": [
                                  "cio_id"
                                ],
                                "properties": {
                                  "cio_id": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                                    "example": "a3000001"
                                  }
                                }
                              }
                            ]
                          },
                          "name": {
                            "type": "string",
                            "description": "The name of the page or page path that a person visited. This is how you'll find and select page view events in Customer.io."
                          },
                          "type": {
                            "description": "The operation modifies a person in Customer.io",
                            "type": "string",
                            "enum": [
                              "person"
                            ]
                          },
                          "attributes": {
                            "type": "object",
                            "description": "Additional information that you might want to reference in a message using liquid or use to set attributes on the identified person.",
                            "properties": {
                              "keywords": {
                                "type": "array",
                                "description": "Page-content keywords, typically like HTML meta keywords. Mainly for publishers with pageview tracking; not collected automatically.",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "path": {
                                "type": "string",
                                "description": "The path portion of the page's URL. Equivalent to the canonical `path` which defaults to `location.pathname` from the DOM API."
                              },
                              "referrer": {
                                "type": "string",
                                "description": "The previous page's full URL. Equivalent to `document.referrer` from the DOM API."
                              },
                              "search": {
                                "type": "string",
                                "description": "The query string portion of the page's URL. Equivalent to `location.search` from the DOM API."
                              },
                              "title": {
                                "type": "string",
                                "description": "The page's title. Equivalent to `document.title` from the DOM API."
                              },
                              "url": {
                                "type": "string",
                                "description": "A page's full URL. We first look for the canonical URL. If the canonical URL is not provided, we'll use `location.href` from the DOM API."
                              }
                            },
                            "additionalProperties": {
                              "x-additionalPropertiesName": "liquid merge data",
                              "description": "Insert key-values that you want to reference in your message here."
                            }
                          },
                          "id": {
                            "type": "string",
                            "format": "ULID",
                            "description": "A valid ULID used to deduplicate events. Note - our Python and Ruby libraries do not pass this id."
                          },
                          "timestamp": {
                            "type": "integer",
                            "description": "The Unix timestamp when the event happened."
                          }
                        },
                        "required": [
                          "type",
                          "identifiers",
                          "action",
                          "name"
                        ]
                      },
                      {
                        "title": "Person: Add relationships",
                        "description": "Associate multiple objects with a person.",
                        "example": {
                          "action": "add_relationships",
                          "cio_relationships": [
                            {
                              "identifiers": {
                                "object_id": "acme",
                                "object_type_id": "1"
                              },
                              "relationship_attributes": {
                                "role": "admin"
                              }
                            }
                          ],
                          "identifiers": {
                            "id": "42"
                          },
                          "type": "person"
                        },
                        "properties": {
                          "action": {
                            "type": "string",
                            "description": "This operation associates a person with one or more objects.",
                            "enum": [
                              "add_relationships"
                            ]
                          },
                          "cio_relationships": {
                            "x-scalar-ignore": true,
                            "type": "array",
                            "description": "Each object in the array represents a relationship you want to add to, or remove from, a person.",
                            "items": {
                              "properties": {
                                "identifiers": {
                                  "description": "The identifiers for a particular object. You can use either the `object_type_id` and `object_id` (where `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object) or the `cio_object_id`.",
                                  "oneOf": [
                                    {
                                      "title": "Object ID",
                                      "type": "object",
                                      "required": [
                                        "object_type_id",
                                        "object_id"
                                      ],
                                      "properties": {
                                        "object_id": {
                                          "type": "string",
                                          "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                                          "example": "acme"
                                        },
                                        "object_type_id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "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.",
                                          "example": "1"
                                        }
                                      }
                                    },
                                    {
                                      "title": "CIO Object ID",
                                      "type": "object",
                                      "required": [
                                        "cio_object_id"
                                      ],
                                      "properties": {
                                        "cio_object_id": {
                                          "type": "string",
                                          "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                                          "example": "obb7fd050101"
                                        }
                                      }
                                    }
                                  ]
                                },
                                "relationship_attributes": {
                                  "x-scalar-ignore": true,
                                  "type": "object",
                                  "description": "The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
                                  "additionalProperties": {
                                    "x-additionalPropertiesName": "Relationship Attributes"
                                  },
                                  "example": {
                                    "role": "admin"
                                  }
                                }
                              }
                            }
                          },
                          "identifiers": {
                            "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
                            "oneOf": [
                              {
                                "title": "id",
                                "type": "object",
                                "required": [
                                  "id"
                                ],
                                "properties": {
                                  "id": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                                    "example": "42"
                                  }
                                }
                              },
                              {
                                "title": "email",
                                "type": "object",
                                "required": [
                                  "email"
                                ],
                                "properties": {
                                  "email": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The email address of the customer.",
                                    "example": "test@example.com"
                                  }
                                }
                              },
                              {
                                "title": "phone",
                                "type": "object",
                                "required": [
                                  "phone"
                                ],
                                "properties": {
                                  "phone": {
                                    "type": "string",
                                    "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                                    "example": "+14155552671"
                                  }
                                }
                              },
                              {
                                "title": "cio_id",
                                "type": "object",
                                "required": [
                                  "cio_id"
                                ],
                                "properties": {
                                  "cio_id": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                                    "example": "a3000001"
                                  }
                                }
                              }
                            ]
                          },
                          "type": {
                            "description": "The operation modifies a person in Customer.io",
                            "type": "string",
                            "enum": [
                              "person"
                            ]
                          }
                        },
                        "required": [
                          "type",
                          "identifiers",
                          "action",
                          "cio_relationships"
                        ]
                      },
                      {
                        "title": "Person: Delete relationships",
                        "description": "Remove multiple object relationships from a person.",
                        "example": {
                          "action": "delete_relationships",
                          "cio_relationships": [
                            {
                              "identifiers": {
                                "object_id": "acme",
                                "object_type_id": "1"
                              }
                            }
                          ],
                          "identifiers": {
                            "id": "42"
                          },
                          "type": "person"
                        },
                        "properties": {
                          "action": {
                            "type": "string",
                            "description": "This operation deletes an object relationship from one or more people.",
                            "enum": [
                              "delete_relationships"
                            ]
                          },
                          "cio_relationships": {
                            "x-scalar-ignore": true,
                            "type": "array",
                            "description": "Each object in the array represents a relationship you want to add to, or remove from, a person.",
                            "items": {
                              "properties": {
                                "identifiers": {
                                  "description": "The identifiers for a particular object. You can use either the `object_type_id` and `object_id` (where `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object) or the `cio_object_id`.",
                                  "oneOf": [
                                    {
                                      "title": "Object ID",
                                      "type": "object",
                                      "required": [
                                        "object_type_id",
                                        "object_id"
                                      ],
                                      "properties": {
                                        "object_id": {
                                          "type": "string",
                                          "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                                          "example": "acme"
                                        },
                                        "object_type_id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "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.",
                                          "example": "1"
                                        }
                                      }
                                    },
                                    {
                                      "title": "CIO Object ID",
                                      "type": "object",
                                      "required": [
                                        "cio_object_id"
                                      ],
                                      "properties": {
                                        "cio_object_id": {
                                          "type": "string",
                                          "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                                          "example": "obb7fd050101"
                                        }
                                      }
                                    }
                                  ]
                                },
                                "relationship_attributes": {
                                  "x-scalar-ignore": true,
                                  "type": "object",
                                  "description": "The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
                                  "additionalProperties": {
                                    "x-additionalPropertiesName": "Relationship Attributes"
                                  },
                                  "example": {
                                    "role": "admin"
                                  }
                                }
                              }
                            }
                          },
                          "identifiers": {
                            "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
                            "oneOf": [
                              {
                                "title": "id",
                                "type": "object",
                                "required": [
                                  "id"
                                ],
                                "properties": {
                                  "id": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                                    "example": "42"
                                  }
                                }
                              },
                              {
                                "title": "email",
                                "type": "object",
                                "required": [
                                  "email"
                                ],
                                "properties": {
                                  "email": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The email address of the customer.",
                                    "example": "test@example.com"
                                  }
                                }
                              },
                              {
                                "title": "phone",
                                "type": "object",
                                "required": [
                                  "phone"
                                ],
                                "properties": {
                                  "phone": {
                                    "type": "string",
                                    "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                                    "example": "+14155552671"
                                  }
                                }
                              },
                              {
                                "title": "cio_id",
                                "type": "object",
                                "required": [
                                  "cio_id"
                                ],
                                "properties": {
                                  "cio_id": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                                    "example": "a3000001"
                                  }
                                }
                              }
                            ]
                          },
                          "type": {
                            "description": "The operation modifies a person in Customer.io",
                            "type": "string",
                            "enum": [
                              "person"
                            ]
                          }
                        },
                        "required": [
                          "type",
                          "identifiers",
                          "action",
                          "cio_relationships"
                        ]
                      },
                      {
                        "title": "Person: Add device",
                        "description": "Assign devices to a person.",
                        "example": {
                          "action": "add_device",
                          "device": {
                            "platform": "ios",
                            "token": "a83b219c-e756-4c5b-a8e3-d1a5c5b2f3c1",
                            "last_used": 1713484800
                          },
                          "identifiers": {
                            "id": "42"
                          },
                          "type": "person"
                        },
                        "properties": {
                          "action": {
                            "type": "string",
                            "description": "Add a mobile device to a person's profile.",
                            "enum": [
                              "add_device"
                            ]
                          },
                          "device": {
                            "description": "Device properties collected by [Customer.io SDKs](/integrations/sdk/) unless `autoTrackDeviceAttributes` is disabled. You can reference them outside `attributes` in segments.",
                            "properties": {
                              "platform": {
                                "type": "string",
                                "enum": [
                                  "ios",
                                  "android"
                                ],
                                "description": "The device/messaging platform."
                              },
                              "token": {
                                "description": "The device token.",
                                "type": "string"
                              },
                              "attributes": {
                                "type": "object",
                                "description": "Attributes that you can reference to segment your audience—like a person's attributes, but specific to a device. These can be either the attributes defined below or custom key-value attributes.",
                                "properties": {
                                  "_last_status": {
                                    "type": "string",
                                    "readOnly": true,
                                    "description": "The delivery status of the last message sent to the device—sent, bounced, or suppressed. An empty string indicates that that the device hasn't received a push yet.",
                                    "enum": [
                                      "",
                                      "bounced",
                                      "sent",
                                      "suppressed"
                                    ]
                                  },
                                  "app_identifier": {
                                    "type": "string",
                                    "description": "The app that the device belongs to—the **Bundle ID / App identifier** you entered with that app's push credentials. If you have more than one app, we use this attribute to send push notifications to the right app. A device without an app identifier receives push notifications you send to your [default app](/messaging/channels/push/getting-started/#the-default-app)."
                                  },
                                  "app_version": {
                                    "type": "string",
                                    "description": "The version of your app that a customer uses. You might target app versions to let people know when they need to update, or expose them to new features when they do."
                                  },
                                  "cio_sdk_version": {
                                    "type": "string",
                                    "description": "The version of the Customer.io SDK in the app."
                                  },
                                  "device_locale": {
                                    "type": "string",
                                    "description": "The device's [IETF language code](/journeys/channels/localization/getting-started/#supported-languages), such as `en-MX` or `es-ES`."
                                  },
                                  "device_model": {
                                    "type": "string",
                                    "description": "The model of the device a person uses."
                                  },
                                  "device_os": {
                                    "type": "string",
                                    "description": "The operating system, including the version, on the device."
                                  },
                                  "push_enabled": {
                                    "type": "string",
                                    "description": "If `\"true\"`, the device is opted-in and can receive push notifications.",
                                    "enum": [
                                      "true",
                                      "false"
                                    ]
                                  }
                                },
                                "additionalProperties": {
                                  "x-additionalPropertiesName": "Custom Device Attributes",
                                  "description": "Custom properties that you want to associate with the device.",
                                  "type": "string"
                                }
                              },
                              "last_used": {
                                "type": "integer",
                                "format": "unix timestamp",
                                "description": "The `timestamp` when you last identified this device. If you don't pass a timestamp when you add or update a device, we use the time of the request itself. Our SDKs identify a device when a person launches their app."
                              }
                            },
                            "required": [
                              "token",
                              "platform"
                            ]
                          },
                          "identifiers": {
                            "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
                            "oneOf": [
                              {
                                "title": "id",
                                "type": "object",
                                "required": [
                                  "id"
                                ],
                                "properties": {
                                  "id": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                                    "example": "42"
                                  }
                                }
                              },
                              {
                                "title": "email",
                                "type": "object",
                                "required": [
                                  "email"
                                ],
                                "properties": {
                                  "email": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The email address of the customer.",
                                    "example": "test@example.com"
                                  }
                                }
                              },
                              {
                                "title": "phone",
                                "type": "object",
                                "required": [
                                  "phone"
                                ],
                                "properties": {
                                  "phone": {
                                    "type": "string",
                                    "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                                    "example": "+14155552671"
                                  }
                                }
                              },
                              {
                                "title": "cio_id",
                                "type": "object",
                                "required": [
                                  "cio_id"
                                ],
                                "properties": {
                                  "cio_id": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                                    "example": "a3000001"
                                  }
                                }
                              }
                            ]
                          },
                          "type": {
                            "description": "The operation modifies a person in Customer.io",
                            "type": "string",
                            "enum": [
                              "person"
                            ]
                          }
                        },
                        "required": [
                          "type",
                          "identifiers",
                          "action",
                          "device"
                        ]
                      },
                      {
                        "title": "Person: Delete device",
                        "description": "Delete devices that belong to a person.",
                        "example": {
                          "action": "delete_device",
                          "device": {
                            "token": "a83b219c-e756-4c5b-a8e3-d1a5c5b2f3c1"
                          },
                          "identifiers": {
                            "id": "42"
                          },
                          "type": "person"
                        },
                        "properties": {
                          "action": {
                            "type": "string",
                            "description": "Delete a device from a person's profile.",
                            "enum": [
                              "delete_device"
                            ]
                          },
                          "device": {
                            "description": "The device you want to remove.",
                            "type": "object",
                            "required": [
                              "token"
                            ],
                            "properties": {
                              "token": {
                                "description": "The token of the device you want to remove.",
                                "type": "string"
                              }
                            }
                          },
                          "identifiers": {
                            "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
                            "oneOf": [
                              {
                                "title": "id",
                                "type": "object",
                                "required": [
                                  "id"
                                ],
                                "properties": {
                                  "id": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                                    "example": "42"
                                  }
                                }
                              },
                              {
                                "title": "email",
                                "type": "object",
                                "required": [
                                  "email"
                                ],
                                "properties": {
                                  "email": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The email address of the customer.",
                                    "example": "test@example.com"
                                  }
                                }
                              },
                              {
                                "title": "phone",
                                "type": "object",
                                "required": [
                                  "phone"
                                ],
                                "properties": {
                                  "phone": {
                                    "type": "string",
                                    "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                                    "example": "+14155552671"
                                  }
                                }
                              },
                              {
                                "title": "cio_id",
                                "type": "object",
                                "required": [
                                  "cio_id"
                                ],
                                "properties": {
                                  "cio_id": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                                    "example": "a3000001"
                                  }
                                }
                              }
                            ]
                          },
                          "type": {
                            "description": "The operation modifies a person in Customer.io",
                            "type": "string",
                            "enum": [
                              "person"
                            ]
                          }
                        },
                        "required": [
                          "type",
                          "identifiers",
                          "action",
                          "device"
                        ]
                      },
                      {
                        "title": "Person: Merge",
                        "example": {
                          "primary": {
                            "id": "42"
                          },
                          "secondary": {
                            "id": "known-user-456"
                          }
                        },
                        "type": "object",
                        "description": "Merges `secondary` into `primary`, then deletes `secondary`. The operation is not reversible, and `primary` must already exist. See [merging duplicate people](/journeys/people/manage/merge-people/).",
                        "required": [
                          "type",
                          "primary",
                          "secondary",
                          "action"
                        ],
                        "properties": {
                          "action": {
                            "type": "string",
                            "description": "Merges `secondary` into `primary`, then deletes `secondary`. Not reversible; see [merging duplicate people](/journeys/people/manage/merge-people/).",
                            "enum": [
                              "merge"
                            ]
                          },
                          "primary": {
                            "description": "The person who remains after the merge, identified by `id`, `email`, or `cio_id`. If email identifiers are disabled in [workspace settings](https://fly.customer.io/workspaces/last/settings/edit), use `id` or `cio_id`.",
                            "oneOf": [
                              {
                                "title": "id",
                                "type": "object",
                                "required": [
                                  "id"
                                ],
                                "properties": {
                                  "id": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                                    "example": "42"
                                  }
                                }
                              },
                              {
                                "title": "email",
                                "type": "object",
                                "required": [
                                  "email"
                                ],
                                "properties": {
                                  "email": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The email address of the customer.",
                                    "example": "test@example.com"
                                  }
                                }
                              },
                              {
                                "title": "cio_id",
                                "type": "object",
                                "required": [
                                  "cio_id"
                                ],
                                "properties": {
                                  "cio_id": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                                    "example": "a3000001"
                                  }
                                }
                              }
                            ]
                          },
                          "secondary": {
                            "description": "The person deleted after the merge, identified by `id`, `email`, or `cio_id`. If email identifiers are disabled in [workspace settings](https://fly.customer.io/workspaces/last/settings/edit), use `id` or `cio_id`.",
                            "oneOf": [
                              {
                                "title": "id",
                                "type": "object",
                                "required": [
                                  "id"
                                ],
                                "properties": {
                                  "id": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                                    "example": "42"
                                  }
                                }
                              },
                              {
                                "title": "email",
                                "type": "object",
                                "required": [
                                  "email"
                                ],
                                "properties": {
                                  "email": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The email address of the customer.",
                                    "example": "test@example.com"
                                  }
                                }
                              },
                              {
                                "title": "cio_id",
                                "type": "object",
                                "required": [
                                  "cio_id"
                                ],
                                "properties": {
                                  "cio_id": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                                    "example": "a3000001"
                                  }
                                }
                              }
                            ]
                          },
                          "type": {
                            "description": "The operation modifies a person in Customer.io",
                            "type": "string",
                            "enum": [
                              "person"
                            ]
                          }
                        }
                      },
                      {
                        "title": "Person: Suppress",
                        "description": "Suppress a person's identifier(s) in Customer.io, so that you can't message a person or add their identifiers back to your workspace. This is separate from suppressions performed by your email provider.",
                        "example": {
                          "action": "suppress",
                          "identifiers": {
                            "id": "42"
                          },
                          "type": "person"
                        },
                        "properties": {
                          "action": {
                            "type": "string",
                            "description": "Suppress a person's identifier(s) in Customer.io, so that you can't message a person or add their identifiers back to your workspace. This is separate from suppressions performed by your email provider.",
                            "enum": [
                              "suppress"
                            ]
                          },
                          "identifiers": {
                            "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
                            "oneOf": [
                              {
                                "title": "id",
                                "type": "object",
                                "required": [
                                  "id"
                                ],
                                "properties": {
                                  "id": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                                    "example": "42"
                                  }
                                }
                              },
                              {
                                "title": "email",
                                "type": "object",
                                "required": [
                                  "email"
                                ],
                                "properties": {
                                  "email": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The email address of the customer.",
                                    "example": "test@example.com"
                                  }
                                }
                              },
                              {
                                "title": "phone",
                                "type": "object",
                                "required": [
                                  "phone"
                                ],
                                "properties": {
                                  "phone": {
                                    "type": "string",
                                    "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                                    "example": "+14155552671"
                                  }
                                }
                              },
                              {
                                "title": "cio_id",
                                "type": "object",
                                "required": [
                                  "cio_id"
                                ],
                                "properties": {
                                  "cio_id": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                                    "example": "a3000001"
                                  }
                                }
                              }
                            ]
                          },
                          "type": {
                            "description": "The operation modifies a person in Customer.io",
                            "type": "string",
                            "enum": [
                              "person"
                            ]
                          }
                        },
                        "required": [
                          "type",
                          "identifiers",
                          "action"
                        ]
                      },
                      {
                        "title": "Person: Unsuppress",
                        "description": "Unsuppress a person's identifier(s) in Customer.io, so that you can message a person or add their identifiers back to your workspace. This does not unsuppress addresses that were previously suppressed by your email provider.",
                        "example": {
                          "action": "unsuppress",
                          "identifiers": {
                            "id": "42"
                          },
                          "type": "person"
                        },
                        "properties": {
                          "action": {
                            "type": "string",
                            "description": "Unsuppress a person's identifier(s) in Customer.io, so that you can message a person or add their identifiers back to your workspace. This does not unsuppress addresses that were previously suppressed by your email provider.",
                            "enum": [
                              "unsuppress"
                            ]
                          },
                          "identifiers": {
                            "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
                            "oneOf": [
                              {
                                "title": "id",
                                "type": "object",
                                "required": [
                                  "id"
                                ],
                                "properties": {
                                  "id": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                                    "example": "42"
                                  }
                                }
                              },
                              {
                                "title": "email",
                                "type": "object",
                                "required": [
                                  "email"
                                ],
                                "properties": {
                                  "email": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "The email address of the customer.",
                                    "example": "test@example.com"
                                  }
                                }
                              },
                              {
                                "title": "phone",
                                "type": "object",
                                "required": [
                                  "phone"
                                ],
                                "properties": {
                                  "phone": {
                                    "type": "string",
                                    "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                                    "example": "+14155552671"
                                  }
                                }
                              },
                              {
                                "title": "cio_id",
                                "type": "object",
                                "required": [
                                  "cio_id"
                                ],
                                "properties": {
                                  "cio_id": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                                    "example": "a3000001"
                                  }
                                }
                              }
                            ]
                          },
                          "type": {
                            "description": "The operation modifies a person in Customer.io",
                            "type": "string",
                            "enum": [
                              "person"
                            ]
                          }
                        },
                        "required": [
                          "type",
                          "identifiers",
                          "action"
                        ]
                      }
                    ],
                    "discriminator": {
                      "propertyName": "action"
                    }
                  },
                  {
                    "x-scalar-ignore": true,
                    "title": "Object operations",
                    "example": {
                      "action": "identify",
                      "identifiers": {
                        "object_id": "acme",
                        "object_type_id": "1"
                      },
                      "type": "object",
                      "attributes": {
                        "name": "Acme Corp"
                      }
                    },
                    "oneOf": [
                      {
                        "example": {
                          "action": "identify",
                          "identifiers": {
                            "object_id": "acme",
                            "object_type_id": "1"
                          },
                          "type": "object",
                          "attributes": {
                            "name": "Acme Corp",
                            "plan": "enterprise",
                            "seats": 50
                          }
                        },
                        "type": "object",
                        "title": "Object: Identify",
                        "description": "The `action` determines the type of operation you want to perform with an object. If `identifiers.object_id` does not exist, we'll create a new object; if it exists, we'll update the object accordingly.\n",
                        "properties": {
                          "action": {
                            "type": "string",
                            "description": "Indicates that the operation will `identify` the item of the specified `type`.",
                            "enum": [
                              "identify"
                            ]
                          },
                          "identifiers": {
                            "description": "Custom object identifiers. To create, provide `object_type_id` and `object_id`; to update, use those values or `cio_object_id`.",
                            "oneOf": [
                              {
                                "title": "Object ID (create and update)",
                                "type": "object",
                                "required": [
                                  "object_type_id",
                                  "object_id"
                                ],
                                "properties": {
                                  "object_id": {
                                    "type": "string",
                                    "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                                    "example": "acme"
                                  },
                                  "object_type_id": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "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.",
                                    "example": "1"
                                  }
                                }
                              },
                              {
                                "title": "CIO Object ID (updates only)",
                                "type": "object",
                                "required": [
                                  "cio_object_id"
                                ],
                                "properties": {
                                  "cio_object_id": {
                                    "type": "string",
                                    "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                                    "example": "obb7fd050101"
                                  }
                                }
                              }
                            ]
                          },
                          "type": {
                            "description": "The operation modifies a single object—non person data.",
                            "type": "string",
                            "enum": [
                              "object"
                            ]
                          },
                          "attributes": {
                            "x-scalar-ignore": true,
                            "type": "object",
                            "description": "Data that belongs to the object. Pass `null` or an empty string to remove an attribute. Some attributes have special meaning—see [reserved attributes](/journeys/objects-data/objects/create/#reserved-attributes)."
                          },
                          "cio_relationships": {
                            "x-scalar-ignore": true,
                            "type": "array",
                            "description": "The people you want to associate with an object. Each object in the array represents a person.",
                            "items": {
                              "type": "object",
                              "properties": {
                                "identifiers": {
                                  "oneOf": [
                                    {
                                      "title": "id",
                                      "type": "object",
                                      "properties": {
                                        "id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                                          "example": "42"
                                        }
                                      }
                                    },
                                    {
                                      "title": "email",
                                      "type": "object",
                                      "properties": {
                                        "email": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "The email address of the customer.",
                                          "example": "test@example.com"
                                        }
                                      }
                                    },
                                    {
                                      "title": "cio_id",
                                      "type": "object",
                                      "properties": {
                                        "cio_id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                                          "example": "a3000001"
                                        }
                                      }
                                    }
                                  ]
                                },
                                "relationship_attributes": {
                                  "type": "object",
                                  "description": "The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
                                  "additionalProperties": {
                                    "x-additionalPropertiesName": "Relationship Attributes"
                                  }
                                }
                              },
                              "example": {
                                "identifiers": {
                                  "id": "42"
                                },
                                "relationship_attributes": {
                                  "role": "admin",
                                  "date_created": 1702480414
                                }
                              }
                            }
                          }
                        },
                        "required": [
                          "type",
                          "identifiers",
                          "action"
                        ]
                      },
                      {
                        "title": "Object: Identify anonymous",
                        "description": "The `identify_anonymous` action lets you relate an object to a person who hasn't yet identified themselves by anonymous_id. When you identify the person, their anonymous relationship will carry over to the identified profile.",
                        "example": {
                          "action": "identify_anonymous",
                          "identifiers": {
                            "object_id": "acme",
                            "object_type_id": "1"
                          },
                          "type": "object",
                          "anonymous_id": "anon-abc-123"
                        },
                        "properties": {
                          "action": {
                            "type": "string",
                            "description": "Indicates that the operation will `identify` the item of the specified `type` and relate it to an `anonymous_id`.",
                            "enum": [
                              "identify_anonymous"
                            ]
                          },
                          "identifiers": {
                            "description": "Custom object identifiers. To create, provide `object_type_id` and `object_id`; to update, use those values or `cio_object_id`.",
                            "oneOf": [
                              {
                                "title": "Object ID (create and update)",
                                "type": "object",
                                "required": [
                                  "object_type_id",
                                  "object_id"
                                ],
                                "properties": {
                                  "object_id": {
                                    "type": "string",
                                    "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                                    "example": "acme"
                                  },
                                  "object_type_id": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "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.",
                                    "example": "1"
                                  }
                                }
                              },
                              {
                                "title": "CIO Object ID (updates only)",
                                "type": "object",
                                "required": [
                                  "cio_object_id"
                                ],
                                "properties": {
                                  "cio_object_id": {
                                    "type": "string",
                                    "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                                    "example": "obb7fd050101"
                                  }
                                }
                              }
                            ]
                          },
                          "type": {
                            "description": "The operation modifies a single object—non person data.",
                            "type": "string",
                            "enum": [
                              "object"
                            ]
                          },
                          "attributes": {
                            "x-scalar-ignore": true,
                            "type": "object",
                            "description": "Data that belongs to the object. Pass `null` or an empty string to remove an attribute. Some attributes have special meaning—see [reserved attributes](/journeys/objects-data/objects/create/#reserved-attributes)."
                          },
                          "cio_relationships": {
                            "type": "array",
                            "description": "The anonymous people you want to associate with an object. Each object in the array contains an `anonymous_id` representing a person you haven't yet identified by `id` or `email`.",
                            "items": {
                              "type": "object",
                              "properties": {
                                "identifiers": {
                                  "type": "object",
                                  "properties": {
                                    "anonymous_id": {
                                      "x-scalar-ignore": true,
                                      "type": "string",
                                      "description": "An identifier for an anonymous event, like a cookie. If set as an attribute on a person, any events bearing the same anonymous value are associated with this person. This value must be unique and is not reusable."
                                    }
                                  }
                                },
                                "relationship_attributes": {
                                  "type": "object",
                                  "description": "Coming October 2023 - The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship."
                                }
                              }
                            }
                          }
                        },
                        "required": [
                          "type",
                          "identifiers",
                          "action"
                        ]
                      },
                      {
                        "title": "Object: Delete",
                        "description": "Delete an object. This also removes relationships from people.\n",
                        "example": {
                          "action": "delete",
                          "type": "object",
                          "identifiers": {
                            "object_id": "acme",
                            "object_type_id": "1"
                          }
                        },
                        "properties": {
                          "action": {
                            "type": "string",
                            "description": "Indicates that the operation will `delete` the item of the specified `type`.",
                            "enum": [
                              "delete"
                            ]
                          },
                          "type": {
                            "description": "The operation modifies a single object—non person data.",
                            "type": "string",
                            "enum": [
                              "object"
                            ]
                          },
                          "identifiers": {
                            "description": "The identifiers for a particular object. You can use either the `object_type_id` and `object_id` (where `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object) or the `cio_object_id`.",
                            "oneOf": [
                              {
                                "title": "Object ID",
                                "type": "object",
                                "required": [
                                  "object_type_id",
                                  "object_id"
                                ],
                                "properties": {
                                  "object_id": {
                                    "type": "string",
                                    "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                                    "example": "acme"
                                  },
                                  "object_type_id": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "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.",
                                    "example": "1"
                                  }
                                }
                              },
                              {
                                "title": "CIO Object ID",
                                "type": "object",
                                "required": [
                                  "cio_object_id"
                                ],
                                "properties": {
                                  "cio_object_id": {
                                    "type": "string",
                                    "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                                    "example": "obb7fd050101"
                                  }
                                }
                              }
                            ]
                          }
                        },
                        "required": [
                          "type",
                          "action"
                        ]
                      },
                      {
                        "title": "Object: Add relationships",
                        "description": "Add relationships between an object and one or more people.",
                        "example": {
                          "action": "add_relationships",
                          "cio_relationships": [
                            {
                              "identifiers": {
                                "id": "42"
                              },
                              "relationship_attributes": {
                                "role": "admin"
                              }
                            }
                          ],
                          "type": "object",
                          "identifiers": {
                            "object_id": "acme",
                            "object_type_id": "1"
                          }
                        },
                        "properties": {
                          "action": {
                            "type": "string",
                            "description": "This operation associates an object with one or more people.",
                            "enum": [
                              "add_relationships"
                            ]
                          },
                          "cio_relationships": {
                            "x-scalar-ignore": true,
                            "type": "array",
                            "description": "The people you want to associate with an object. Each object in the array represents a person.",
                            "items": {
                              "type": "object",
                              "properties": {
                                "identifiers": {
                                  "oneOf": [
                                    {
                                      "title": "id",
                                      "type": "object",
                                      "properties": {
                                        "id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                                          "example": "42"
                                        }
                                      }
                                    },
                                    {
                                      "title": "email",
                                      "type": "object",
                                      "properties": {
                                        "email": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "The email address of the customer.",
                                          "example": "test@example.com"
                                        }
                                      }
                                    },
                                    {
                                      "title": "cio_id",
                                      "type": "object",
                                      "properties": {
                                        "cio_id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                                          "example": "a3000001"
                                        }
                                      }
                                    }
                                  ]
                                },
                                "relationship_attributes": {
                                  "type": "object",
                                  "description": "The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
                                  "additionalProperties": {
                                    "x-additionalPropertiesName": "Relationship Attributes"
                                  }
                                }
                              },
                              "example": {
                                "identifiers": {
                                  "id": "42"
                                },
                                "relationship_attributes": {
                                  "role": "admin",
                                  "date_created": 1702480414
                                }
                              }
                            }
                          },
                          "type": {
                            "description": "The operation modifies a single object—non person data.",
                            "type": "string",
                            "enum": [
                              "object"
                            ]
                          },
                          "identifiers": {
                            "description": "The identifiers for a particular object. You can use either the `object_type_id` and `object_id` (where `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object) or the `cio_object_id`.",
                            "oneOf": [
                              {
                                "title": "Object ID",
                                "type": "object",
                                "required": [
                                  "object_type_id",
                                  "object_id"
                                ],
                                "properties": {
                                  "object_id": {
                                    "type": "string",
                                    "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                                    "example": "acme"
                                  },
                                  "object_type_id": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "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.",
                                    "example": "1"
                                  }
                                }
                              },
                              {
                                "title": "CIO Object ID",
                                "type": "object",
                                "required": [
                                  "cio_object_id"
                                ],
                                "properties": {
                                  "cio_object_id": {
                                    "type": "string",
                                    "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                                    "example": "obb7fd050101"
                                  }
                                }
                              }
                            ]
                          }
                        },
                        "required": [
                          "type",
                          "action",
                          "cio_relationships"
                        ]
                      },
                      {
                        "title": "Object: Delete relationships",
                        "description": "Delete relationships between an object and one or more people.",
                        "example": {
                          "action": "delete_relationships",
                          "cio_relationships": [
                            {
                              "identifiers": {
                                "id": "42"
                              }
                            }
                          ],
                          "type": "object",
                          "identifiers": {
                            "object_id": "acme",
                            "object_type_id": "1"
                          }
                        },
                        "properties": {
                          "action": {
                            "type": "string",
                            "description": "This operation deletes an object relationship from one or more people.",
                            "enum": [
                              "delete_relationships"
                            ]
                          },
                          "cio_relationships": {
                            "x-scalar-ignore": true,
                            "type": "array",
                            "description": "The people you want to associate with an object. Each object in the array represents a person.",
                            "items": {
                              "type": "object",
                              "properties": {
                                "identifiers": {
                                  "oneOf": [
                                    {
                                      "title": "id",
                                      "type": "object",
                                      "properties": {
                                        "id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                                          "example": "42"
                                        }
                                      }
                                    },
                                    {
                                      "title": "email",
                                      "type": "object",
                                      "properties": {
                                        "email": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "The email address of the customer.",
                                          "example": "test@example.com"
                                        }
                                      }
                                    },
                                    {
                                      "title": "cio_id",
                                      "type": "object",
                                      "properties": {
                                        "cio_id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                                          "example": "a3000001"
                                        }
                                      }
                                    }
                                  ]
                                },
                                "relationship_attributes": {
                                  "type": "object",
                                  "description": "The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
                                  "additionalProperties": {
                                    "x-additionalPropertiesName": "Relationship Attributes"
                                  }
                                }
                              },
                              "example": {
                                "identifiers": {
                                  "id": "42"
                                },
                                "relationship_attributes": {
                                  "role": "admin",
                                  "date_created": 1702480414
                                }
                              }
                            }
                          },
                          "type": {
                            "description": "The operation modifies a single object—non person data.",
                            "type": "string",
                            "enum": [
                              "object"
                            ]
                          },
                          "identifiers": {
                            "description": "The identifiers for a particular object. You can use either the `object_type_id` and `object_id` (where `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object) or the `cio_object_id`.",
                            "oneOf": [
                              {
                                "title": "Object ID",
                                "type": "object",
                                "required": [
                                  "object_type_id",
                                  "object_id"
                                ],
                                "properties": {
                                  "object_id": {
                                    "type": "string",
                                    "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                                    "example": "acme"
                                  },
                                  "object_type_id": {
                                    "x-scalar-ignore": true,
                                    "type": "string",
                                    "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.",
                                    "example": "1"
                                  }
                                }
                              },
                              {
                                "title": "CIO Object ID",
                                "type": "object",
                                "required": [
                                  "cio_object_id"
                                ],
                                "properties": {
                                  "cio_object_id": {
                                    "type": "string",
                                    "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                                    "example": "obb7fd050101"
                                  }
                                }
                              }
                            ]
                          }
                        },
                        "required": [
                          "type",
                          "action",
                          "cio_relationships"
                        ]
                      }
                    ],
                    "discriminator": {
                      "propertyName": "action"
                    }
                  },
                  {
                    "title": "Delivery: Event",
                    "description": "The \"delivery\" type lets you attribute metrics to messages that don't self-report back to Customer.io, like push and in-app notifications.",
                    "example": {
                      "action": "event",
                      "attributes": {
                        "device_token": "a83b219c-e756-4c5b-a8e3-d1a5c5b2f3c1"
                      },
                      "identifiers": {
                        "id": "RPIyMTM6OjEyMzQ="
                      },
                      "name": "opened",
                      "type": "delivery"
                    },
                    "type": "object",
                    "required": [
                      "type",
                      "action",
                      "identifiers",
                      "name",
                      "attributes"
                    ],
                    "properties": {
                      "action": {
                        "type": "string",
                        "description": "An `event` action indicates a delivery event. Use the `name` to determine the specific metric that you want to attribute to this delivery.",
                        "enum": [
                          "event"
                        ]
                      },
                      "attributes": {
                        "type": "object",
                        "required": [
                          "device_token"
                        ],
                        "description": "Contains information about the delivery and the individual who received the message.",
                        "properties": {
                          "device_token": {
                            "type": "string",
                            "description": "The device that received the message."
                          }
                        }
                      },
                      "identifiers": {
                        "type": "object",
                        "description": "Contains identifiers for the delivery itself.",
                        "properties": {
                          "id": {
                            "type": "string",
                            "description": "The `delivery_id` for the delivery that you want to attribute metrics to."
                          }
                        }
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the metric you want to attribute to this \"delivery\".",
                        "enum": [
                          "opened",
                          "converted",
                          "delivered"
                        ]
                      },
                      "type": {
                        "type": "string",
                        "description": "The \"delivery\" type lets you attribute metrics to messages that don't self-report back to Customer.io, like push and in-app notifications.",
                        "enum": [
                          "delivery"
                        ]
                      }
                    }
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful request returns an empty object response."
          },
          "400": {
            "description": "The request was malformed or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "errors": {
                      "x-scalar-ignore": true,
                      "type": "array",
                      "description": "An array of errors, where each object represents a different error.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string",
                            "description": "The field containing the error."
                          },
                          "message": {
                            "type": "string",
                            "description": "A detailed description of the error in the offending field."
                          },
                          "reason": {
                            "type": "string",
                            "description": "The reason for the error."
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request. Make sure that you provided the right credentials."
          }
        },
        "x-codeSamples": [
          {
            "lang": "json",
            "label": "JSON",
            "source": "{\n  \"action\": \"identify\",\n  \"identifiers\": {\n    \"id\": \"42\"\n  },\n  \"type\": \"person\",\n  \"attributes\": {\n    \"first_name\": \"Jane\"\n  }\n}"
          }
        ]
      }
    },
    "/api/v2/batch": {
      "post": {
        "operationId": "batch",
        "tags": [
          "track_v2"
        ],
        "summary": "Send multiple requests",
        "description": "This endpoint lets you batch requests for different people and objects in a single request. Each object in your array represents an individual \"entity\" operation—it represents a change for a person, an object, or a delivery. \n\nYou can mix types in this request; you are not limited to a batch containing only objects or only people. An \"object\" is a non-person entity that you want to associate with one or more people—like a company, an educational course that people enroll in, etc.\n\nYour batch request must be smaller than 500kb. Each of the requests within the batch must also be 32kb or smaller.\n",
        "servers": [
          {
            "url": "https://track.customer.io",
            "description": "This endpoint is a part of the Track API. Track endpoints use basic authentication with your Site ID as the user name and your secret key as the password."
          }
        ],
        "security": [
          {
            "Tracking-API-Key": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "example": {
                  "batch": [
                    {
                      "action": "identify",
                      "attributes": {
                        "first_name": "Jane",
                        "last_name": "Doe",
                        "plan": "premium"
                      },
                      "identifiers": {
                        "id": "42"
                      },
                      "type": "person"
                    },
                    {
                      "action": "identify",
                      "attributes": {
                        "name": "Acme Corp",
                        "plan": "enterprise",
                        "seats": 50
                      },
                      "identifiers": {
                        "object_type_id": "1",
                        "object_id": "acme"
                      },
                      "type": "object"
                    },
                    {
                      "action": "add_relationships",
                      "identifiers": {
                        "object_type_id": "1",
                        "object_id": "acme"
                      },
                      "type": "object",
                      "cio_relationships": [
                        {
                          "identifiers": {
                            "id": "42"
                          },
                          "relationship_attributes": {
                            "role": "admin"
                          }
                        }
                      ]
                    }
                  ]
                },
                "properties": {
                  "batch": {
                    "description": "A batch of requests, where each object is any individual [entity payload](##tag/v2_entity/operation/entity)—modifying a single person or object.",
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "title": "Person",
                          "anyOf": [
                            {
                              "title": "Person: Identify",
                              "description": "Add or update a person.",
                              "example": {
                                "action": "identify",
                                "identifiers": {
                                  "id": "42"
                                },
                                "type": "person",
                                "attributes": {
                                  "first_name": "Jane",
                                  "last_name": "Doe",
                                  "plan": "premium"
                                }
                              },
                              "properties": {
                                "action": {
                                  "type": "string",
                                  "description": "Indicates that the operation will `identify` the item of the specified `type`.",
                                  "enum": [
                                    "identify"
                                  ]
                                },
                                "identifiers": {
                                  "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
                                  "oneOf": [
                                    {
                                      "title": "id",
                                      "type": "object",
                                      "required": [
                                        "id"
                                      ],
                                      "properties": {
                                        "id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                                          "example": "42"
                                        }
                                      }
                                    },
                                    {
                                      "title": "email",
                                      "type": "object",
                                      "required": [
                                        "email"
                                      ],
                                      "properties": {
                                        "email": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "The email address of the customer.",
                                          "example": "test@example.com"
                                        }
                                      }
                                    },
                                    {
                                      "title": "phone",
                                      "type": "object",
                                      "required": [
                                        "phone"
                                      ],
                                      "properties": {
                                        "phone": {
                                          "type": "string",
                                          "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                                          "example": "+14155552671"
                                        }
                                      }
                                    },
                                    {
                                      "title": "cio_id",
                                      "type": "object",
                                      "required": [
                                        "cio_id"
                                      ],
                                      "properties": {
                                        "cio_id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                                          "example": "a3000001"
                                        }
                                      }
                                    }
                                  ]
                                },
                                "type": {
                                  "description": "The operation modifies a person in Customer.io",
                                  "type": "string",
                                  "enum": [
                                    "person"
                                  ]
                                },
                                "attributes": {
                                  "type": "object",
                                  "description": "Attributes that you want to add or update for this person. You can pass properties that aren't defined below to set custom attributes; the defined properties are reserved in the Customer.io Track API.",
                                  "properties": {
                                    "_update": {
                                      "type": "boolean",
                                      "default": false,
                                      "description": "If `true`, update only existing people and prevent accidental profile creation. If no person matches the identifiers, the request does nothing."
                                    },
                                    "cio_subscription_preferences": {
                                      "x-scalar-ignore": true,
                                      "description": "A person's [subscription center](/journeys/channels/subscriptions/center/) preferences. Use JSON dot notation, such as `cio_subscription_preferences.topics.topic_<id>`, to update one topic without replacing others.",
                                      "type": "object",
                                      "properties": {
                                        "topics": {
                                          "type": "object",
                                          "description": "Contains active topics in your workspace, named `topic_<id>`.",
                                          "additionalProperties": {
                                            "x-additionalPropertiesName": "topic_<id>",
                                            "description": "Boolean preference for a topic named `topic_<id>`; `true` subscribes, `false` unsubscribes, and empty or missing values use the topic default. Find topic IDs with [getTopics](/integrations/api/app/tag/subscription-center/getTopics/).",
                                            "type": "boolean"
                                          }
                                        }
                                      },
                                      "example": {
                                        "topics": {
                                          "topic_1": true,
                                          "topic_2": false,
                                          "topic_3": true
                                        }
                                      }
                                    }
                                  },
                                  "additionalProperties": {
                                    "x-additionalPropertiesName": "additional attributes",
                                    "description": "Custom properties that you want to set as attributes on this person."
                                  }
                                },
                                "cio_relationships": {
                                  "x-scalar-ignore": true,
                                  "type": "array",
                                  "description": "Each object in the array represents a relationship you want to add to, or remove from, a person.",
                                  "items": {
                                    "properties": {
                                      "identifiers": {
                                        "description": "The identifiers for a particular object. You can use either the `object_type_id` and `object_id` (where `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object) or the `cio_object_id`.",
                                        "oneOf": [
                                          {
                                            "title": "Object ID",
                                            "type": "object",
                                            "required": [
                                              "object_type_id",
                                              "object_id"
                                            ],
                                            "properties": {
                                              "object_id": {
                                                "type": "string",
                                                "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                                                "example": "acme"
                                              },
                                              "object_type_id": {
                                                "x-scalar-ignore": true,
                                                "type": "string",
                                                "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.",
                                                "example": "1"
                                              }
                                            }
                                          },
                                          {
                                            "title": "CIO Object ID",
                                            "type": "object",
                                            "required": [
                                              "cio_object_id"
                                            ],
                                            "properties": {
                                              "cio_object_id": {
                                                "type": "string",
                                                "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                                                "example": "obb7fd050101"
                                              }
                                            }
                                          }
                                        ]
                                      },
                                      "relationship_attributes": {
                                        "x-scalar-ignore": true,
                                        "type": "object",
                                        "description": "The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
                                        "additionalProperties": {
                                          "x-additionalPropertiesName": "Relationship Attributes"
                                        },
                                        "example": {
                                          "role": "admin"
                                        }
                                      }
                                    }
                                  }
                                },
                                "timestamp": {
                                  "type": "integer",
                                  "description": "The Unix timestamp for when the attribute update occurred. This can be used to control the order of attribute updates when multiple requests are sent in rapid succession.",
                                  "example": 1772013598
                                }
                              },
                              "required": [
                                "type",
                                "identifiers",
                                "action"
                              ]
                            },
                            {
                              "title": "Person: Delete",
                              "description": "Delete a person from your workspace.",
                              "example": {
                                "action": "delete",
                                "identifiers": {
                                  "id": "42"
                                },
                                "type": "person"
                              },
                              "properties": {
                                "action": {
                                  "type": "string",
                                  "description": "Indicates that the operation will `delete` the item of the specified `type`.",
                                  "enum": [
                                    "delete"
                                  ]
                                },
                                "identifiers": {
                                  "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
                                  "oneOf": [
                                    {
                                      "title": "id",
                                      "type": "object",
                                      "required": [
                                        "id"
                                      ],
                                      "properties": {
                                        "id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                                          "example": "42"
                                        }
                                      }
                                    },
                                    {
                                      "title": "email",
                                      "type": "object",
                                      "required": [
                                        "email"
                                      ],
                                      "properties": {
                                        "email": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "The email address of the customer.",
                                          "example": "test@example.com"
                                        }
                                      }
                                    },
                                    {
                                      "title": "phone",
                                      "type": "object",
                                      "required": [
                                        "phone"
                                      ],
                                      "properties": {
                                        "phone": {
                                          "type": "string",
                                          "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                                          "example": "+14155552671"
                                        }
                                      }
                                    },
                                    {
                                      "title": "cio_id",
                                      "type": "object",
                                      "required": [
                                        "cio_id"
                                      ],
                                      "properties": {
                                        "cio_id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                                          "example": "a3000001"
                                        }
                                      }
                                    }
                                  ]
                                },
                                "type": {
                                  "description": "The operation modifies a person in Customer.io",
                                  "type": "string",
                                  "enum": [
                                    "person"
                                  ]
                                }
                              },
                              "required": [
                                "type",
                                "identifiers",
                                "action"
                              ]
                            },
                            {
                              "title": "Person: Event",
                              "description": "A custom event attributed to a person. You can use events to trigger automations, or reference event information using liquid in your messages.",
                              "example": {
                                "action": "event",
                                "identifiers": {
                                  "id": "42"
                                },
                                "name": "purchase",
                                "type": "person",
                                "attributes": {
                                  "product": "Widget",
                                  "price": 29.99
                                }
                              },
                              "properties": {
                                "action": {
                                  "type": "string",
                                  "description": "A custom event attributed to the specified person.",
                                  "enum": [
                                    "event"
                                  ]
                                },
                                "identifiers": {
                                  "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
                                  "oneOf": [
                                    {
                                      "title": "id",
                                      "type": "object",
                                      "required": [
                                        "id"
                                      ],
                                      "properties": {
                                        "id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                                          "example": "42"
                                        }
                                      }
                                    },
                                    {
                                      "title": "email",
                                      "type": "object",
                                      "required": [
                                        "email"
                                      ],
                                      "properties": {
                                        "email": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "The email address of the customer.",
                                          "example": "test@example.com"
                                        }
                                      }
                                    },
                                    {
                                      "title": "phone",
                                      "type": "object",
                                      "required": [
                                        "phone"
                                      ],
                                      "properties": {
                                        "phone": {
                                          "type": "string",
                                          "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                                          "example": "+14155552671"
                                        }
                                      }
                                    },
                                    {
                                      "title": "cio_id",
                                      "type": "object",
                                      "required": [
                                        "cio_id"
                                      ],
                                      "properties": {
                                        "cio_id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                                          "example": "a3000001"
                                        }
                                      }
                                    }
                                  ]
                                },
                                "name": {
                                  "type": "string",
                                  "description": "The name of the event. This is how you'll find your event in Customer.io or select it when using events as automation triggers."
                                },
                                "type": {
                                  "description": "The operation modifies a person in Customer.io",
                                  "type": "string",
                                  "enum": [
                                    "person"
                                  ]
                                },
                                "attributes": {
                                  "type": "object",
                                  "description": "Additional information that you might want to reference in a message using liquid or use to set attributes on the identified person.\n",
                                  "additionalProperties": {
                                    "x-additionalPropertiesName": "liquid merge data",
                                    "description": "Insert key-values that you want to reference in your message here."
                                  },
                                  "properties": {
                                    "from_address": {
                                      "type": "string",
                                      "format": "email",
                                      "description": "The address you want to trigger messages from, overriding the `from` field in emails triggered by the event."
                                    },
                                    "recipient": {
                                      "type": "string",
                                      "format": "email",
                                      "description": "The email address of the person associated with the event, overriding the `to` field in emails triggered by the event."
                                    },
                                    "reply_to": {
                                      "type": "string",
                                      "format": "email",
                                      "description": "The address you want to receive replies to, overriding the `reply to` field for emails triggered by the event."
                                    }
                                  }
                                },
                                "id": {
                                  "type": "string",
                                  "format": "ULID",
                                  "description": "A valid ULID used to deduplicate events. Note - our Python and Ruby libraries do not pass this id."
                                },
                                "timestamp": {
                                  "type": "integer",
                                  "description": "The Unix timestamp when the event happened."
                                }
                              },
                              "required": [
                                "type",
                                "identifiers",
                                "action",
                                "name"
                              ]
                            },
                            {
                              "title": "Person: Screen view",
                              "description": "A mobile \"screenview\" event attributed to a person. Our `screen` and `page` event types are more specific than our standard `event`, and help you track and target people based on the pages people visit in your mobile app or website.",
                              "example": {
                                "action": "screen",
                                "identifiers": {
                                  "id": "42"
                                },
                                "name": "Dashboard",
                                "type": "person",
                                "attributes": {
                                  "app_version": "2.1.0"
                                }
                              },
                              "properties": {
                                "action": {
                                  "type": "string",
                                  "description": "A mobile \"screenview\" event attributed to a person. Our `screen` and `page` event types are more specific than our standard `event`, and help you track and target people based on the pages people visit in your mobile app or website.",
                                  "enum": [
                                    "screen"
                                  ]
                                },
                                "identifiers": {
                                  "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
                                  "oneOf": [
                                    {
                                      "title": "id",
                                      "type": "object",
                                      "required": [
                                        "id"
                                      ],
                                      "properties": {
                                        "id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                                          "example": "42"
                                        }
                                      }
                                    },
                                    {
                                      "title": "email",
                                      "type": "object",
                                      "required": [
                                        "email"
                                      ],
                                      "properties": {
                                        "email": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "The email address of the customer.",
                                          "example": "test@example.com"
                                        }
                                      }
                                    },
                                    {
                                      "title": "phone",
                                      "type": "object",
                                      "required": [
                                        "phone"
                                      ],
                                      "properties": {
                                        "phone": {
                                          "type": "string",
                                          "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                                          "example": "+14155552671"
                                        }
                                      }
                                    },
                                    {
                                      "title": "cio_id",
                                      "type": "object",
                                      "required": [
                                        "cio_id"
                                      ],
                                      "properties": {
                                        "cio_id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                                          "example": "a3000001"
                                        }
                                      }
                                    }
                                  ]
                                },
                                "name": {
                                  "type": "string",
                                  "description": "The name of the screen a person visited. This is how you'll find and select screen view events in Customer.io."
                                },
                                "type": {
                                  "description": "The operation modifies a person in Customer.io",
                                  "type": "string",
                                  "enum": [
                                    "person"
                                  ]
                                },
                                "attributes": {
                                  "type": "object",
                                  "description": "Additional information that you might want to reference in a message using liquid or use to set attributes on the identified person.",
                                  "additionalProperties": {
                                    "x-additionalPropertiesName": "liquid merge data",
                                    "description": "Insert key-values that you want to reference in your message here."
                                  }
                                },
                                "id": {
                                  "type": "string",
                                  "format": "ULID",
                                  "description": "A valid ULID used to deduplicate events. Note - our Python and Ruby libraries do not pass this id."
                                },
                                "timestamp": {
                                  "type": "integer",
                                  "description": "The Unix timestamp when the event happened."
                                }
                              },
                              "required": [
                                "type",
                                "identifiers",
                                "action",
                                "name"
                              ]
                            },
                            {
                              "title": "Person: Page view",
                              "description": "A web \"pageview\" event attributed to a person. Our `screen` and `page` event types are more specific than our standard `event`, and help you track and target people based on the pages people visit in your mobile app or website.",
                              "example": {
                                "action": "page",
                                "identifiers": {
                                  "id": "42"
                                },
                                "name": "/pricing",
                                "type": "person",
                                "attributes": {
                                  "referrer": "https://example.com"
                                }
                              },
                              "properties": {
                                "action": {
                                  "type": "string",
                                  "description": "A web \"pageview\" event attributed to a person. Our `screen` and `page` event types are more specific than our standard `event`, and help you track and target people based on the pages people visit in your mobile app or website.",
                                  "enum": [
                                    "page"
                                  ]
                                },
                                "identifiers": {
                                  "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
                                  "oneOf": [
                                    {
                                      "title": "id",
                                      "type": "object",
                                      "required": [
                                        "id"
                                      ],
                                      "properties": {
                                        "id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                                          "example": "42"
                                        }
                                      }
                                    },
                                    {
                                      "title": "email",
                                      "type": "object",
                                      "required": [
                                        "email"
                                      ],
                                      "properties": {
                                        "email": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "The email address of the customer.",
                                          "example": "test@example.com"
                                        }
                                      }
                                    },
                                    {
                                      "title": "phone",
                                      "type": "object",
                                      "required": [
                                        "phone"
                                      ],
                                      "properties": {
                                        "phone": {
                                          "type": "string",
                                          "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                                          "example": "+14155552671"
                                        }
                                      }
                                    },
                                    {
                                      "title": "cio_id",
                                      "type": "object",
                                      "required": [
                                        "cio_id"
                                      ],
                                      "properties": {
                                        "cio_id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                                          "example": "a3000001"
                                        }
                                      }
                                    }
                                  ]
                                },
                                "name": {
                                  "type": "string",
                                  "description": "The name of the page or page path that a person visited. This is how you'll find and select page view events in Customer.io."
                                },
                                "type": {
                                  "description": "The operation modifies a person in Customer.io",
                                  "type": "string",
                                  "enum": [
                                    "person"
                                  ]
                                },
                                "attributes": {
                                  "type": "object",
                                  "description": "Additional information that you might want to reference in a message using liquid or use to set attributes on the identified person.",
                                  "properties": {
                                    "keywords": {
                                      "type": "array",
                                      "description": "Page-content keywords, typically like HTML meta keywords. Mainly for publishers with pageview tracking; not collected automatically.",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "path": {
                                      "type": "string",
                                      "description": "The path portion of the page's URL. Equivalent to the canonical `path` which defaults to `location.pathname` from the DOM API."
                                    },
                                    "referrer": {
                                      "type": "string",
                                      "description": "The previous page's full URL. Equivalent to `document.referrer` from the DOM API."
                                    },
                                    "search": {
                                      "type": "string",
                                      "description": "The query string portion of the page's URL. Equivalent to `location.search` from the DOM API."
                                    },
                                    "title": {
                                      "type": "string",
                                      "description": "The page's title. Equivalent to `document.title` from the DOM API."
                                    },
                                    "url": {
                                      "type": "string",
                                      "description": "A page's full URL. We first look for the canonical URL. If the canonical URL is not provided, we'll use `location.href` from the DOM API."
                                    }
                                  },
                                  "additionalProperties": {
                                    "x-additionalPropertiesName": "liquid merge data",
                                    "description": "Insert key-values that you want to reference in your message here."
                                  }
                                },
                                "id": {
                                  "type": "string",
                                  "format": "ULID",
                                  "description": "A valid ULID used to deduplicate events. Note - our Python and Ruby libraries do not pass this id."
                                },
                                "timestamp": {
                                  "type": "integer",
                                  "description": "The Unix timestamp when the event happened."
                                }
                              },
                              "required": [
                                "type",
                                "identifiers",
                                "action",
                                "name"
                              ]
                            },
                            {
                              "title": "Person: Add relationships",
                              "description": "Associate multiple objects with a person.",
                              "example": {
                                "action": "add_relationships",
                                "cio_relationships": [
                                  {
                                    "identifiers": {
                                      "object_id": "acme",
                                      "object_type_id": "1"
                                    },
                                    "relationship_attributes": {
                                      "role": "admin"
                                    }
                                  }
                                ],
                                "identifiers": {
                                  "id": "42"
                                },
                                "type": "person"
                              },
                              "properties": {
                                "action": {
                                  "type": "string",
                                  "description": "This operation associates a person with one or more objects.",
                                  "enum": [
                                    "add_relationships"
                                  ]
                                },
                                "cio_relationships": {
                                  "x-scalar-ignore": true,
                                  "type": "array",
                                  "description": "Each object in the array represents a relationship you want to add to, or remove from, a person.",
                                  "items": {
                                    "properties": {
                                      "identifiers": {
                                        "description": "The identifiers for a particular object. You can use either the `object_type_id` and `object_id` (where `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object) or the `cio_object_id`.",
                                        "oneOf": [
                                          {
                                            "title": "Object ID",
                                            "type": "object",
                                            "required": [
                                              "object_type_id",
                                              "object_id"
                                            ],
                                            "properties": {
                                              "object_id": {
                                                "type": "string",
                                                "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                                                "example": "acme"
                                              },
                                              "object_type_id": {
                                                "x-scalar-ignore": true,
                                                "type": "string",
                                                "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.",
                                                "example": "1"
                                              }
                                            }
                                          },
                                          {
                                            "title": "CIO Object ID",
                                            "type": "object",
                                            "required": [
                                              "cio_object_id"
                                            ],
                                            "properties": {
                                              "cio_object_id": {
                                                "type": "string",
                                                "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                                                "example": "obb7fd050101"
                                              }
                                            }
                                          }
                                        ]
                                      },
                                      "relationship_attributes": {
                                        "x-scalar-ignore": true,
                                        "type": "object",
                                        "description": "The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
                                        "additionalProperties": {
                                          "x-additionalPropertiesName": "Relationship Attributes"
                                        },
                                        "example": {
                                          "role": "admin"
                                        }
                                      }
                                    }
                                  }
                                },
                                "identifiers": {
                                  "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
                                  "oneOf": [
                                    {
                                      "title": "id",
                                      "type": "object",
                                      "required": [
                                        "id"
                                      ],
                                      "properties": {
                                        "id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                                          "example": "42"
                                        }
                                      }
                                    },
                                    {
                                      "title": "email",
                                      "type": "object",
                                      "required": [
                                        "email"
                                      ],
                                      "properties": {
                                        "email": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "The email address of the customer.",
                                          "example": "test@example.com"
                                        }
                                      }
                                    },
                                    {
                                      "title": "phone",
                                      "type": "object",
                                      "required": [
                                        "phone"
                                      ],
                                      "properties": {
                                        "phone": {
                                          "type": "string",
                                          "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                                          "example": "+14155552671"
                                        }
                                      }
                                    },
                                    {
                                      "title": "cio_id",
                                      "type": "object",
                                      "required": [
                                        "cio_id"
                                      ],
                                      "properties": {
                                        "cio_id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                                          "example": "a3000001"
                                        }
                                      }
                                    }
                                  ]
                                },
                                "type": {
                                  "description": "The operation modifies a person in Customer.io",
                                  "type": "string",
                                  "enum": [
                                    "person"
                                  ]
                                }
                              },
                              "required": [
                                "type",
                                "identifiers",
                                "action",
                                "cio_relationships"
                              ]
                            },
                            {
                              "title": "Person: Delete relationships",
                              "description": "Remove multiple object relationships from a person.",
                              "example": {
                                "action": "delete_relationships",
                                "cio_relationships": [
                                  {
                                    "identifiers": {
                                      "object_id": "acme",
                                      "object_type_id": "1"
                                    }
                                  }
                                ],
                                "identifiers": {
                                  "id": "42"
                                },
                                "type": "person"
                              },
                              "properties": {
                                "action": {
                                  "type": "string",
                                  "description": "This operation deletes an object relationship from one or more people.",
                                  "enum": [
                                    "delete_relationships"
                                  ]
                                },
                                "cio_relationships": {
                                  "x-scalar-ignore": true,
                                  "type": "array",
                                  "description": "Each object in the array represents a relationship you want to add to, or remove from, a person.",
                                  "items": {
                                    "properties": {
                                      "identifiers": {
                                        "description": "The identifiers for a particular object. You can use either the `object_type_id` and `object_id` (where `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object) or the `cio_object_id`.",
                                        "oneOf": [
                                          {
                                            "title": "Object ID",
                                            "type": "object",
                                            "required": [
                                              "object_type_id",
                                              "object_id"
                                            ],
                                            "properties": {
                                              "object_id": {
                                                "type": "string",
                                                "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                                                "example": "acme"
                                              },
                                              "object_type_id": {
                                                "x-scalar-ignore": true,
                                                "type": "string",
                                                "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.",
                                                "example": "1"
                                              }
                                            }
                                          },
                                          {
                                            "title": "CIO Object ID",
                                            "type": "object",
                                            "required": [
                                              "cio_object_id"
                                            ],
                                            "properties": {
                                              "cio_object_id": {
                                                "type": "string",
                                                "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                                                "example": "obb7fd050101"
                                              }
                                            }
                                          }
                                        ]
                                      },
                                      "relationship_attributes": {
                                        "x-scalar-ignore": true,
                                        "type": "object",
                                        "description": "The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
                                        "additionalProperties": {
                                          "x-additionalPropertiesName": "Relationship Attributes"
                                        },
                                        "example": {
                                          "role": "admin"
                                        }
                                      }
                                    }
                                  }
                                },
                                "identifiers": {
                                  "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
                                  "oneOf": [
                                    {
                                      "title": "id",
                                      "type": "object",
                                      "required": [
                                        "id"
                                      ],
                                      "properties": {
                                        "id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                                          "example": "42"
                                        }
                                      }
                                    },
                                    {
                                      "title": "email",
                                      "type": "object",
                                      "required": [
                                        "email"
                                      ],
                                      "properties": {
                                        "email": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "The email address of the customer.",
                                          "example": "test@example.com"
                                        }
                                      }
                                    },
                                    {
                                      "title": "phone",
                                      "type": "object",
                                      "required": [
                                        "phone"
                                      ],
                                      "properties": {
                                        "phone": {
                                          "type": "string",
                                          "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                                          "example": "+14155552671"
                                        }
                                      }
                                    },
                                    {
                                      "title": "cio_id",
                                      "type": "object",
                                      "required": [
                                        "cio_id"
                                      ],
                                      "properties": {
                                        "cio_id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                                          "example": "a3000001"
                                        }
                                      }
                                    }
                                  ]
                                },
                                "type": {
                                  "description": "The operation modifies a person in Customer.io",
                                  "type": "string",
                                  "enum": [
                                    "person"
                                  ]
                                }
                              },
                              "required": [
                                "type",
                                "identifiers",
                                "action",
                                "cio_relationships"
                              ]
                            },
                            {
                              "title": "Person: Add device",
                              "description": "Assign devices to a person.",
                              "example": {
                                "action": "add_device",
                                "device": {
                                  "platform": "ios",
                                  "token": "a83b219c-e756-4c5b-a8e3-d1a5c5b2f3c1",
                                  "last_used": 1713484800
                                },
                                "identifiers": {
                                  "id": "42"
                                },
                                "type": "person"
                              },
                              "properties": {
                                "action": {
                                  "type": "string",
                                  "description": "Add a mobile device to a person's profile.",
                                  "enum": [
                                    "add_device"
                                  ]
                                },
                                "device": {
                                  "description": "Device properties collected by [Customer.io SDKs](/integrations/sdk/) unless `autoTrackDeviceAttributes` is disabled. You can reference them outside `attributes` in segments.",
                                  "properties": {
                                    "platform": {
                                      "type": "string",
                                      "enum": [
                                        "ios",
                                        "android"
                                      ],
                                      "description": "The device/messaging platform."
                                    },
                                    "token": {
                                      "description": "The device token.",
                                      "type": "string"
                                    },
                                    "attributes": {
                                      "type": "object",
                                      "description": "Attributes that you can reference to segment your audience—like a person's attributes, but specific to a device. These can be either the attributes defined below or custom key-value attributes.",
                                      "properties": {
                                        "_last_status": {
                                          "type": "string",
                                          "readOnly": true,
                                          "description": "The delivery status of the last message sent to the device—sent, bounced, or suppressed. An empty string indicates that that the device hasn't received a push yet.",
                                          "enum": [
                                            "",
                                            "bounced",
                                            "sent",
                                            "suppressed"
                                          ]
                                        },
                                        "app_identifier": {
                                          "type": "string",
                                          "description": "The app that the device belongs to—the **Bundle ID / App identifier** you entered with that app's push credentials. If you have more than one app, we use this attribute to send push notifications to the right app. A device without an app identifier receives push notifications you send to your [default app](/messaging/channels/push/getting-started/#the-default-app)."
                                        },
                                        "app_version": {
                                          "type": "string",
                                          "description": "The version of your app that a customer uses. You might target app versions to let people know when they need to update, or expose them to new features when they do."
                                        },
                                        "cio_sdk_version": {
                                          "type": "string",
                                          "description": "The version of the Customer.io SDK in the app."
                                        },
                                        "device_locale": {
                                          "type": "string",
                                          "description": "The device's [IETF language code](/journeys/channels/localization/getting-started/#supported-languages), such as `en-MX` or `es-ES`."
                                        },
                                        "device_model": {
                                          "type": "string",
                                          "description": "The model of the device a person uses."
                                        },
                                        "device_os": {
                                          "type": "string",
                                          "description": "The operating system, including the version, on the device."
                                        },
                                        "push_enabled": {
                                          "type": "string",
                                          "description": "If `\"true\"`, the device is opted-in and can receive push notifications.",
                                          "enum": [
                                            "true",
                                            "false"
                                          ]
                                        }
                                      },
                                      "additionalProperties": {
                                        "x-additionalPropertiesName": "Custom Device Attributes",
                                        "description": "Custom properties that you want to associate with the device.",
                                        "type": "string"
                                      }
                                    },
                                    "last_used": {
                                      "type": "integer",
                                      "format": "unix timestamp",
                                      "description": "The `timestamp` when you last identified this device. If you don't pass a timestamp when you add or update a device, we use the time of the request itself. Our SDKs identify a device when a person launches their app."
                                    }
                                  },
                                  "required": [
                                    "token",
                                    "platform"
                                  ]
                                },
                                "identifiers": {
                                  "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
                                  "oneOf": [
                                    {
                                      "title": "id",
                                      "type": "object",
                                      "required": [
                                        "id"
                                      ],
                                      "properties": {
                                        "id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                                          "example": "42"
                                        }
                                      }
                                    },
                                    {
                                      "title": "email",
                                      "type": "object",
                                      "required": [
                                        "email"
                                      ],
                                      "properties": {
                                        "email": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "The email address of the customer.",
                                          "example": "test@example.com"
                                        }
                                      }
                                    },
                                    {
                                      "title": "phone",
                                      "type": "object",
                                      "required": [
                                        "phone"
                                      ],
                                      "properties": {
                                        "phone": {
                                          "type": "string",
                                          "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                                          "example": "+14155552671"
                                        }
                                      }
                                    },
                                    {
                                      "title": "cio_id",
                                      "type": "object",
                                      "required": [
                                        "cio_id"
                                      ],
                                      "properties": {
                                        "cio_id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                                          "example": "a3000001"
                                        }
                                      }
                                    }
                                  ]
                                },
                                "type": {
                                  "description": "The operation modifies a person in Customer.io",
                                  "type": "string",
                                  "enum": [
                                    "person"
                                  ]
                                }
                              },
                              "required": [
                                "type",
                                "identifiers",
                                "action",
                                "device"
                              ]
                            },
                            {
                              "title": "Person: Delete device",
                              "description": "Delete devices that belong to a person.",
                              "example": {
                                "action": "delete_device",
                                "device": {
                                  "token": "a83b219c-e756-4c5b-a8e3-d1a5c5b2f3c1"
                                },
                                "identifiers": {
                                  "id": "42"
                                },
                                "type": "person"
                              },
                              "properties": {
                                "action": {
                                  "type": "string",
                                  "description": "Delete a device from a person's profile.",
                                  "enum": [
                                    "delete_device"
                                  ]
                                },
                                "device": {
                                  "description": "The device you want to remove.",
                                  "type": "object",
                                  "required": [
                                    "token"
                                  ],
                                  "properties": {
                                    "token": {
                                      "description": "The token of the device you want to remove.",
                                      "type": "string"
                                    }
                                  }
                                },
                                "identifiers": {
                                  "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
                                  "oneOf": [
                                    {
                                      "title": "id",
                                      "type": "object",
                                      "required": [
                                        "id"
                                      ],
                                      "properties": {
                                        "id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                                          "example": "42"
                                        }
                                      }
                                    },
                                    {
                                      "title": "email",
                                      "type": "object",
                                      "required": [
                                        "email"
                                      ],
                                      "properties": {
                                        "email": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "The email address of the customer.",
                                          "example": "test@example.com"
                                        }
                                      }
                                    },
                                    {
                                      "title": "phone",
                                      "type": "object",
                                      "required": [
                                        "phone"
                                      ],
                                      "properties": {
                                        "phone": {
                                          "type": "string",
                                          "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                                          "example": "+14155552671"
                                        }
                                      }
                                    },
                                    {
                                      "title": "cio_id",
                                      "type": "object",
                                      "required": [
                                        "cio_id"
                                      ],
                                      "properties": {
                                        "cio_id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                                          "example": "a3000001"
                                        }
                                      }
                                    }
                                  ]
                                },
                                "type": {
                                  "description": "The operation modifies a person in Customer.io",
                                  "type": "string",
                                  "enum": [
                                    "person"
                                  ]
                                }
                              },
                              "required": [
                                "type",
                                "identifiers",
                                "action",
                                "device"
                              ]
                            },
                            {
                              "title": "Person: Merge",
                              "example": {
                                "primary": {
                                  "id": "42"
                                },
                                "secondary": {
                                  "id": "known-user-456"
                                }
                              },
                              "type": "object",
                              "description": "Merges `secondary` into `primary`, then deletes `secondary`. The operation is not reversible, and `primary` must already exist. See [merging duplicate people](/journeys/people/manage/merge-people/).",
                              "required": [
                                "type",
                                "primary",
                                "secondary",
                                "action"
                              ],
                              "properties": {
                                "action": {
                                  "type": "string",
                                  "description": "Merges `secondary` into `primary`, then deletes `secondary`. Not reversible; see [merging duplicate people](/journeys/people/manage/merge-people/).",
                                  "enum": [
                                    "merge"
                                  ]
                                },
                                "primary": {
                                  "description": "The person who remains after the merge, identified by `id`, `email`, or `cio_id`. If email identifiers are disabled in [workspace settings](https://fly.customer.io/workspaces/last/settings/edit), use `id` or `cio_id`.",
                                  "oneOf": [
                                    {
                                      "title": "id",
                                      "type": "object",
                                      "required": [
                                        "id"
                                      ],
                                      "properties": {
                                        "id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                                          "example": "42"
                                        }
                                      }
                                    },
                                    {
                                      "title": "email",
                                      "type": "object",
                                      "required": [
                                        "email"
                                      ],
                                      "properties": {
                                        "email": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "The email address of the customer.",
                                          "example": "test@example.com"
                                        }
                                      }
                                    },
                                    {
                                      "title": "cio_id",
                                      "type": "object",
                                      "required": [
                                        "cio_id"
                                      ],
                                      "properties": {
                                        "cio_id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                                          "example": "a3000001"
                                        }
                                      }
                                    }
                                  ]
                                },
                                "secondary": {
                                  "description": "The person deleted after the merge, identified by `id`, `email`, or `cio_id`. If email identifiers are disabled in [workspace settings](https://fly.customer.io/workspaces/last/settings/edit), use `id` or `cio_id`.",
                                  "oneOf": [
                                    {
                                      "title": "id",
                                      "type": "object",
                                      "required": [
                                        "id"
                                      ],
                                      "properties": {
                                        "id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                                          "example": "42"
                                        }
                                      }
                                    },
                                    {
                                      "title": "email",
                                      "type": "object",
                                      "required": [
                                        "email"
                                      ],
                                      "properties": {
                                        "email": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "The email address of the customer.",
                                          "example": "test@example.com"
                                        }
                                      }
                                    },
                                    {
                                      "title": "cio_id",
                                      "type": "object",
                                      "required": [
                                        "cio_id"
                                      ],
                                      "properties": {
                                        "cio_id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                                          "example": "a3000001"
                                        }
                                      }
                                    }
                                  ]
                                },
                                "type": {
                                  "description": "The operation modifies a person in Customer.io",
                                  "type": "string",
                                  "enum": [
                                    "person"
                                  ]
                                }
                              }
                            },
                            {
                              "title": "Person: Suppress",
                              "description": "Suppress a person's identifier(s) in Customer.io, so that you can't message a person or add their identifiers back to your workspace. This is separate from suppressions performed by your email provider.",
                              "example": {
                                "action": "suppress",
                                "identifiers": {
                                  "id": "42"
                                },
                                "type": "person"
                              },
                              "properties": {
                                "action": {
                                  "type": "string",
                                  "description": "Suppress a person's identifier(s) in Customer.io, so that you can't message a person or add their identifiers back to your workspace. This is separate from suppressions performed by your email provider.",
                                  "enum": [
                                    "suppress"
                                  ]
                                },
                                "identifiers": {
                                  "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
                                  "oneOf": [
                                    {
                                      "title": "id",
                                      "type": "object",
                                      "required": [
                                        "id"
                                      ],
                                      "properties": {
                                        "id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                                          "example": "42"
                                        }
                                      }
                                    },
                                    {
                                      "title": "email",
                                      "type": "object",
                                      "required": [
                                        "email"
                                      ],
                                      "properties": {
                                        "email": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "The email address of the customer.",
                                          "example": "test@example.com"
                                        }
                                      }
                                    },
                                    {
                                      "title": "phone",
                                      "type": "object",
                                      "required": [
                                        "phone"
                                      ],
                                      "properties": {
                                        "phone": {
                                          "type": "string",
                                          "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                                          "example": "+14155552671"
                                        }
                                      }
                                    },
                                    {
                                      "title": "cio_id",
                                      "type": "object",
                                      "required": [
                                        "cio_id"
                                      ],
                                      "properties": {
                                        "cio_id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                                          "example": "a3000001"
                                        }
                                      }
                                    }
                                  ]
                                },
                                "type": {
                                  "description": "The operation modifies a person in Customer.io",
                                  "type": "string",
                                  "enum": [
                                    "person"
                                  ]
                                }
                              },
                              "required": [
                                "type",
                                "identifiers",
                                "action"
                              ]
                            },
                            {
                              "title": "Person: Unsuppress",
                              "description": "Unsuppress a person's identifier(s) in Customer.io, so that you can message a person or add their identifiers back to your workspace. This does not unsuppress addresses that were previously suppressed by your email provider.",
                              "example": {
                                "action": "unsuppress",
                                "identifiers": {
                                  "id": "42"
                                },
                                "type": "person"
                              },
                              "properties": {
                                "action": {
                                  "type": "string",
                                  "description": "Unsuppress a person's identifier(s) in Customer.io, so that you can message a person or add their identifiers back to your workspace. This does not unsuppress addresses that were previously suppressed by your email provider.",
                                  "enum": [
                                    "unsuppress"
                                  ]
                                },
                                "identifiers": {
                                  "description": "The person you want to perform an action for—one of `id`, `email`, `phone`, or `cio_id`. You cannot pass multiple identifiers. You can use `email` and `phone` only if they're enabled as identifiers in your [workspace settings](/accounts/workspaces/overview/#migrate-workspace).",
                                  "oneOf": [
                                    {
                                      "title": "id",
                                      "type": "object",
                                      "required": [
                                        "id"
                                      ],
                                      "properties": {
                                        "id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                                          "example": "42"
                                        }
                                      }
                                    },
                                    {
                                      "title": "email",
                                      "type": "object",
                                      "required": [
                                        "email"
                                      ],
                                      "properties": {
                                        "email": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "The email address of the customer.",
                                          "example": "test@example.com"
                                        }
                                      }
                                    },
                                    {
                                      "title": "phone",
                                      "type": "object",
                                      "required": [
                                        "phone"
                                      ],
                                      "properties": {
                                        "phone": {
                                          "type": "string",
                                          "description": "A person's phone number, in [E.164 format](https://en.wikipedia.org/wiki/E.164) (a leading `+` followed by up to 15 digits). Available only when `phone` is enabled as an identifier in your workspace.",
                                          "example": "+14155552671"
                                        }
                                      }
                                    },
                                    {
                                      "title": "cio_id",
                                      "type": "object",
                                      "required": [
                                        "cio_id"
                                      ],
                                      "properties": {
                                        "cio_id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                                          "example": "a3000001"
                                        }
                                      }
                                    }
                                  ]
                                },
                                "type": {
                                  "description": "The operation modifies a person in Customer.io",
                                  "type": "string",
                                  "enum": [
                                    "person"
                                  ]
                                }
                              },
                              "required": [
                                "type",
                                "identifiers",
                                "action"
                              ]
                            }
                          ],
                          "discriminator": {
                            "propertyName": "action"
                          }
                        },
                        {
                          "title": "Object",
                          "anyOf": [
                            {
                              "example": {
                                "action": "identify",
                                "identifiers": {
                                  "object_id": "acme",
                                  "object_type_id": "1"
                                },
                                "type": "object",
                                "attributes": {
                                  "name": "Acme Corp",
                                  "plan": "enterprise",
                                  "seats": 50
                                }
                              },
                              "type": "object",
                              "title": "Object: Identify",
                              "description": "The `action` determines the type of operation you want to perform with an object. If `identifiers.object_id` does not exist, we'll create a new object; if it exists, we'll update the object accordingly.\n",
                              "properties": {
                                "action": {
                                  "type": "string",
                                  "description": "Indicates that the operation will `identify` the item of the specified `type`.",
                                  "enum": [
                                    "identify"
                                  ]
                                },
                                "identifiers": {
                                  "description": "Custom object identifiers. To create, provide `object_type_id` and `object_id`; to update, use those values or `cio_object_id`.",
                                  "oneOf": [
                                    {
                                      "title": "Object ID (create and update)",
                                      "type": "object",
                                      "required": [
                                        "object_type_id",
                                        "object_id"
                                      ],
                                      "properties": {
                                        "object_id": {
                                          "type": "string",
                                          "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                                          "example": "acme"
                                        },
                                        "object_type_id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "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.",
                                          "example": "1"
                                        }
                                      }
                                    },
                                    {
                                      "title": "CIO Object ID (updates only)",
                                      "type": "object",
                                      "required": [
                                        "cio_object_id"
                                      ],
                                      "properties": {
                                        "cio_object_id": {
                                          "type": "string",
                                          "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                                          "example": "obb7fd050101"
                                        }
                                      }
                                    }
                                  ]
                                },
                                "type": {
                                  "description": "The operation modifies a single object—non person data.",
                                  "type": "string",
                                  "enum": [
                                    "object"
                                  ]
                                },
                                "attributes": {
                                  "x-scalar-ignore": true,
                                  "type": "object",
                                  "description": "Data that belongs to the object. Pass `null` or an empty string to remove an attribute. Some attributes have special meaning—see [reserved attributes](/journeys/objects-data/objects/create/#reserved-attributes)."
                                },
                                "cio_relationships": {
                                  "x-scalar-ignore": true,
                                  "type": "array",
                                  "description": "The people you want to associate with an object. Each object in the array represents a person.",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "identifiers": {
                                        "oneOf": [
                                          {
                                            "title": "id",
                                            "type": "object",
                                            "properties": {
                                              "id": {
                                                "x-scalar-ignore": true,
                                                "type": "string",
                                                "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                                                "example": "42"
                                              }
                                            }
                                          },
                                          {
                                            "title": "email",
                                            "type": "object",
                                            "properties": {
                                              "email": {
                                                "x-scalar-ignore": true,
                                                "type": "string",
                                                "description": "The email address of the customer.",
                                                "example": "test@example.com"
                                              }
                                            }
                                          },
                                          {
                                            "title": "cio_id",
                                            "type": "object",
                                            "properties": {
                                              "cio_id": {
                                                "x-scalar-ignore": true,
                                                "type": "string",
                                                "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                                                "example": "a3000001"
                                              }
                                            }
                                          }
                                        ]
                                      },
                                      "relationship_attributes": {
                                        "type": "object",
                                        "description": "The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
                                        "additionalProperties": {
                                          "x-additionalPropertiesName": "Relationship Attributes"
                                        }
                                      }
                                    },
                                    "example": {
                                      "identifiers": {
                                        "id": "42"
                                      },
                                      "relationship_attributes": {
                                        "role": "admin",
                                        "date_created": 1702480414
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "type",
                                "identifiers",
                                "action"
                              ]
                            },
                            {
                              "title": "Object: Identify anonymous",
                              "description": "The `identify_anonymous` action lets you relate an object to a person who hasn't yet identified themselves by anonymous_id. When you identify the person, their anonymous relationship will carry over to the identified profile.",
                              "example": {
                                "action": "identify_anonymous",
                                "identifiers": {
                                  "object_id": "acme",
                                  "object_type_id": "1"
                                },
                                "type": "object",
                                "anonymous_id": "anon-abc-123"
                              },
                              "properties": {
                                "action": {
                                  "type": "string",
                                  "description": "Indicates that the operation will `identify` the item of the specified `type` and relate it to an `anonymous_id`.",
                                  "enum": [
                                    "identify_anonymous"
                                  ]
                                },
                                "identifiers": {
                                  "description": "Custom object identifiers. To create, provide `object_type_id` and `object_id`; to update, use those values or `cio_object_id`.",
                                  "oneOf": [
                                    {
                                      "title": "Object ID (create and update)",
                                      "type": "object",
                                      "required": [
                                        "object_type_id",
                                        "object_id"
                                      ],
                                      "properties": {
                                        "object_id": {
                                          "type": "string",
                                          "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                                          "example": "acme"
                                        },
                                        "object_type_id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "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.",
                                          "example": "1"
                                        }
                                      }
                                    },
                                    {
                                      "title": "CIO Object ID (updates only)",
                                      "type": "object",
                                      "required": [
                                        "cio_object_id"
                                      ],
                                      "properties": {
                                        "cio_object_id": {
                                          "type": "string",
                                          "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                                          "example": "obb7fd050101"
                                        }
                                      }
                                    }
                                  ]
                                },
                                "type": {
                                  "description": "The operation modifies a single object—non person data.",
                                  "type": "string",
                                  "enum": [
                                    "object"
                                  ]
                                },
                                "attributes": {
                                  "x-scalar-ignore": true,
                                  "type": "object",
                                  "description": "Data that belongs to the object. Pass `null` or an empty string to remove an attribute. Some attributes have special meaning—see [reserved attributes](/journeys/objects-data/objects/create/#reserved-attributes)."
                                },
                                "cio_relationships": {
                                  "type": "array",
                                  "description": "The anonymous people you want to associate with an object. Each object in the array contains an `anonymous_id` representing a person you haven't yet identified by `id` or `email`.",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "identifiers": {
                                        "type": "object",
                                        "properties": {
                                          "anonymous_id": {
                                            "x-scalar-ignore": true,
                                            "type": "string",
                                            "description": "An identifier for an anonymous event, like a cookie. If set as an attribute on a person, any events bearing the same anonymous value are associated with this person. This value must be unique and is not reusable."
                                          }
                                        }
                                      },
                                      "relationship_attributes": {
                                        "type": "object",
                                        "description": "Coming October 2023 - The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship."
                                      }
                                    }
                                  }
                                }
                              },
                              "required": [
                                "type",
                                "identifiers",
                                "action"
                              ]
                            },
                            {
                              "title": "Object: Delete",
                              "description": "Delete an object. This also removes relationships from people.\n",
                              "example": {
                                "action": "delete",
                                "type": "object",
                                "identifiers": {
                                  "object_id": "acme",
                                  "object_type_id": "1"
                                }
                              },
                              "properties": {
                                "action": {
                                  "type": "string",
                                  "description": "Indicates that the operation will `delete` the item of the specified `type`.",
                                  "enum": [
                                    "delete"
                                  ]
                                },
                                "type": {
                                  "description": "The operation modifies a single object—non person data.",
                                  "type": "string",
                                  "enum": [
                                    "object"
                                  ]
                                },
                                "identifiers": {
                                  "description": "The identifiers for a particular object. You can use either the `object_type_id` and `object_id` (where `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object) or the `cio_object_id`.",
                                  "oneOf": [
                                    {
                                      "title": "Object ID",
                                      "type": "object",
                                      "required": [
                                        "object_type_id",
                                        "object_id"
                                      ],
                                      "properties": {
                                        "object_id": {
                                          "type": "string",
                                          "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                                          "example": "acme"
                                        },
                                        "object_type_id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "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.",
                                          "example": "1"
                                        }
                                      }
                                    },
                                    {
                                      "title": "CIO Object ID",
                                      "type": "object",
                                      "required": [
                                        "cio_object_id"
                                      ],
                                      "properties": {
                                        "cio_object_id": {
                                          "type": "string",
                                          "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                                          "example": "obb7fd050101"
                                        }
                                      }
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "type",
                                "action"
                              ]
                            },
                            {
                              "title": "Object: Add relationships",
                              "description": "Add relationships between an object and one or more people.",
                              "example": {
                                "action": "add_relationships",
                                "cio_relationships": [
                                  {
                                    "identifiers": {
                                      "id": "42"
                                    },
                                    "relationship_attributes": {
                                      "role": "admin"
                                    }
                                  }
                                ],
                                "type": "object",
                                "identifiers": {
                                  "object_id": "acme",
                                  "object_type_id": "1"
                                }
                              },
                              "properties": {
                                "action": {
                                  "type": "string",
                                  "description": "This operation associates an object with one or more people.",
                                  "enum": [
                                    "add_relationships"
                                  ]
                                },
                                "cio_relationships": {
                                  "x-scalar-ignore": true,
                                  "type": "array",
                                  "description": "The people you want to associate with an object. Each object in the array represents a person.",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "identifiers": {
                                        "oneOf": [
                                          {
                                            "title": "id",
                                            "type": "object",
                                            "properties": {
                                              "id": {
                                                "x-scalar-ignore": true,
                                                "type": "string",
                                                "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                                                "example": "42"
                                              }
                                            }
                                          },
                                          {
                                            "title": "email",
                                            "type": "object",
                                            "properties": {
                                              "email": {
                                                "x-scalar-ignore": true,
                                                "type": "string",
                                                "description": "The email address of the customer.",
                                                "example": "test@example.com"
                                              }
                                            }
                                          },
                                          {
                                            "title": "cio_id",
                                            "type": "object",
                                            "properties": {
                                              "cio_id": {
                                                "x-scalar-ignore": true,
                                                "type": "string",
                                                "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                                                "example": "a3000001"
                                              }
                                            }
                                          }
                                        ]
                                      },
                                      "relationship_attributes": {
                                        "type": "object",
                                        "description": "The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
                                        "additionalProperties": {
                                          "x-additionalPropertiesName": "Relationship Attributes"
                                        }
                                      }
                                    },
                                    "example": {
                                      "identifiers": {
                                        "id": "42"
                                      },
                                      "relationship_attributes": {
                                        "role": "admin",
                                        "date_created": 1702480414
                                      }
                                    }
                                  }
                                },
                                "type": {
                                  "description": "The operation modifies a single object—non person data.",
                                  "type": "string",
                                  "enum": [
                                    "object"
                                  ]
                                },
                                "identifiers": {
                                  "description": "The identifiers for a particular object. You can use either the `object_type_id` and `object_id` (where `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object) or the `cio_object_id`.",
                                  "oneOf": [
                                    {
                                      "title": "Object ID",
                                      "type": "object",
                                      "required": [
                                        "object_type_id",
                                        "object_id"
                                      ],
                                      "properties": {
                                        "object_id": {
                                          "type": "string",
                                          "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                                          "example": "acme"
                                        },
                                        "object_type_id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "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.",
                                          "example": "1"
                                        }
                                      }
                                    },
                                    {
                                      "title": "CIO Object ID",
                                      "type": "object",
                                      "required": [
                                        "cio_object_id"
                                      ],
                                      "properties": {
                                        "cio_object_id": {
                                          "type": "string",
                                          "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                                          "example": "obb7fd050101"
                                        }
                                      }
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "type",
                                "action",
                                "cio_relationships"
                              ]
                            },
                            {
                              "title": "Object: Delete relationships",
                              "description": "Delete relationships between an object and one or more people.",
                              "example": {
                                "action": "delete_relationships",
                                "cio_relationships": [
                                  {
                                    "identifiers": {
                                      "id": "42"
                                    }
                                  }
                                ],
                                "type": "object",
                                "identifiers": {
                                  "object_id": "acme",
                                  "object_type_id": "1"
                                }
                              },
                              "properties": {
                                "action": {
                                  "type": "string",
                                  "description": "This operation deletes an object relationship from one or more people.",
                                  "enum": [
                                    "delete_relationships"
                                  ]
                                },
                                "cio_relationships": {
                                  "x-scalar-ignore": true,
                                  "type": "array",
                                  "description": "The people you want to associate with an object. Each object in the array represents a person.",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "identifiers": {
                                        "oneOf": [
                                          {
                                            "title": "id",
                                            "type": "object",
                                            "properties": {
                                              "id": {
                                                "x-scalar-ignore": true,
                                                "type": "string",
                                                "description": "The ID of a customer profile, analogous to a \"person\" in the UI.",
                                                "example": "42"
                                              }
                                            }
                                          },
                                          {
                                            "title": "email",
                                            "type": "object",
                                            "properties": {
                                              "email": {
                                                "x-scalar-ignore": true,
                                                "type": "string",
                                                "description": "The email address of the customer.",
                                                "example": "test@example.com"
                                              }
                                            }
                                          },
                                          {
                                            "title": "cio_id",
                                            "type": "object",
                                            "properties": {
                                              "cio_id": {
                                                "x-scalar-ignore": true,
                                                "type": "string",
                                                "description": "A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.",
                                                "example": "a3000001"
                                              }
                                            }
                                          }
                                        ]
                                      },
                                      "relationship_attributes": {
                                        "type": "object",
                                        "description": "The attributes associated with a relationship. Passing null or an empty string removes the attribute from the relationship.\n",
                                        "additionalProperties": {
                                          "x-additionalPropertiesName": "Relationship Attributes"
                                        }
                                      }
                                    },
                                    "example": {
                                      "identifiers": {
                                        "id": "42"
                                      },
                                      "relationship_attributes": {
                                        "role": "admin",
                                        "date_created": 1702480414
                                      }
                                    }
                                  }
                                },
                                "type": {
                                  "description": "The operation modifies a single object—non person data.",
                                  "type": "string",
                                  "enum": [
                                    "object"
                                  ]
                                },
                                "identifiers": {
                                  "description": "The identifiers for a particular object. You can use either the `object_type_id` and `object_id` (where `object_type_id` represents the type of object and the `object_id` is the individual identifier for the object) or the `cio_object_id`.",
                                  "oneOf": [
                                    {
                                      "title": "Object ID",
                                      "type": "object",
                                      "required": [
                                        "object_type_id",
                                        "object_id"
                                      ],
                                      "properties": {
                                        "object_id": {
                                          "type": "string",
                                          "description": "The unique identifier for an object. If you use an `object_id` that already exists, we'll update the object accordingly.",
                                          "example": "acme"
                                        },
                                        "object_type_id": {
                                          "x-scalar-ignore": true,
                                          "type": "string",
                                          "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.",
                                          "example": "1"
                                        }
                                      }
                                    },
                                    {
                                      "title": "CIO Object ID",
                                      "type": "object",
                                      "required": [
                                        "cio_object_id"
                                      ],
                                      "properties": {
                                        "cio_object_id": {
                                          "type": "string",
                                          "description": "A unique value that Customer.io sets for an object when you create it. This ID is immutable.",
                                          "example": "obb7fd050101"
                                        }
                                      }
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "type",
                                "action",
                                "cio_relationships"
                              ]
                            }
                          ],
                          "discriminator": {
                            "propertyName": "action"
                          }
                        },
                        {
                          "title": "Delivery: Event",
                          "description": "The \"delivery\" type lets you attribute metrics to messages that don't self-report back to Customer.io, like push and in-app notifications.",
                          "example": {
                            "action": "event",
                            "attributes": {
                              "device_token": "a83b219c-e756-4c5b-a8e3-d1a5c5b2f3c1"
                            },
                            "identifiers": {
                              "id": "RPIyMTM6OjEyMzQ="
                            },
                            "name": "opened",
                            "type": "delivery"
                          },
                          "type": "object",
                          "required": [
                            "type",
                            "action",
                            "identifiers",
                            "name",
                            "attributes"
                          ],
                          "properties": {
                            "action": {
                              "type": "string",
                              "description": "An `event` action indicates a delivery event. Use the `name` to determine the specific metric that you want to attribute to this delivery.",
                              "enum": [
                                "event"
                              ]
                            },
                            "attributes": {
                              "type": "object",
                              "required": [
                                "device_token"
                              ],
                              "description": "Contains information about the delivery and the individual who received the message.",
                              "properties": {
                                "device_token": {
                                  "type": "string",
                                  "description": "The device that received the message."
                                }
                              }
                            },
                            "identifiers": {
                              "type": "object",
                              "description": "Contains identifiers for the delivery itself.",
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "description": "The `delivery_id` for the delivery that you want to attribute metrics to."
                                }
                              }
                            },
                            "name": {
                              "type": "string",
                              "description": "The name of the metric you want to attribute to this \"delivery\".",
                              "enum": [
                                "opened",
                                "converted",
                                "delivered"
                              ]
                            },
                            "type": {
                              "type": "string",
                              "description": "The \"delivery\" type lets you attribute metrics to messages that don't self-report back to Customer.io, like push and in-app notifications.",
                              "enum": [
                                "delivery"
                              ]
                            }
                          }
                        }
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A successful request returns an empty object response."
          },
          "207": {
            "description": "At least one object in the batch was invalid; all other requests are accepted. This response contains a list of errors for the invalid objects in the batch.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "errors": {
                      "type": "array",
                      "description": "An array of objects, where each object represents an error. The `batch_index` field for each object is the 0-indexed position of the failing object in your request.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "batch_index": {
                            "type": "integer",
                            "description": "The 0-indexed position of the failing object in your request."
                          },
                          "field": {
                            "type": "string",
                            "description": "The field containing the error."
                          },
                          "message": {
                            "type": "string",
                            "description": "A detailed description of the error in the offending field."
                          },
                          "reason": {
                            "type": "string",
                            "description": "The reason for the error."
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "The entire request was malformed or invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "errors": {
                      "x-scalar-ignore": true,
                      "type": "array",
                      "description": "An array of errors, where each object represents a different error.",
                      "items": {
                        "type": "object",
                        "properties": {
                          "field": {
                            "type": "string",
                            "description": "The field containing the error."
                          },
                          "message": {
                            "type": "string",
                            "description": "A detailed description of the error in the offending field."
                          },
                          "reason": {
                            "type": "string",
                            "description": "The reason for the error."
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized request. Make sure that you provided the right credentials."
          }
        },
        "x-codeSamples": [
          {
            "lang": "json",
            "label": "JSON",
            "source": "{\n  \"batch\": [\n    {\n      \"action\": \"identify\",\n      \"attributes\": {\n        \"first_name\": \"Jane\",\n        \"last_name\": \"Doe\",\n        \"plan\": \"premium\"\n      },\n      \"identifiers\": {\n        \"id\": \"42\"\n      },\n      \"type\": \"person\"\n    },\n    {\n      \"action\": \"identify\",\n      \"attributes\": {\n        \"name\": \"Acme Corp\",\n        \"plan\": \"enterprise\",\n        \"seats\": 50\n      },\n      \"identifiers\": {\n        \"object_type_id\": \"1\",\n        \"object_id\": \"acme\"\n      },\n      \"type\": \"object\"\n    },\n    {\n      \"action\": \"add_relationships\",\n      \"identifiers\": {\n        \"object_type_id\": \"1\",\n        \"object_id\": \"acme\"\n      },\n      \"type\": \"object\",\n      \"cio_relationships\": [\n        {\n          \"identifiers\": {\n            \"id\": \"42\"\n          },\n          \"relationship_attributes\": {\n            \"role\": \"admin\"\n          }\n        }\n      ]\n    }\n  ]\n}"
          }
        ]
      }
    }
  }
}