{
  "components": {
    "schemas": {
      "common_utm_properties": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "UTM Tracking Properties",
        "properties": {
          "utm_campaign": {
            "type": "string",
            "default": "$.context.campaign.name"
          },
          "utm_content": {
            "type": "string",
            "default": "$.context.campaign.content"
          },
          "utm_medium": {
            "type": "string",
            "default": "$.context.campaign.medium"
          },
          "utm_source": {
            "type": "string",
            "default": "$.context.campaign.source"
          },
          "utm_term": {
            "type": "string",
            "default": "$.context.campaign.term"
          }
        }
      },
      "common_referrer": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "Referrer url",
        "default": "$.context.page.referrer"
      },
      "app_name": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The name of your application.",
        "default": "$.context.app.name"
      },
      "app_namespace": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The namespace of your application.",
        "default": "$.context.app.namespace"
      },
      "app_build": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The current build of your application.",
        "default": "$.context.app.build"
      },
      "app_version": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The current version of your application.",
        "default": "$.context.app.version"
      },
      "os_name": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The name of the mobile operating system or browser that the user is using.",
        "default": "$.context.os.name"
      },
      "os_version": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The version of the mobile operating system or browser the user is using.",
        "default": "$.context.os.version"
      },
      "device_id": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "A unique identifier for the device the user is using.",
        "default": "$.context.device.id"
      },
      "device_type": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The type of the user's device.",
        "default": "$.context.device.type"
      },
      "device_name": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The name of the user's device.",
        "default": "$.context.device.name"
      },
      "device_manufacturer": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The device manufacturer that the user is using.",
        "default": "$.context.device.manufacturer"
      },
      "device_model": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The device model that the user is using.",
        "default": "$.context.device.model"
      },
      "bluetooth": {
        "x-scalar-ignore": true,
        "type": "boolean",
        "description": "Whether bluetooth is enabled.",
        "default": "$.context.network.bluetooth"
      },
      "carrier": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The carrier that the user is using.",
        "default": "$.context.network.carrier"
      },
      "cellular": {
        "x-scalar-ignore": true,
        "type": "boolean",
        "description": "Whether cellular is enabled.",
        "default": "$.context.network.cellular"
      },
      "wifi": {
        "x-scalar-ignore": true,
        "type": "boolean",
        "description": "Set to true if user’s device has an active, available Wifi connection, false if not.",
        "default": "$.context.network.wifi"
      },
      "experiment_viewed": {
        "title": "A/B Test: Experiment Viewed\n",
        "type": "object",
        "properties": {
          "experiment_id": {
            "type": "string",
            "description": "The ID of the A/B test."
          },
          "experiment_name": {
            "type": "string",
            "description": "The A/B test’s human-readable name."
          },
          "variation_id": {
            "type": "string",
            "description": "The ID of the individual test variant."
          },
          "variation_name": {
            "type": "string",
            "description": "The A/B test variant's human-readable name."
          }
        }
      },
      "amplitude_set": {
        "x-scalar-ignore": true,
        "description": "Set these properties once or with every event depending on the key. Relevant to AJS2.",
        "properties": {
          "initial_referrer": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "Referrer url",
            "default": "$.context.page.referrer"
          },
          "utm_campaign": {
            "type": "string",
            "default": "$.context.campaign.name"
          },
          "utm_content": {
            "type": "string",
            "default": "$.context.campaign.content"
          },
          "utm_medium": {
            "type": "string",
            "default": "$.context.campaign.medium"
          },
          "utm_source": {
            "type": "string",
            "default": "$.context.campaign.source"
          },
          "utm_term": {
            "type": "string",
            "default": "$.context.campaign.term"
          }
        }
      },
      "amplitude_min_id_length": {
        "x-scalar-ignore": true,
        "type": "integer",
        "description": "Amplitude has a default minimum id length of 5 characters for `user_id` and `device_id` fields. This field allows the minimum to be overridden to allow shorter id lengths."
      },
      "amplitude_groups": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "Groups of users for the event as an event-level group. You can only track up to 5 groups. **Note:** This Amplitude feature is only available to Enterprise customers who have purchased the Accounts add-on."
      },
      "amplitude_user_properties": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "Additional data tied to the user in Amplitude. Each distinct value appears as a user segment in Amplitude. object depth cannot not exceed 40 layers. Date values are transformed to string strings.",
        "default": "$.traits"
      },
      "amplitude_user_id": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "A unique identifier for a user. If your call references user ID you haven't added to Amplitude yet, then the user tied to that ID will not be marked \"new\" until their first event. Required unless device ID is present.",
        "default": "$.userId"
      },
      "amplitude_device_id": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "A device identifier, like the Identifier for Vendor (IDFV) on iOS. Required unless the request includes a `user_id`.\n",
        "default": "coalesce($.context.device.id, $.anonymousId)"
      },
      "amplitude_common_event": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "adid": {
            "type": "string",
            "description": "Google Play Services advertising ID. _(Android)_",
            "default": "coalesce($.context.device.advertisingId, $.context.device.idfa)"
          },
          "android_id": {
            "type": "string",
            "description": "Android ID (not the advertising ID). _(Android)_"
          },
          "app_version": {
            "type": "string",
            "description": "The current version of your application.",
            "default": "$.context.app.version"
          },
          "carrier": {
            "type": "string",
            "description": "The carrier that the user is using.",
            "default": "$.context.network.carrier"
          },
          "city": {
            "type": "string",
            "description": "The current city of the user.",
            "default": "$.context.location.city"
          },
          "country": {
            "type": "string",
            "description": "The current country of the user.",
            "default": "$.context.location.country"
          },
          "device_brand": {
            "type": "string",
            "description": "The device brand that the user is using.",
            "default": "$.context.device.brand"
          },
          "device_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A device identifier, like the Identifier for Vendor (IDFV) on iOS. Required unless the request includes a `user_id`.\n",
            "default": "coalesce($.context.device.id, $.anonymousId)"
          },
          "device_manufacturer": {
            "type": "string",
            "description": "The device manufacturer that the user is using.",
            "default": "$.context.device.manufacturer"
          },
          "device_model": {
            "type": "string",
            "description": "The device model that the user is using.",
            "default": "$.context.device.model"
          },
          "dma": {
            "type": "string",
            "description": "The current Designated Market Area of the user."
          },
          "event_id": {
            "type": "integer",
            "description": "An incrementing counter to distinguish events with the same user ID and timestamp from each other. Amplitude recommends you send an event ID, increasing over time, especially if you expect events to occur simultanenously."
          },
          "event_properties": {
            "type": "object",
            "description": "An object of key-value pairs that represent additional data to be sent along with the event. You can store property values in an array, but note that Amplitude only supports one-dimensional arrays. Date values are transformed into string values. object depth may not exceed 40 layers.",
            "default": "$.properties"
          },
          "event_type": {
            "type": "string",
            "description": "A unique identifier for your event.",
            "default": "$.event"
          },
          "groups": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "Groups of users for the event as an event-level group. You can only track up to 5 groups. **Note:** This Amplitude feature is only available to Enterprise customers who have purchased the Accounts add-on."
          },
          "idfa": {
            "type": "string",
            "description": "Identifier for Advertiser. _(iOS)_",
            "default": "coalesce($.context.device.advertisingId, $.context.device.idfa)"
          },
          "idfv": {
            "type": "string",
            "description": "Identifier for Vendor. _(iOS)_",
            "default": "$.context.device.id"
          },
          "insert_id": {
            "type": "string",
            "description": "Amplitude will deduplicate subsequent events sent with this ID we have already seen before within the past 7 days. Amplitude recommends generating a UUID or using some combination of device ID, user ID, event type, event ID, and time."
          },
          "ip": {
            "type": "string",
            "description": "The IP address of the user. Use \"$remote\" to use the IP address on the upload request. Amplitude will use the IP address to reverse lookup a user's location (city, country, region, and DMA). Amplitude has the ability to drop the location and IP address from events once it reaches our servers. You can submit a request to Amplitude's platform specialist team here to configure this for you.",
            "default": "$.context.ip"
          },
          "language": {
            "type": "string",
            "description": "The language set by the user.",
            "default": "$.context.locale"
          },
          "library": {
            "type": "string",
            "description": "The name of the library that generated the event.",
            "default": "$.context.library.name"
          },
          "location_lat": {
            "type": "number",
            "description": "The current Latitude of the user.",
            "default": "$.context.location.latitude"
          },
          "location_lng": {
            "type": "number",
            "description": "The current Longitude of the user.",
            "default": "$.context.location.longitude"
          },
          "os_name": {
            "type": "string",
            "description": "The name of the mobile operating system or browser that the user is using.",
            "default": "$.context.os.name"
          },
          "os_version": {
            "type": "string",
            "description": "The version of the mobile operating system or browser the user is using.",
            "default": "$.context.os.version"
          },
          "platform": {
            "type": "string",
            "description": "Platform of the device.",
            "default": "$.context.device.type"
          },
          "price": {
            "type": "number",
            "description": "The price of the item purchased. Required for revenue data if the revenue field is not sent. You can use negative values to indicate refunds.",
            "default": "$.properties.price"
          },
          "productId": {
            "type": "string",
            "description": "An identifier for the item purchased. You must send a price and quantity or revenue with this field.",
            "default": "$.properties.productId"
          },
          "products": {
            "type": "array",
            "description": "The list of products purchased, where each object in the array represents an individual product.",
            "default": "$.properties.products",
            "items": {
              "type": "object",
              "description": "An item that a person purchased.",
              "properties": {
                "price": {
                  "type": "number",
                  "description": "The product's price.",
                  "default": "price"
                },
                "productId": {
                  "type": "string",
                  "description": "The product ID, like a SKU or another value unique to the specific product.",
                  "default": "productId"
                },
                "quantity": {
                  "type": "integer",
                  "description": "The quantity of the product in the order.",
                  "default": "quantity"
                },
                "revenue": {
                  "type": "number",
                  "description": "Revenue from the product.",
                  "default": "revenue"
                },
                "revenueType": {
                  "type": "string",
                  "description": "The type of revenue.",
                  "default": "revenueType"
                }
              }
            }
          },
          "quantity": {
            "type": "integer",
            "description": "The quantity of the item purchased. Defaults to 1 if not specified.",
            "default": "$.properties.quantity"
          },
          "region": {
            "type": "string",
            "description": "The current region of the user.",
            "default": "$.context.location.region"
          },
          "revenue": {
            "type": "number",
            "description": "Revenue = price * quantity. If you send all 3 fields of price, quantity, and revenue, then (price * quantity) will be used as the revenue value. You can use negative values to indicate refunds. **Note:** You will need to explicitly set this if you are using the Amplitude in cloud-mode.",
            "default": "$.properties.revenue"
          },
          "revenueType": {
            "type": "string",
            "description": "The type of revenue for the item purchased. You must send a price and quantity or revenue with this field.",
            "default": "$.properties.revenueType"
          },
          "session_id": {
            "type": "string",
            "format": "datetime",
            "description": "The start time of the session, necessary if you want to associate events with a particular system. To use automatic Amplitude session tracking in browsers, enable Analytics 2.0 on your connected source.",
            "default": "$.integrations.Actions Amplitude.session_id"
          },
          "time": {
            "type": "string",
            "format": "datetime",
            "description": "The timestamp of the event. If time is not sent with the event, it will be set to the request upload time.",
            "default": "$.timestamp"
          },
          "user_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique identifier for a user. If your call references user ID you haven't added to Amplitude yet, then the user tied to that ID will not be marked \"new\" until their first event. Required unless device ID is present.",
            "default": "$.userId"
          },
          "user_properties": {
            "type": "object",
            "description": "An object of key-value pairs that represent additional data tied to the user. You can store property values in an array, but note that Amplitude only supports one-dimensional arrays. Date values are transformed into string values. object depth may not exceed 40 layers.",
            "default": "$.traits"
          }
        }
      },
      "amplitude_map_user": {
        "x-tags": [
          "Amplitude Events"
        ],
        "x-scalar-ignore": true,
        "description": "Merge two users together that would otherwise have different User IDs tracked in Amplitude.",
        "type": "object",
        "properties": {
          "global_user_id": {
            "type": "string",
            "description": "The Global User ID to associate with the User ID.",
            "default": "$.userId"
          },
          "min_id_length": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "Amplitude has a default minimum id length of 5 characters for `user_id` and `device_id` fields. This field allows the minimum to be overridden to allow shorter id lengths."
          },
          "user_id": {
            "type": "string",
            "description": "The User ID to be associated.",
            "default": "$.previousId"
          }
        }
      },
      "amplitude_identify_user": {
        "x-tags": [
          "Amplitude Events"
        ],
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "app_version": {
            "type": "string",
            "description": "Version of the app the user is on.",
            "default": "$.context.app.version"
          },
          "carrier": {
            "type": "string",
            "description": "The user's mobile carrier.",
            "default": "$.context.network.carrier"
          },
          "city": {
            "type": "string",
            "description": "The city in which the user is located.",
            "default": "$.context.location.city"
          },
          "country": {
            "type": "string",
            "description": "The country in which the user is located.",
            "default": "$.context.location.country"
          },
          "device_brand": {
            "type": "string",
            "description": "The brand of user's the device.",
            "default": "$.context.device.brand"
          },
          "device_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A device identifier, like the Identifier for Vendor (IDFV) on iOS. Required unless the request includes a `user_id`.\n",
            "default": "coalesce($.context.device.id, $.anonymousId)"
          },
          "device_manufacturer": {
            "type": "string",
            "description": "The manufacturer of the user's device.",
            "default": "$.context.device.manufacturer"
          },
          "device_model": {
            "type": "string",
            "description": "The model of the user's device.",
            "default": "$.context.device.model"
          },
          "dma": {
            "type": "string",
            "description": "The Designated Market Area in which the user is located."
          },
          "groups": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "Groups of users for the event as an event-level group. You can only track up to 5 groups. **Note:** This Amplitude feature is only available to Enterprise customers who have purchased the Accounts add-on."
          },
          "insert_id": {
            "type": "string",
            "description": "Amplitude will deduplicate subsequent events sent with this ID we have already seen before within the past 7 days. Amplitude recommends generating a UUID or using some combination of device ID, user ID, event type, event ID, and time."
          },
          "language": {
            "type": "string",
            "description": "Language the user has set on their device or browser.",
            "default": "$.context.locale"
          },
          "library": {
            "type": "string",
            "description": "The name of the library that generated the event.",
            "default": "$.context.library.name"
          },
          "min_id_length": {
            "type": "integer",
            "description": "Amplitude has a default minimum id length of 5 characters for `user_id`` and `device_id`` fields. This field allows the minimum to be overridden to allow shorter id lengths."
          },
          "os_name": {
            "type": "string",
            "description": "The mobile operating system or browser of the user's device.",
            "default": "$.context.os.name"
          },
          "os_version": {
            "type": "string",
            "description": "The version of the mobile operating system or browser of the user's device.",
            "default": "$.context.os.version"
          },
          "paying": {
            "type": "boolean",
            "description": "Whether the user is paying or not."
          },
          "platform": {
            "type": "string",
            "description": "The platform of the user's device.",
            "default": "$.context.device.type"
          },
          "referrer": {
            "type": "string",
            "description": "The referrer of a web request. Sent to Amplitude as both last touch “referrer” and first touch “initial_referrer”",
            "default": "$.context.page.referrer"
          },
          "region": {
            "type": "string",
            "description": "The geographical region in which the user is located.",
            "default": "$.context.location.region"
          },
          "start_version": {
            "type": "string",
            "description": "The version of the app the user was first on."
          },
          "user_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique identifier for a user. If your call references user ID you haven't added to Amplitude yet, then the user tied to that ID will not be marked \"new\" until their first event. Required unless device ID is present.",
            "default": "$.userId"
          },
          "user_properties": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "Additional data tied to the user in Amplitude. Each distinct value appears as a user segment in Amplitude. object depth cannot not exceed 40 layers. Date values are transformed to string strings.",
            "default": "$.traits"
          },
          "userAgent": {
            "type": "string",
            "description": "The user agent of the device sending the event.",
            "default": "$.context.userAgent"
          },
          "userAgentParsing": {
            "type": "boolean",
            "description": "Enabling this setting will set the Device manufacturer, Device Model and OS Name properties based on the user agent string provided in the userAgent field",
            "default": true
          },
          "utm_properties": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "UTM Tracking Properties",
            "properties": {
              "utm_campaign": {
                "type": "string",
                "default": "$.context.campaign.name"
              },
              "utm_content": {
                "type": "string",
                "default": "$.context.campaign.content"
              },
              "utm_medium": {
                "type": "string",
                "default": "$.context.campaign.medium"
              },
              "utm_source": {
                "type": "string",
                "default": "$.context.campaign.source"
              },
              "utm_term": {
                "type": "string",
                "default": "$.context.campaign.term"
              }
            }
          }
        }
      },
      "amplitude_log_purchase": {
        "x-tags": [
          "Amplitude Events"
        ],
        "x-scalar-ignore": true,
        "properties": {
          "adid": {
            "type": "string",
            "description": "Google Play Services advertising ID. _(Android)_",
            "default": "coalesce($.context.device.advertisingId, $.context.device.idfa)"
          },
          "android_id": {
            "type": "string",
            "description": "Android ID (not the advertising ID). _(Android)_"
          },
          "app_version": {
            "type": "string",
            "description": "The current version of your application.",
            "default": "$.context.app.version"
          },
          "carrier": {
            "type": "string",
            "description": "The carrier that the user is using.",
            "default": "$.context.network.carrier"
          },
          "city": {
            "type": "string",
            "description": "The current city of the user.",
            "default": "$.context.location.city"
          },
          "country": {
            "type": "string",
            "description": "The current country of the user.",
            "default": "$.context.location.country"
          },
          "device_brand": {
            "type": "string",
            "description": "The device brand that the user is using.",
            "default": "$.context.device.brand"
          },
          "device_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A device identifier, like the Identifier for Vendor (IDFV) on iOS. Required unless the request includes a `user_id`.\n",
            "default": "coalesce($.context.device.id, $.anonymousId)"
          },
          "device_manufacturer": {
            "type": "string",
            "description": "The device manufacturer that the user is using.",
            "default": "$.context.device.manufacturer"
          },
          "device_model": {
            "type": "string",
            "description": "The device model that the user is using.",
            "default": "$.context.device.model"
          },
          "dma": {
            "type": "string",
            "description": "The current Designated Market Area of the user."
          },
          "event_id": {
            "type": "integer",
            "description": "An incrementing counter to distinguish events with the same user ID and timestamp from each other. Amplitude recommends you send an event ID, increasing over time, especially if you expect events to occur simultanenously."
          },
          "event_properties": {
            "type": "object",
            "description": "An object of key-value pairs that represent additional data to be sent along with the event. You can store property values in an array, but note that Amplitude only supports one-dimensional arrays. Date values are transformed into string values. object depth may not exceed 40 layers.",
            "default": "$.properties"
          },
          "event_type": {
            "type": "string",
            "description": "A unique identifier for your event.",
            "default": "$.event"
          },
          "groups": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "Groups of users for the event as an event-level group. You can only track up to 5 groups. **Note:** This Amplitude feature is only available to Enterprise customers who have purchased the Accounts add-on."
          },
          "idfa": {
            "type": "string",
            "description": "Identifier for Advertiser. _(iOS)_",
            "default": "coalesce($.context.device.advertisingId, $.context.device.idfa)"
          },
          "idfv": {
            "type": "string",
            "description": "Identifier for Vendor. _(iOS)_",
            "default": "$.context.device.id"
          },
          "insert_id": {
            "type": "string",
            "description": "Amplitude will deduplicate subsequent events sent with this ID we have already seen before within the past 7 days. Amplitude recommends generating a UUID or using some combination of device ID, user ID, event type, event ID, and time."
          },
          "ip": {
            "type": "string",
            "description": "The IP address of the user. Use \"$remote\" to use the IP address on the upload request. Amplitude will use the IP address to reverse lookup a user's location (city, country, region, and DMA). Amplitude has the ability to drop the location and IP address from events once it reaches our servers. You can submit a request to Amplitude's platform specialist team here to configure this for you.",
            "default": "$.context.ip"
          },
          "language": {
            "type": "string",
            "description": "The language set by the user.",
            "default": "$.context.locale"
          },
          "library": {
            "type": "string",
            "description": "The name of the library that generated the event.",
            "default": "$.context.library.name"
          },
          "location_lat": {
            "type": "number",
            "description": "The current Latitude of the user.",
            "default": "$.context.location.latitude"
          },
          "location_lng": {
            "type": "number",
            "description": "The current Longitude of the user.",
            "default": "$.context.location.longitude"
          },
          "min_id_length": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "Amplitude has a default minimum id length of 5 characters for `user_id` and `device_id` fields. This field allows the minimum to be overridden to allow shorter id lengths."
          },
          "os_name": {
            "type": "string",
            "description": "The name of the mobile operating system or browser that the user is using.",
            "default": "$.context.os.name"
          },
          "os_version": {
            "type": "string",
            "description": "The version of the mobile operating system or browser the user is using.",
            "default": "$.context.os.version"
          },
          "platform": {
            "type": "string",
            "description": "Platform of the device.",
            "default": "$.context.device.type"
          },
          "price": {
            "type": "number",
            "description": "The price of the item purchased. Required for revenue data if the revenue field is not sent. You can use negative values to indicate refunds.",
            "default": "$.properties.price"
          },
          "productId": {
            "type": "string",
            "description": "An identifier for the item purchased. You must send a price and quantity or revenue with this field.",
            "default": "$.properties.productId"
          },
          "products": {
            "type": "array",
            "description": "The list of products purchased, where each object in the array represents an individual product.",
            "default": "$.properties.products",
            "items": {
              "type": "object",
              "description": "An item that a person purchased.",
              "properties": {
                "price": {
                  "type": "number",
                  "description": "The product's price.",
                  "default": "price"
                },
                "productId": {
                  "type": "string",
                  "description": "The product ID, like a SKU or another value unique to the specific product.",
                  "default": "productId"
                },
                "quantity": {
                  "type": "integer",
                  "description": "The quantity of the product in the order.",
                  "default": "quantity"
                },
                "revenue": {
                  "type": "number",
                  "description": "Revenue from the product.",
                  "default": "revenue"
                },
                "revenueType": {
                  "type": "string",
                  "description": "The type of revenue.",
                  "default": "revenueType"
                }
              }
            }
          },
          "quantity": {
            "type": "integer",
            "description": "The quantity of the item purchased. Defaults to 1 if not specified.",
            "default": "$.properties.quantity"
          },
          "referrer": {
            "type": "string",
            "description": "The referrer of the web request. Sent to Amplitude as both last touch “referrer” and first touch “initial_referrer”",
            "default": "$.context.page.referrer"
          },
          "region": {
            "type": "string",
            "description": "The current region of the user.",
            "default": "$.context.location.region"
          },
          "revenue": {
            "type": "number",
            "description": "Revenue = price * quantity. If you send all 3 fields of price, quantity, and revenue, then (price * quantity) will be used as the revenue value. You can use negative values to indicate refunds. **Note:** You will need to explicitly set this if you are using the Amplitude in cloud-mode.",
            "default": "$.properties.revenue"
          },
          "revenueType": {
            "type": "string",
            "description": "The type of revenue for the item purchased. You must send a price and quantity or revenue with this field.",
            "default": "$.properties.revenueType"
          },
          "session_id": {
            "type": "string",
            "format": "datetime",
            "description": "The start time of the session, necessary if you want to associate events with a particular system. To use automatic Amplitude session tracking in browsers, enable Analytics 2.0 on your connected source.",
            "default": "$.integrations.Actions Amplitude.session_id"
          },
          "time": {
            "type": "string",
            "format": "datetime",
            "description": "The timestamp of the event. If time is not sent with the event, it will be set to the request upload time.",
            "default": "$.timestamp"
          },
          "trackRevenuePerProduct": {
            "type": "boolean",
            "description": "When enabled, track revenue with each product within the event. When disabled, track total revenue once for the event.",
            "default": false
          },
          "use_batch_endpoint": {
            "type": "boolean",
            "description": "If true, events are sent to Amplitude's `batch` endpoint rather than their `httpapi` events endpoint. Enabling this setting may help reduce 429s – or throttling errors – from Amplitude. More information about Amplitude's throttling is available in [their docs](https://developers.amplitude.com/batch-event-upload-api#429s-in-depth).",
            "default": false
          },
          "user_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique identifier for a user. If your call references user ID you haven't added to Amplitude yet, then the user tied to that ID will not be marked \"new\" until their first event. Required unless device ID is present.",
            "default": "$.userId"
          },
          "user_properties": {
            "type": "object",
            "description": "An object of key-value pairs that represent additional data tied to the user. You can store property values in an array, but note that Amplitude only supports one-dimensional arrays. Date values are transformed into string values. object depth may not exceed 40 layers.",
            "default": "$.traits"
          },
          "userAgent": {
            "type": "string",
            "description": "The user agent of the device sending the event.",
            "default": "$.context.userAgent"
          },
          "userAgentParsing": {
            "type": "boolean",
            "description": "Enabling this setting will set the Device manufacturer, Device Model and OS Name properties based on the user agent string provided in the userAgent field",
            "default": true
          },
          "utm_properties": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "UTM Tracking Properties",
            "properties": {
              "utm_campaign": {
                "type": "string",
                "default": "$.context.campaign.name"
              },
              "utm_content": {
                "type": "string",
                "default": "$.context.campaign.content"
              },
              "utm_medium": {
                "type": "string",
                "default": "$.context.campaign.medium"
              },
              "utm_source": {
                "type": "string",
                "default": "$.context.campaign.source"
              },
              "utm_term": {
                "type": "string",
                "default": "$.context.campaign.term"
              }
            }
          }
        }
      },
      "amplitude_log_event": {
        "x-tags": [
          "Amplitude Events"
        ],
        "x-scalar-ignore": true,
        "properties": {
          "adid": {
            "type": "string",
            "description": "Google Play Services advertising ID. _(Android)_",
            "default": "coalesce($.context.device.advertisingId, $.context.device.idfa)"
          },
          "android_id": {
            "type": "string",
            "description": "Android ID (not the advertising ID). _(Android)_"
          },
          "app_version": {
            "type": "string",
            "description": "The current version of your application.",
            "default": "$.context.app.version"
          },
          "carrier": {
            "type": "string",
            "description": "The carrier that the user is using.",
            "default": "$.context.network.carrier"
          },
          "city": {
            "type": "string",
            "description": "The current city of the user.",
            "default": "$.context.location.city"
          },
          "country": {
            "type": "string",
            "description": "The current country of the user.",
            "default": "$.context.location.country"
          },
          "device_brand": {
            "type": "string",
            "description": "The device brand that the user is using.",
            "default": "$.context.device.brand"
          },
          "device_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A device identifier, like the Identifier for Vendor (IDFV) on iOS. Required unless the request includes a `user_id`.\n",
            "default": "coalesce($.context.device.id, $.anonymousId)"
          },
          "device_manufacturer": {
            "type": "string",
            "description": "The device manufacturer that the user is using.",
            "default": "$.context.device.manufacturer"
          },
          "device_model": {
            "type": "string",
            "description": "The device model that the user is using.",
            "default": "$.context.device.model"
          },
          "dma": {
            "type": "string",
            "description": "The current Designated Market Area of the user."
          },
          "event_id": {
            "type": "integer",
            "description": "An incrementing counter to distinguish events with the same user ID and timestamp from each other. Amplitude recommends you send an event ID, increasing over time, especially if you expect events to occur simultanenously."
          },
          "event_properties": {
            "type": "object",
            "description": "An object of key-value pairs that represent additional data to be sent along with the event. You can store property values in an array, but note that Amplitude only supports one-dimensional arrays. Date values are transformed into string values. object depth may not exceed 40 layers.",
            "default": "$.properties"
          },
          "event_type": {
            "type": "string",
            "description": "A unique identifier for your event.",
            "default": "$.event"
          },
          "groups": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "Groups of users for the event as an event-level group. You can only track up to 5 groups. **Note:** This Amplitude feature is only available to Enterprise customers who have purchased the Accounts add-on."
          },
          "idfa": {
            "type": "string",
            "description": "Identifier for Advertiser. _(iOS)_",
            "default": "coalesce($.context.device.advertisingId, $.context.device.idfa)"
          },
          "idfv": {
            "type": "string",
            "description": "Identifier for Vendor. _(iOS)_",
            "default": "$.context.device.id"
          },
          "insert_id": {
            "type": "string",
            "description": "Amplitude will deduplicate subsequent events sent with this ID we have already seen before within the past 7 days. Amplitude recommends generating a UUID or using some combination of device ID, user ID, event type, event ID, and time."
          },
          "ip": {
            "type": "string",
            "description": "The IP address of the user. Use \"$remote\" to use the IP address on the upload request. Amplitude will use the IP address to reverse lookup a user's location (city, country, region, and DMA). Amplitude has the ability to drop the location and IP address from events once it reaches our servers. You can submit a request to Amplitude's platform specialist team here to configure this for you.",
            "default": "$.context.ip"
          },
          "language": {
            "type": "string",
            "description": "The language set by the user.",
            "default": "$.context.locale"
          },
          "library": {
            "type": "string",
            "description": "The name of the library that generated the event.",
            "default": "$.context.library.name"
          },
          "location_lat": {
            "type": "number",
            "description": "The current Latitude of the user.",
            "default": "$.context.location.latitude"
          },
          "location_lng": {
            "type": "number",
            "description": "The current Longitude of the user.",
            "default": "$.context.location.longitude"
          },
          "min_id_length": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "Amplitude has a default minimum id length of 5 characters for `user_id` and `device_id` fields. This field allows the minimum to be overridden to allow shorter id lengths."
          },
          "os_name": {
            "type": "string",
            "description": "The name of the mobile operating system or browser that the user is using.",
            "default": "$.context.os.name"
          },
          "os_version": {
            "type": "string",
            "description": "The version of the mobile operating system or browser the user is using.",
            "default": "$.context.os.version"
          },
          "platform": {
            "type": "string",
            "description": "Platform of the device.",
            "default": "$.context.device.type"
          },
          "price": {
            "type": "number",
            "description": "The price of the item purchased. Required for revenue data if the revenue field is not sent. You can use negative values to indicate refunds.",
            "default": "$.properties.price"
          },
          "productId": {
            "type": "string",
            "description": "An identifier for the item purchased. You must send a price and quantity or revenue with this field.",
            "default": "$.properties.productId"
          },
          "products": {
            "type": "array",
            "description": "The list of products purchased, where each object in the array represents an individual product.",
            "default": "$.properties.products",
            "items": {
              "type": "object",
              "description": "An item that a person purchased.",
              "properties": {
                "price": {
                  "type": "number",
                  "description": "The product's price.",
                  "default": "price"
                },
                "productId": {
                  "type": "string",
                  "description": "The product ID, like a SKU or another value unique to the specific product.",
                  "default": "productId"
                },
                "quantity": {
                  "type": "integer",
                  "description": "The quantity of the product in the order.",
                  "default": "quantity"
                },
                "revenue": {
                  "type": "number",
                  "description": "Revenue from the product.",
                  "default": "revenue"
                },
                "revenueType": {
                  "type": "string",
                  "description": "The type of revenue.",
                  "default": "revenueType"
                }
              }
            }
          },
          "quantity": {
            "type": "integer",
            "description": "The quantity of the item purchased. Defaults to 1 if not specified.",
            "default": "$.properties.quantity"
          },
          "referrer": {
            "type": "string",
            "description": "The referrer of the web request. Sent to Amplitude as both last touch “referrer” and first touch “initial_referrer”",
            "default": "$.context.page.referrer"
          },
          "region": {
            "type": "string",
            "description": "The current region of the user.",
            "default": "$.context.location.region"
          },
          "revenue": {
            "type": "number",
            "description": "Revenue = price * quantity. If you send all 3 fields of price, quantity, and revenue, then (price * quantity) will be used as the revenue value. You can use negative values to indicate refunds. **Note:** You will need to explicitly set this if you are using the Amplitude in cloud-mode.",
            "default": "$.properties.revenue"
          },
          "revenueType": {
            "type": "string",
            "description": "The type of revenue for the item purchased. You must send a price and quantity or revenue with this field.",
            "default": "$.properties.revenueType"
          },
          "session_id": {
            "type": "string",
            "format": "datetime",
            "description": "The start time of the session, necessary if you want to associate events with a particular system. To use automatic Amplitude session tracking in browsers, enable Analytics 2.0 on your connected source.",
            "default": "$.integrations.Actions Amplitude.session_id"
          },
          "time": {
            "type": "string",
            "format": "datetime",
            "description": "The timestamp of the event. If time is not sent with the event, it will be set to the request upload time.",
            "default": "$.timestamp"
          },
          "use_batch_endpoint": {
            "type": "boolean",
            "description": "If true, events are sent to Amplitude's `batch` endpoint rather than their `httpapi` events endpoint. Enabling this setting may help reduce 429s – or throttling errors – from Amplitude. More information about Amplitude's throttling is available in [their docs](https://developers.amplitude.com/batch-event-upload-api#429s-in-depth).",
            "default": false
          },
          "user_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique identifier for a user. If your call references user ID you haven't added to Amplitude yet, then the user tied to that ID will not be marked \"new\" until their first event. Required unless device ID is present.",
            "default": "$.userId"
          },
          "user_properties": {
            "type": "object",
            "description": "An object of key-value pairs that represent additional data tied to the user. You can store property values in an array, but note that Amplitude only supports one-dimensional arrays. Date values are transformed into string values. object depth may not exceed 40 layers.",
            "default": "$.traits"
          },
          "userAgent": {
            "type": "string",
            "description": "The user agent of the device sending the event.",
            "default": "$.context.userAgent"
          },
          "userAgentParsing": {
            "type": "boolean",
            "description": "Enabling this setting will set the Device manufacturer, Device Model and OS Name properties based on the user agent string provided in the userAgent field",
            "default": true
          },
          "utm_properties": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "UTM Tracking Properties",
            "properties": {
              "utm_campaign": {
                "type": "string",
                "default": "$.context.campaign.name"
              },
              "utm_content": {
                "type": "string",
                "default": "$.context.campaign.content"
              },
              "utm_medium": {
                "type": "string",
                "default": "$.context.campaign.medium"
              },
              "utm_source": {
                "type": "string",
                "default": "$.context.campaign.source"
              },
              "utm_term": {
                "type": "string",
                "default": "$.context.campaign.term"
              }
            }
          }
        }
      },
      "amplitude_group_identify_user": {
        "x-tags": [
          "Amplitude Events"
        ],
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "device_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A device identifier, like the Identifier for Vendor (IDFV) on iOS. Required unless the request includes a `user_id`.\n",
            "default": "coalesce($.context.device.id, $.anonymousId)"
          },
          "group_properties": {
            "type": "object",
            "description": "Additional data tied to the group in Amplitude.",
            "default": "$.traits"
          },
          "group_type": {
            "type": "string",
            "description": "The type of the group"
          },
          "group_value": {
            "type": "string",
            "description": "The value of the group"
          },
          "insert_id": {
            "type": "string",
            "description": "Amplitude will deduplicate subsequent events sent with this ID we have already seen before within the past 7 days. Amplitude recommends generating a UUID or using some combination of device ID, user ID, event type, event ID, and time."
          },
          "min_id_length": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "Amplitude has a default minimum id length of 5 characters for `user_id` and `device_id` fields. This field allows the minimum to be overridden to allow shorter id lengths."
          },
          "time": {
            "type": "string",
            "description": "The timestamp of the event. If time is not sent with the event, it will be set to the request upload time.",
            "default": "$.timestamp"
          },
          "user_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique identifier for a user. If your call references user ID you haven't added to Amplitude yet, then the user tied to that ID will not be marked \"new\" until their first event. Required unless device ID is present.",
            "default": "$.userId"
          }
        }
      },
      "amplitude_session_plugin": {
        "x-tags": [
          "Amplitude Events"
        ],
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "sessionLength": {
            "type": "number",
            "description": "Time in milliseconds before a session becomes stale."
          }
        }
      },
      "amplitude_log_event_v_2": {
        "x-scalar-ignore": true,
        "properties": {
          "add": {
            "type": "object",
            "description": "Increment a user property by a number with add. If the user property doesn't have a value set yet, it's initialized to 0."
          },
          "adid": {
            "type": "string",
            "description": "Google Play Services advertising ID. _(Android)_",
            "default": "coalesce($.context.device.advertisingId, $.context.device.idfa)"
          },
          "android_id": {
            "type": "string",
            "description": "Android ID (not the advertising ID). _(Android)_"
          },
          "app_version": {
            "type": "string",
            "description": "The current version of your application.",
            "default": "$.context.app.version"
          },
          "carrier": {
            "type": "string",
            "description": "The carrier that the user is using.",
            "default": "$.context.network.carrier"
          },
          "city": {
            "type": "string",
            "description": "The current city of the user.",
            "default": "$.context.location.city"
          },
          "country": {
            "type": "string",
            "description": "The current country of the user.",
            "default": "$.context.location.country"
          },
          "device_brand": {
            "type": "string",
            "description": "The device brand that the user is using.",
            "default": "$.context.device.brand"
          },
          "device_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A device identifier, like the Identifier for Vendor (IDFV) on iOS. Required unless the request includes a `user_id`.\n",
            "default": "coalesce($.context.device.id, $.anonymousId)"
          },
          "device_manufacturer": {
            "type": "string",
            "description": "The device manufacturer that the user is using.",
            "default": "$.context.device.manufacturer"
          },
          "device_model": {
            "type": "string",
            "description": "The device model that the user is using.",
            "default": "$.context.device.model"
          },
          "dma": {
            "type": "string",
            "description": "The current Designated Market Area of the user."
          },
          "event_id": {
            "type": "integer",
            "description": "An incrementing counter to distinguish events with the same user ID and timestamp from each other. Amplitude recommends you send an event ID, increasing over time, especially if you expect events to occur simultanenously."
          },
          "event_properties": {
            "type": "object",
            "description": "An object of key-value pairs that represent additional data to be sent along with the event. You can store property values in an array, but note that Amplitude only supports one-dimensional arrays. Date values are transformed into string values. object depth may not exceed 40 layers.",
            "default": "$.properties"
          },
          "event_type": {
            "type": "string",
            "description": "A unique identifier for your event.",
            "default": "$.event"
          },
          "groups": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "Groups of users for the event as an event-level group. You can only track up to 5 groups. **Note:** This Amplitude feature is only available to Enterprise customers who have purchased the Accounts add-on."
          },
          "idfa": {
            "type": "string",
            "description": "Identifier for Advertiser. _(iOS)_",
            "default": "coalesce($.context.device.advertisingId, $.context.device.idfa)"
          },
          "idfv": {
            "type": "string",
            "description": "Identifier for Vendor. _(iOS)_",
            "default": "$.context.device.id"
          },
          "insert_id": {
            "type": "string",
            "description": "Amplitude will deduplicate subsequent events sent with this ID we have already seen before within the past 7 days. Amplitude recommends generating a UUID or using some combination of device ID, user ID, event type, event ID, and time."
          },
          "ip": {
            "type": "string",
            "description": "The IP address of the user. Use \"$remote\" to use the IP address on the upload request. Amplitude will use the IP address to reverse lookup a user's location (city, country, region, and DMA). Amplitude has the ability to drop the location and IP address from events once it reaches our servers. You can submit a request to Amplitude's platform specialist team here to configure this for you.",
            "default": "$.context.ip"
          },
          "language": {
            "type": "string",
            "description": "The language set by the user.",
            "default": "$.context.locale"
          },
          "library": {
            "type": "string",
            "description": "The name of the library that generated the event.",
            "default": "$.context.library.name"
          },
          "location_lat": {
            "type": "number",
            "description": "The current Latitude of the user.",
            "default": "$.context.location.latitude"
          },
          "location_lng": {
            "type": "number",
            "description": "The current Longitude of the user.",
            "default": "$.context.location.longitude"
          },
          "min_id_length": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "Amplitude has a default minimum id length of 5 characters for `user_id` and `device_id` fields. This field allows the minimum to be overridden to allow shorter id lengths."
          },
          "os_name": {
            "type": "string",
            "description": "The name of the mobile operating system or browser that the user is using.",
            "default": "$.context.os.name"
          },
          "os_version": {
            "type": "string",
            "description": "The version of the mobile operating system or browser the user is using.",
            "default": "$.context.os.version"
          },
          "platform": {
            "type": "string",
            "description": "Platform of the device.",
            "default": "$.context.device.type"
          },
          "price": {
            "type": "number",
            "description": "The price of the item purchased. Required for revenue data if the revenue field is not sent. You can use negative values to indicate refunds.",
            "default": "$.properties.price"
          },
          "productId": {
            "type": "string",
            "description": "An identifier for the item purchased. You must send a price and quantity or revenue with this field.",
            "default": "$.properties.productId"
          },
          "products": {
            "type": "array",
            "description": "The list of products purchased, where each object in the array represents an individual product.",
            "default": "$.properties.products",
            "items": {
              "type": "object",
              "description": "An item that a person purchased.",
              "properties": {
                "price": {
                  "type": "number",
                  "description": "The product's price.",
                  "default": "price"
                },
                "productId": {
                  "type": "string",
                  "description": "The product ID, like a SKU or another value unique to the specific product.",
                  "default": "productId"
                },
                "quantity": {
                  "type": "integer",
                  "description": "The quantity of the product in the order.",
                  "default": "quantity"
                },
                "revenue": {
                  "type": "number",
                  "description": "Revenue from the product.",
                  "default": "revenue"
                },
                "revenueType": {
                  "type": "string",
                  "description": "The type of revenue.",
                  "default": "revenueType"
                }
              }
            }
          },
          "quantity": {
            "type": "integer",
            "description": "The quantity of the item purchased. Defaults to 1 if not specified.",
            "default": "$.properties.quantity"
          },
          "region": {
            "type": "string",
            "description": "The current region of the user.",
            "default": "$.context.location.region"
          },
          "revenue": {
            "type": "number",
            "description": "Revenue = price * quantity. If you send all 3 fields of price, quantity, and revenue, then (price * quantity) will be used as the revenue value. You can use negative values to indicate refunds. **Note:** You will need to explicitly set this if you are using the Amplitude in cloud-mode.",
            "default": "$.properties.revenue"
          },
          "revenueType": {
            "type": "string",
            "description": "The type of revenue for the item purchased. You must send a price and quantity or revenue with this field.",
            "default": "$.properties.revenueType"
          },
          "session_id": {
            "type": "string",
            "format": "datetime",
            "description": "The start time of the session, necessary if you want to associate events with a particular system. To use automatic Amplitude session tracking in browsers, enable Analytics 2.0 on your connected source.",
            "default": "$.integrations.Actions Amplitude.session_id"
          },
          "setAlways": {
            "x-scalar-ignore": true,
            "description": "Set these properties once or with every event depending on the key. Relevant to AJS2.",
            "properties": {
              "initial_referrer": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "Referrer url",
                "default": "$.context.page.referrer"
              },
              "utm_campaign": {
                "type": "string",
                "default": "$.context.campaign.name"
              },
              "utm_content": {
                "type": "string",
                "default": "$.context.campaign.content"
              },
              "utm_medium": {
                "type": "string",
                "default": "$.context.campaign.medium"
              },
              "utm_source": {
                "type": "string",
                "default": "$.context.campaign.source"
              },
              "utm_term": {
                "type": "string",
                "default": "$.context.campaign.term"
              }
            }
          },
          "setOnce": {
            "x-scalar-ignore": true,
            "description": "Set these properties once or with every event depending on the key. Relevant to AJS2.",
            "properties": {
              "initial_referrer": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "Referrer url",
                "default": "$.context.page.referrer"
              },
              "utm_campaign": {
                "type": "string",
                "default": "$.context.campaign.name"
              },
              "utm_content": {
                "type": "string",
                "default": "$.context.campaign.content"
              },
              "utm_medium": {
                "type": "string",
                "default": "$.context.campaign.medium"
              },
              "utm_source": {
                "type": "string",
                "default": "$.context.campaign.source"
              },
              "utm_term": {
                "type": "string",
                "default": "$.context.campaign.term"
              }
            }
          },
          "time": {
            "type": "string",
            "format": "datetime",
            "description": "The timestamp of the event. If time is not sent with the event, it will be set to the request upload time.",
            "default": "$.timestamp"
          },
          "use_batch_endpoint": {
            "type": "boolean",
            "description": "If true, events are sent to Amplitude's `batch` endpoint rather than their `httpapi` events endpoint. Enabling this setting may help reduce 429s – or throttling errors – from Amplitude. More information about Amplitude's throttling is available in [their docs](https://developers.amplitude.com/batch-event-upload-api#429s-in-depth).",
            "default": false
          },
          "user_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique identifier for a user. If your call references user ID you haven't added to Amplitude yet, then the user tied to that ID will not be marked \"new\" until their first event. Required unless device ID is present.",
            "default": "$.userId"
          },
          "user_properties": {
            "type": "object",
            "description": "An object of key-value pairs that represent additional data tied to the user. You can store property values in an array, but note that Amplitude only supports one-dimensional arrays. Date values are transformed into string values. object depth may not exceed 40 layers.",
            "default": "$.traits"
          },
          "userAgent": {
            "type": "string",
            "description": "The user agent of the device sending the event.",
            "default": "$.context.userAgent"
          },
          "userAgentParsing": {
            "type": "boolean",
            "description": "Enabling this setting will set the Device manufacturer, Device Model and OS Name properties based on the user agent string provided in the userAgent field.",
            "default": true
          }
        }
      },
      "braze_update_user_profile": {
        "x-tags": [
          "Braze Events"
        ],
        "x-scalar-ignore": true,
        "description": "Update a user's profile attributes in Braze",
        "type": "object",
        "properties": {
          "_update_existing_only": {
            "type": "boolean",
            "description": "Setting this flag to true will put the API in \"Update Only\" mode. When using a \"user_alias\", \"Update Only\" mode is always true.",
            "default": false
          },
          "braze_id": {
            "type": [
              "string",
              "null"
            ],
            "description": "The unique user identifier",
            "default": "$.properties.braze_id"
          },
          "country": {
            "type": [
              "string",
              "null"
            ],
            "description": "The country code of the user",
            "default": "$.context.location.country"
          },
          "current_location": {
            "type": "object",
            "description": "The user's current longitude/latitude.",
            "properties": {
              "latitude": {
                "type": "number",
                "description": "The current users's latitude.",
                "default": "$.context.location.latitude"
              },
              "longitude": {
                "type": "number",
                "description": "The user's longitude.",
                "default": "$.context.location.longitude"
              }
            }
          },
          "custom_attributes": {
            "type": "object",
            "description": "Hash of custom attributes to send to Braze",
            "default": "$.traits",
            "additionalProperties": {
              "x-additionalPropertiesName": "Custom Attributes",
              "description": "Key-value pairs you want to set on this person."
            }
          },
          "date_of_first_session": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "The date the user first used the app"
          },
          "date_of_last_session": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "The date the user last used the app"
          },
          "dob": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "The user's date of birth"
          },
          "email": {
            "type": [
              "string",
              "null"
            ],
            "description": "The user's email",
            "default": "$.traits.email"
          },
          "email_click_tracking_disabled": {
            "type": "boolean",
            "description": "Set to true to disable the click tracking for all links within a future email, sent to this user."
          },
          "email_open_tracking_disabled": {
            "type": "boolean",
            "description": "Set to true to disable the open tracking pixel from being added to all future emails sent to this user."
          },
          "email_subscribe": {
            "type": "string",
            "description": "The user's email subscription preference: “opted_in” (explicitly registered to receive email messages), “unsubscribed” (explicitly opted out of email messages), and “subscribed” (neither opted in nor out)."
          },
          "external_id": {
            "type": "string",
            "description": "The unique user identifier",
            "default": "$.userId"
          },
          "facebook": {
            "type": "object",
            "description": "Hash of Facebook attribution containing any of `id` (string), `likes` (array of strings), `num_friends` (integer).",
            "properties": {
              "id": {
                "type": "string",
                "description": "A person's facebook ID/name."
              },
              "likes": {
                "type": "array",
                "description": "This person's likes as stated in their bio.",
                "items": {
                  "type": "string"
                }
              },
              "num_friends": {
                "type": "integer",
                "description": "The number of Facebook friends the user has."
              }
            }
          },
          "first_name": {
            "type": [
              "string",
              "null"
            ],
            "description": "The user's first name",
            "default": "$.traits.firstName"
          },
          "gender": {
            "type": [
              "string",
              "null"
            ],
            "description": "The user's gender: “M”, “F”, “O” (other), “N” (not applicable), “P” (prefer not to say) or nil (unknown).",
            "enum": [
              "M",
              "F",
              "O",
              "N",
              "P"
            ]
          },
          "home_city": {
            "type": [
              "string",
              "null"
            ],
            "description": "The user's home city.",
            "default": "$.traits.address.city"
          },
          "image_url": {
            "type": [
              "string",
              "null"
            ],
            "description": "URL of image to be associated with user profile.",
            "default": "$.traits.avatar"
          },
          "language": {
            "type": [
              "string",
              "null"
            ],
            "description": "The user's preferred language."
          },
          "last_name": {
            "type": [
              "string",
              "null"
            ],
            "description": "The user's last name",
            "default": "$.traits.lastName"
          },
          "marked_email_as_spam_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "The date the user marked their email as spam."
          },
          "phone": {
            "type": [
              "string",
              "null"
            ],
            "description": "The user's phone number",
            "default": "$.traits.phone"
          },
          "push_subscribe": {
            "type": "string",
            "description": "The user's push subscription preference: “opted_in” (explicitly registered to receive push messages), “unsubscribed” (explicitly opted out of push messages), and “subscribed” (neither opted in nor out)."
          },
          "push_tokens": {
            "type": "array",
            "description": "Array of objects, each containing `app_id` and `token` string. You can also provide a `device_id` for each device. But if you don't provide this field, one will be randomly generated.",
            "items": {
              "type": "object",
              "properties": {
                "app_id": {
                  "type": "string",
                  "description": "The ID of the application the token belongs to."
                },
                "device_id": {
                  "type": "string",
                  "description": "If you don't provide this field, one will be randomly generated for you."
                },
                "token": {
                  "type": "string",
                  "description": "The device token for this device/app combination."
                }
              }
            }
          },
          "time_zone": {
            "type": "string",
            "description": "The user’s time zone name from the IANA Time Zone Database  (e.g., “America/New_York” or “Eastern Time (US & Canada)”). Only sets valid time zone values."
          },
          "twitter": {
            "type": "object",
            "description": "Hash containing any of id (integer), screen_name (string, Twitter handle), followers_count (integer), friends_count (integer), statuses_count (integer).",
            "properties": {
              "followers_count": {
                "type": "integer",
                "description": "The number of followers."
              },
              "friends_count": {
                "type": "integer",
                "description": "The number of friends/people the account follows."
              },
              "id": {
                "type": "integer",
                "description": "The twitter ID."
              },
              "screen_name": {
                "type": "string",
                "description": "The user's Twitter handle."
              },
              "statuses_count": {
                "type": "integer",
                "description": "The number of posts/statuses."
              }
            }
          },
          "user_alias": {
            "type": "object",
            "description": "A user alias object. See [the docs](https://www.braze.com/docs/api/objects_filters/user_alias_object/)."
          }
        }
      },
      "braze_track_event": {
        "x-tags": [
          "Braze Events"
        ],
        "x-scalar-ignore": true,
        "description": "Record custom events in Braze",
        "type": "object",
        "properties": {
          "_update_existing_only": {
            "type": "boolean",
            "description": "Setting this flag to true will put the API in \"Update Only\" mode. When using a \"user_alias\", \"Update Only\" mode is always true.",
            "default": false
          },
          "braze_id": {
            "type": [
              "string",
              "null"
            ],
            "description": "The unique user identifier",
            "default": "$.properties.braze_id"
          },
          "enable_batching": {
            "type": "boolean",
            "description": "If true, Segment will batch events before sending to Braze’s user track endpoint. Braze accepts batches of up to 75 events.",
            "default": false
          },
          "external_id": {
            "type": "string",
            "description": "The unique user identifier",
            "default": "$.userId"
          },
          "name": {
            "type": "string",
            "description": "The event name",
            "default": "$.event"
          },
          "properties": {
            "additionalProperties": {
              "x-additionalPropertiesName": "Event Properties",
              "description": "Additional key-value pairs you want to send along with the event."
            },
            "default": "$.properties",
            "description": "Properties of the event",
            "type": "object"
          },
          "time": {
            "type": "string",
            "format": "date-time",
            "description": "When the event occurred.",
            "default": "$.receivedAt"
          },
          "user_alias": {
            "type": "object",
            "description": "A user alias object. See [the docs](https://www.braze.com/docs/api/objects_filters/user_alias_object/)."
          }
        }
      },
      "braze_debounce_middleware": {
        "x-tags": [
          "Braze Events"
        ],
        "x-scalar-ignore": true,
        "type": "boolean",
        "description": "When enabled, it ensures that only events where at least one changed trait value are sent to Braze, and events with duplicate traits are not sent."
      },
      "braze_identify_user": {
        "x-tags": [
          "Braze Events"
        ],
        "x-scalar-ignore": true,
        "description": "Identifies an unidentified (alias-only) user. Use alongside the Create Alias action, or with user aliases you have already defined.",
        "type": "object",
        "properties": {
          "external_id": {
            "type": "string",
            "description": "The external ID of the user to identify."
          },
          "user_alias": {
            "type": "object",
            "description": "A user alias object. See [the docs](https://www.braze.com/docs/api/objects_filters/user_alias_object/)."
          }
        }
      },
      "braze_track_purchase": {
        "x-tags": [
          "Braze Events"
        ],
        "x-scalar-ignore": true,
        "description": "Record purchases in Braze.",
        "type": "object",
        "properties": {
          "_update_existing_only": {
            "type": "boolean",
            "description": "Setting this flag to true will put the API in \"Update Only\" mode. When using a \"user_alias\", \"Update Only\" mode is always true.",
            "default": false
          },
          "braze_id": {
            "type": [
              "string",
              "null"
            ],
            "description": "The unique user identifier",
            "default": "$.properties.braze_id"
          },
          "external_id": {
            "type": "string",
            "description": "The unique user identifier",
            "default": "$.userId"
          },
          "products": {
            "type": "array",
            "description": "Any array of objects, where each object represents a product in the purchase",
            "default": "$.properties.products",
            "items": {
              "type": "object",
              "description": "Information about the product.",
              "additionalProperties": {
                "description": "Properties about the purchase, like the price, name, quantity, etc.",
                "x-additionalPropertiesName": "Product Properties"
              }
            }
          },
          "properties": {
            "additionalProperties": {
              "x-additionalPropertiesName": "Event Properties",
              "description": "Additional key-value pairs you want to send along with the event."
            },
            "default": "$.properties",
            "description": "Properties for the purchase event",
            "type": "object"
          },
          "time": {
            "type": "string",
            "format": "date-time",
            "description": "When the event occurred.",
            "default": "$.receivedAt"
          },
          "user_alias": {
            "type": "object",
            "description": "A user alias object. See [the docs](https://www.braze.com/docs/api/objects_filters/user_alias_object/)."
          }
        }
      },
      "braze_create_alias": {
        "x-tags": [
          "Braze Events"
        ],
        "x-scalar-ignore": true,
        "description": "Create new user aliases for existing identified users, or to create new unidentified users.",
        "type": "object",
        "properties": {
          "alias_label": {
            "type": "string",
            "description": "A label indicating the type of alias"
          },
          "alias_name": {
            "type": "string",
            "description": "The alias identifier"
          },
          "external_id": {
            "type": [
              "string",
              "null"
            ],
            "description": "The external ID of the user to create an alias for."
          }
        }
      },
      "list_id": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The product list a person viewed.",
        "example": "all_shoes"
      },
      "category": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The product category a person viewed.",
        "example": "shoes"
      },
      "product_id": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The product ID.",
        "example": "coolshoes-123"
      },
      "products": {
        "x-scalar-ignore": true,
        "type": "array",
        "description": "The products displayed in the product list. Each object in the array represents a product.",
        "items": {
          "x-scalar-ignore": true,
          "description": "An individual product.",
          "type": "object",
          "properties": {
            "brand": {
              "type": "string",
              "description": "The brand associated with the product.",
              "example": "A Shoe Brand"
            },
            "category": {
              "type": "string",
              "description": "The product category a person viewed.",
              "example": "shoes"
            },
            "coupon": {
              "type": "string",
              "description": "The coupon code associated with the product (like `NEWUSER20`).",
              "example": "NEWUSER20"
            },
            "image_url": {
              "type": "string",
              "description": "The URL of the product image.",
              "example": "https://www.example.com/product/123.jpg"
            },
            "name": {
              "type": "string",
              "description": "The name of the product a person viewed.",
              "example": "Cool Shoes"
            },
            "position": {
              "type": "number",
              "description": "The position of the product in the list.",
              "example": 3
            },
            "price": {
              "type": "number",
              "description": "The price of the product.",
              "example": 139.99
            },
            "product_id": {
              "x-scalar-ignore": true,
              "type": "string",
              "description": "The product ID.",
              "example": "coolshoes-123"
            },
            "quantity": {
              "type": "integer",
              "description": "The quantity of the product.",
              "example": 1
            },
            "sku": {
              "type": "string",
              "description": "The stock keeping unit (SKU) of the product a person viewed.",
              "example": "abc-123-xyz"
            },
            "url": {
              "type": "string",
              "description": "The URL of the product page.",
              "example": "https://www.example.com/product/123"
            },
            "variant": {
              "type": "string",
              "description": "The variant of the product a person viewed, if applicable.",
              "example": "red"
            }
          }
        }
      },
      "product": {
        "x-scalar-ignore": true,
        "description": "An individual product.",
        "type": "object",
        "properties": {
          "brand": {
            "type": "string",
            "description": "The brand associated with the product.",
            "example": "A Shoe Brand"
          },
          "category": {
            "type": "string",
            "description": "The product category a person viewed.",
            "example": "shoes"
          },
          "coupon": {
            "type": "string",
            "description": "The coupon code associated with the product (like `NEWUSER20`).",
            "example": "NEWUSER20"
          },
          "image_url": {
            "type": "string",
            "description": "The URL of the product image.",
            "example": "https://www.example.com/product/123.jpg"
          },
          "name": {
            "type": "string",
            "description": "The name of the product a person viewed.",
            "example": "Cool Shoes"
          },
          "position": {
            "type": "number",
            "description": "The position of the product in the list.",
            "example": 3
          },
          "price": {
            "type": "number",
            "description": "The price of the product.",
            "example": 139.99
          },
          "product_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The product ID.",
            "example": "coolshoes-123"
          },
          "quantity": {
            "type": "integer",
            "description": "The quantity of the product.",
            "example": 1
          },
          "sku": {
            "type": "string",
            "description": "The stock keeping unit (SKU) of the product a person viewed.",
            "example": "abc-123-xyz"
          },
          "url": {
            "type": "string",
            "description": "The URL of the product page.",
            "example": "https://www.example.com/product/123"
          },
          "variant": {
            "type": "string",
            "description": "The variant of the product a person viewed, if applicable.",
            "example": "red"
          }
        }
      },
      "filters": {
        "x-scalar-ignore": true,
        "type": "array",
        "description": "The filters a person applied to the product list, where each object in the array is a different filter.",
        "items": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "description": "The ID of the filter type."
            },
            "value": {
              "type": "string",
              "description": "The ID of the value of the filter."
            }
          }
        }
      },
      "sorts": {
        "x-scalar-ignore": true,
        "type": "array",
        "description": "The sorts a person applied to the product list, where each object in the array is a different sort.",
        "items": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "description": "The ID of the sort type."
            },
            "value": {
              "type": "string",
              "description": "The ID of the selection type, like `ascending` or `descending`."
            }
          }
        }
      },
      "promotion": {
        "x-scalar-ignore": true,
        "description": "Describes a promotional offer that a user can view or use.",
        "type": "object",
        "properties": {
          "creative": {
            "type": "string",
            "description": "The creative content ID associated with the promotion.",
            "example": "top_banner_2"
          },
          "name": {
            "type": "string",
            "description": "The name of the promotion a person viewed.",
            "example": "summer_sale"
          },
          "position": {
            "type": "string",
            "description": "The position of the promotion a person viewed.",
            "example": "banner_slot_1"
          },
          "promotion_id": {
            "type": "string",
            "description": "The ID of the promotion a person viewed.",
            "example": "promo_123"
          }
        }
      },
      "checkout_step": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "checkout_id": {
            "type": "string",
            "description": "The checkout/transaction ID."
          },
          "payment_method": {
            "type": "string",
            "description": "The payment method selected by the user.",
            "example": "Visa"
          },
          "shipping_method": {
            "type": "string",
            "description": "The shipping method selected by the user.",
            "example": "ground"
          },
          "step": {
            "type": "integer",
            "description": "The step number of the checkout process.",
            "example": 2
          }
        }
      },
      "checkout": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "affiliation": {
            "type": "string",
            "description": "The store or affiliation from the transaction occurred from, like \"Google Play Store\".",
            "example": "Shopify"
          },
          "coupon": {
            "type": "string",
            "description": "The coupon code associated with the transaction.",
            "example": "NEWUSER20"
          },
          "currency": {
            "type": "string",
            "description": "The currency of the transaction.",
            "example": "USD"
          },
          "discount": {
            "type": "number",
            "description": "The total discount applied to the transaction.",
            "example": 20
          },
          "order_id": {
            "type": "string",
            "description": "The cart ID a person viewed.",
            "example": "cool_persons_cart_123"
          },
          "products": {
            "type": "array",
            "description": "The products in the cart. Each object in the array represents a product.",
            "items": {
              "x-scalar-ignore": true,
              "description": "An individual product.",
              "type": "object",
              "properties": {
                "brand": {
                  "type": "string",
                  "description": "The brand associated with the product.",
                  "example": "A Shoe Brand"
                },
                "category": {
                  "type": "string",
                  "description": "The product category a person viewed.",
                  "example": "shoes"
                },
                "coupon": {
                  "type": "string",
                  "description": "The coupon code associated with the product (like `NEWUSER20`).",
                  "example": "NEWUSER20"
                },
                "image_url": {
                  "type": "string",
                  "description": "The URL of the product image.",
                  "example": "https://www.example.com/product/123.jpg"
                },
                "name": {
                  "type": "string",
                  "description": "The name of the product a person viewed.",
                  "example": "Cool Shoes"
                },
                "position": {
                  "type": "number",
                  "description": "The position of the product in the list.",
                  "example": 3
                },
                "price": {
                  "type": "number",
                  "description": "The price of the product.",
                  "example": 139.99
                },
                "product_id": {
                  "x-scalar-ignore": true,
                  "type": "string",
                  "description": "The product ID.",
                  "example": "coolshoes-123"
                },
                "quantity": {
                  "type": "integer",
                  "description": "The quantity of the product.",
                  "example": 1
                },
                "sku": {
                  "type": "string",
                  "description": "The stock keeping unit (SKU) of the product a person viewed.",
                  "example": "abc-123-xyz"
                },
                "url": {
                  "type": "string",
                  "description": "The URL of the product page.",
                  "example": "https://www.example.com/product/123"
                },
                "variant": {
                  "type": "string",
                  "description": "The variant of the product a person viewed, if applicable.",
                  "example": "red"
                }
              }
            }
          },
          "revenue": {
            "type": "number",
            "description": "The total revenue of the transaction without discounts, coupons, shipping, and tax.",
            "example": 139.99
          },
          "shipping": {
            "type": "number",
            "description": "The total shipping cost of the transaction.",
            "example": 5
          },
          "tax": {
            "type": "number",
            "description": "The tax associated with the transaction.",
            "example": 10
          }
        }
      },
      "product_list_viewed": {
        "title": "Ecommerce: Product List Viewed\n",
        "description": "Use the `Product List Viewed` event when a person views a list of products.",
        "type": "object",
        "properties": {
          "category": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The product category a person viewed.",
            "example": "shoes"
          },
          "list_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The product list a person viewed.",
            "example": "all_shoes"
          },
          "products": {
            "x-scalar-ignore": true,
            "type": "array",
            "description": "The products displayed in the product list. Each object in the array represents a product.",
            "items": {
              "x-scalar-ignore": true,
              "description": "An individual product.",
              "type": "object",
              "properties": {
                "brand": {
                  "type": "string",
                  "description": "The brand associated with the product.",
                  "example": "A Shoe Brand"
                },
                "category": {
                  "type": "string",
                  "description": "The product category a person viewed.",
                  "example": "shoes"
                },
                "coupon": {
                  "type": "string",
                  "description": "The coupon code associated with the product (like `NEWUSER20`).",
                  "example": "NEWUSER20"
                },
                "image_url": {
                  "type": "string",
                  "description": "The URL of the product image.",
                  "example": "https://www.example.com/product/123.jpg"
                },
                "name": {
                  "type": "string",
                  "description": "The name of the product a person viewed.",
                  "example": "Cool Shoes"
                },
                "position": {
                  "type": "number",
                  "description": "The position of the product in the list.",
                  "example": 3
                },
                "price": {
                  "type": "number",
                  "description": "The price of the product.",
                  "example": 139.99
                },
                "product_id": {
                  "x-scalar-ignore": true,
                  "type": "string",
                  "description": "The product ID.",
                  "example": "coolshoes-123"
                },
                "quantity": {
                  "type": "integer",
                  "description": "The quantity of the product.",
                  "example": 1
                },
                "sku": {
                  "type": "string",
                  "description": "The stock keeping unit (SKU) of the product a person viewed.",
                  "example": "abc-123-xyz"
                },
                "url": {
                  "type": "string",
                  "description": "The URL of the product page.",
                  "example": "https://www.example.com/product/123"
                },
                "variant": {
                  "type": "string",
                  "description": "The variant of the product a person viewed, if applicable.",
                  "example": "red"
                }
              }
            }
          }
        }
      },
      "product_list_filtered": {
        "title": "Ecommerce: Product List Filtered\n",
        "type": "object",
        "description": "Use the `Product List Filtered` event when a person filters a list of products.",
        "properties": {
          "category": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The product category a person viewed.",
            "example": "shoes"
          },
          "filters": {
            "x-scalar-ignore": true,
            "type": "array",
            "description": "The filters a person applied to the product list, where each object in the array is a different filter.",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "The ID of the filter type."
                },
                "value": {
                  "type": "string",
                  "description": "The ID of the value of the filter."
                }
              }
            }
          },
          "list_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The product list a person viewed.",
            "example": "all_shoes"
          },
          "products": {
            "x-scalar-ignore": true,
            "type": "array",
            "description": "The products displayed in the product list. Each object in the array represents a product.",
            "items": {
              "x-scalar-ignore": true,
              "description": "An individual product.",
              "type": "object",
              "properties": {
                "brand": {
                  "type": "string",
                  "description": "The brand associated with the product.",
                  "example": "A Shoe Brand"
                },
                "category": {
                  "type": "string",
                  "description": "The product category a person viewed.",
                  "example": "shoes"
                },
                "coupon": {
                  "type": "string",
                  "description": "The coupon code associated with the product (like `NEWUSER20`).",
                  "example": "NEWUSER20"
                },
                "image_url": {
                  "type": "string",
                  "description": "The URL of the product image.",
                  "example": "https://www.example.com/product/123.jpg"
                },
                "name": {
                  "type": "string",
                  "description": "The name of the product a person viewed.",
                  "example": "Cool Shoes"
                },
                "position": {
                  "type": "number",
                  "description": "The position of the product in the list.",
                  "example": 3
                },
                "price": {
                  "type": "number",
                  "description": "The price of the product.",
                  "example": 139.99
                },
                "product_id": {
                  "x-scalar-ignore": true,
                  "type": "string",
                  "description": "The product ID.",
                  "example": "coolshoes-123"
                },
                "quantity": {
                  "type": "integer",
                  "description": "The quantity of the product.",
                  "example": 1
                },
                "sku": {
                  "type": "string",
                  "description": "The stock keeping unit (SKU) of the product a person viewed.",
                  "example": "abc-123-xyz"
                },
                "url": {
                  "type": "string",
                  "description": "The URL of the product page.",
                  "example": "https://www.example.com/product/123"
                },
                "variant": {
                  "type": "string",
                  "description": "The variant of the product a person viewed, if applicable.",
                  "example": "red"
                }
              }
            }
          },
          "sorts": {
            "x-scalar-ignore": true,
            "type": "array",
            "description": "The sorts a person applied to the product list, where each object in the array is a different sort.",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "The ID of the sort type."
                },
                "value": {
                  "type": "string",
                  "description": "The ID of the selection type, like `ascending` or `descending`."
                }
              }
            }
          }
        }
      },
      "products_searched": {
        "title": "Ecommerce: Products Searched\n",
        "type": "object",
        "description": "Use the `Products Searched` event when a person searches for products.",
        "properties": {
          "query": {
            "type": "string",
            "description": "The search query the customer entered.",
            "example": "pepperoni pizza"
          }
        }
      },
      "promotion_viewed": {
        "x-scalar-ignore": true,
        "description": "Describes a promotional offer that a user can view or use.",
        "type": "object",
        "properties": {
          "creative": {
            "type": "string",
            "description": "The creative content ID associated with the promotion.",
            "example": "top_banner_2"
          },
          "name": {
            "type": "string",
            "description": "The name of the promotion a person viewed.",
            "example": "summer_sale"
          },
          "position": {
            "type": "string",
            "description": "The position of the promotion a person viewed.",
            "example": "banner_slot_1"
          },
          "promotion_id": {
            "type": "string",
            "description": "The ID of the promotion a person viewed.",
            "example": "promo_123"
          }
        }
      },
      "promotion_clicked": {
        "x-scalar-ignore": true,
        "description": "Describes a promotional offer that a user can view or use.",
        "type": "object",
        "properties": {
          "creative": {
            "type": "string",
            "description": "The creative content ID associated with the promotion.",
            "example": "top_banner_2"
          },
          "name": {
            "type": "string",
            "description": "The name of the promotion a person viewed.",
            "example": "summer_sale"
          },
          "position": {
            "type": "string",
            "description": "The position of the promotion a person viewed.",
            "example": "banner_slot_1"
          },
          "promotion_id": {
            "type": "string",
            "description": "The ID of the promotion a person viewed.",
            "example": "promo_123"
          }
        }
      },
      "product_clicked": {
        "title": "Ecommerce: Product Clicked\n",
        "description": "Use the `Product Clicked` event when a person clicks on a product.",
        "allOf": {
          "properties": {
            "currency": {
              "type": "string",
              "description": "The currency of the transaction.",
              "example": "USD"
            },
            "value": {
              "type": "number",
              "description": "The total value of the product, after multiplying by quantity.",
              "example": 119.99
            }
          }
        }
      },
      "product_viewed": {
        "title": "Ecommerce: Product Viewed\n",
        "description": "Use the `Product Viewed` event when a person views a product.",
        "allOf": {
          "properties": {
            "currency": {
              "type": "string",
              "description": "The currency of the transaction.",
              "example": "USD"
            },
            "value": {
              "type": "number",
              "description": "The total value of the product, after multiplying by quantity.",
              "example": 119.99
            }
          }
        }
      },
      "product_added": {
        "title": "Ecommerce: Product Added\n",
        "description": "Use the `Product Added` event when a person adds a product to their cart.",
        "allOf": {
          "properties": {
            "cart_id": {
              "type": "string",
              "description": "The cart ID the product was added to."
            }
          }
        }
      },
      "product_removed": {
        "title": "Ecommerce: Product Removed\n",
        "description": "Use the `Product Removed` event when a person removes a product from their cart.",
        "allOf": {
          "properties": {
            "cart_id": {
              "type": "string",
              "description": "The cart ID the product was removed from.",
              "example": "cool_persons_cart_123"
            }
          }
        }
      },
      "cart_viewed": {
        "title": "Ecommerce: Cart Viewed\n",
        "description": "Use the `Cart_Viewed` event when a person views their cart.",
        "type": "object",
        "properties": {
          "cart_id": {
            "type": "string",
            "description": "The cart ID a person viewed.",
            "example": "cool_persons_cart_123"
          },
          "products": {
            "type": "array",
            "description": "The products in the cart. Each object in the array represents a product.",
            "items": {
              "x-scalar-ignore": true,
              "description": "An individual product.",
              "type": "object",
              "properties": {
                "brand": {
                  "type": "string",
                  "description": "The brand associated with the product.",
                  "example": "A Shoe Brand"
                },
                "category": {
                  "type": "string",
                  "description": "The product category a person viewed.",
                  "example": "shoes"
                },
                "coupon": {
                  "type": "string",
                  "description": "The coupon code associated with the product (like `NEWUSER20`).",
                  "example": "NEWUSER20"
                },
                "image_url": {
                  "type": "string",
                  "description": "The URL of the product image.",
                  "example": "https://www.example.com/product/123.jpg"
                },
                "name": {
                  "type": "string",
                  "description": "The name of the product a person viewed.",
                  "example": "Cool Shoes"
                },
                "position": {
                  "type": "number",
                  "description": "The position of the product in the list.",
                  "example": 3
                },
                "price": {
                  "type": "number",
                  "description": "The price of the product.",
                  "example": 139.99
                },
                "product_id": {
                  "x-scalar-ignore": true,
                  "type": "string",
                  "description": "The product ID.",
                  "example": "coolshoes-123"
                },
                "quantity": {
                  "type": "integer",
                  "description": "The quantity of the product.",
                  "example": 1
                },
                "sku": {
                  "type": "string",
                  "description": "The stock keeping unit (SKU) of the product a person viewed.",
                  "example": "abc-123-xyz"
                },
                "url": {
                  "type": "string",
                  "description": "The URL of the product page.",
                  "example": "https://www.example.com/product/123"
                },
                "variant": {
                  "type": "string",
                  "description": "The variant of the product a person viewed, if applicable.",
                  "example": "red"
                }
              }
            }
          }
        }
      },
      "checkout_started": {
        "title": "Ecommerce: Checkout Started\n",
        "description": "Use the `Checkout Started` to represent a checkout process that has been started.",
        "allOf": {
          "properties": {
            "value": {
              "type": "number",
              "description": "The expected total revenue of the transaction calculated with discounts/coupons.",
              "example": 119.99
            }
          }
        }
      },
      "checkout_step_viewed": {
        "title": "Ecommerce: Checkout Step Viewed\n",
        "description": "Send the `Checkout Step Viewed` event when a person views a step in the checkout process.",
        "type": "object",
        "properties": {
          "checkout_id": {
            "type": "string",
            "description": "The checkout/transaction ID."
          },
          "payment_method": {
            "type": "string",
            "description": "The payment method selected by the user.",
            "example": "Visa"
          },
          "shipping_method": {
            "type": "string",
            "description": "The shipping method selected by the user.",
            "example": "ground"
          },
          "step": {
            "type": "integer",
            "description": "The step number of the checkout process.",
            "example": 2
          }
        }
      },
      "checkout_step_completed": {
        "title": "Ecommerce: Checkout Step Completed\n",
        "description": "Use the `Checkout Step Completed` event when a person completes a step in the checkout process.",
        "type": "object",
        "properties": {
          "checkout_id": {
            "type": "string",
            "description": "The checkout/transaction ID.",
            "example": "cool_persons_checkout_123"
          },
          "payment_method": {
            "type": "string",
            "description": "The payment method selected by the user.",
            "example": "Visa"
          },
          "shipping_method": {
            "type": "string",
            "description": "The shipping method selected by the user.",
            "example": "ground"
          },
          "step": {
            "type": "integer",
            "description": "The step number of the checkout process.",
            "example": 2
          }
        }
      },
      "payment_info_entered": {
        "title": "Ecommerce: Payment Info Updated\n",
        "description": "Fire the `Payment Info Updated` event whenever a person's payment info has been successfully entered.",
        "allOf": {
          "properties": {
            "order_id": {
              "type": "string",
              "description": "The order ID.",
              "example": "order123"
            }
          }
        }
      },
      "order_updated": {
        "title": "Ecommerce: Order Updated\n",
        "description": "Send the `order_updated` event when a person updates their order.",
        "allOf": {
          "properties": {
            "products": {
              "x-scalar-ignore": true,
              "type": "array",
              "description": "The products displayed in the product list. Each object in the array represents a product.",
              "items": {
                "x-scalar-ignore": true,
                "description": "An individual product.",
                "type": "object",
                "properties": {
                  "brand": {
                    "type": "string",
                    "description": "The brand associated with the product.",
                    "example": "A Shoe Brand"
                  },
                  "category": {
                    "type": "string",
                    "description": "The product category a person viewed.",
                    "example": "shoes"
                  },
                  "coupon": {
                    "type": "string",
                    "description": "The coupon code associated with the product (like `NEWUSER20`).",
                    "example": "NEWUSER20"
                  },
                  "image_url": {
                    "type": "string",
                    "description": "The URL of the product image.",
                    "example": "https://www.example.com/product/123.jpg"
                  },
                  "name": {
                    "type": "string",
                    "description": "The name of the product a person viewed.",
                    "example": "Cool Shoes"
                  },
                  "position": {
                    "type": "number",
                    "description": "The position of the product in the list.",
                    "example": 3
                  },
                  "price": {
                    "type": "number",
                    "description": "The price of the product.",
                    "example": 139.99
                  },
                  "product_id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The product ID.",
                    "example": "coolshoes-123"
                  },
                  "quantity": {
                    "type": "integer",
                    "description": "The quantity of the product.",
                    "example": 1
                  },
                  "sku": {
                    "type": "string",
                    "description": "The stock keeping unit (SKU) of the product a person viewed.",
                    "example": "abc-123-xyz"
                  },
                  "url": {
                    "type": "string",
                    "description": "The URL of the product page.",
                    "example": "https://www.example.com/product/123"
                  },
                  "variant": {
                    "type": "string",
                    "description": "The variant of the product a person viewed, if applicable.",
                    "example": "red"
                  }
                }
              }
            }
          }
        }
      },
      "order_completed": {
        "title": "Ecommerce: Order Completed\n",
        "description": "Send the `Order Completed` event when a customer completes an order or a transaction.",
        "allOf": {
          "properties": {
            "checkout_id": {
              "type": "string",
              "description": "The checkout/transaction ID.",
              "example": "checkout123"
            },
            "order_id": {
              "type": "string",
              "description": "The order ID.",
              "example": "order123"
            },
            "products": {
              "x-scalar-ignore": true,
              "type": "array",
              "description": "The products displayed in the product list. Each object in the array represents a product.",
              "items": {
                "x-scalar-ignore": true,
                "description": "An individual product.",
                "type": "object",
                "properties": {
                  "brand": {
                    "type": "string",
                    "description": "The brand associated with the product.",
                    "example": "A Shoe Brand"
                  },
                  "category": {
                    "type": "string",
                    "description": "The product category a person viewed.",
                    "example": "shoes"
                  },
                  "coupon": {
                    "type": "string",
                    "description": "The coupon code associated with the product (like `NEWUSER20`).",
                    "example": "NEWUSER20"
                  },
                  "image_url": {
                    "type": "string",
                    "description": "The URL of the product image.",
                    "example": "https://www.example.com/product/123.jpg"
                  },
                  "name": {
                    "type": "string",
                    "description": "The name of the product a person viewed.",
                    "example": "Cool Shoes"
                  },
                  "position": {
                    "type": "number",
                    "description": "The position of the product in the list.",
                    "example": 3
                  },
                  "price": {
                    "type": "number",
                    "description": "The price of the product.",
                    "example": 139.99
                  },
                  "product_id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The product ID.",
                    "example": "coolshoes-123"
                  },
                  "quantity": {
                    "type": "integer",
                    "description": "The quantity of the product.",
                    "example": 1
                  },
                  "sku": {
                    "type": "string",
                    "description": "The stock keeping unit (SKU) of the product a person viewed.",
                    "example": "abc-123-xyz"
                  },
                  "url": {
                    "type": "string",
                    "description": "The URL of the product page.",
                    "example": "https://www.example.com/product/123"
                  },
                  "variant": {
                    "type": "string",
                    "description": "The variant of the product a person viewed, if applicable.",
                    "example": "red"
                  }
                }
              }
            },
            "subtotal": {
              "type": "number",
              "description": "The order total after discounts but before taxes and shipping.",
              "example": 119.99
            },
            "total": {
              "type": "number",
              "description": "The total amount of the order.",
              "example": 119.99
            }
          }
        }
      },
      "order_refunded": {
        "title": "Ecommerce: Order Refunded\n",
        "description": "Send the `Order Refunded` event when you refund an order. Be sure to include all items refunded from the previous `order_completed` event.",
        "allOf": {
          "properties": {
            "checkout_id": {
              "type": "string",
              "description": "The checkout/transaction ID.",
              "example": "checkout123"
            },
            "order_id": {
              "type": "string",
              "description": "The order ID.",
              "example": "order123"
            },
            "products": {
              "x-scalar-ignore": true,
              "type": "array",
              "description": "The products displayed in the product list. Each object in the array represents a product.",
              "items": {
                "x-scalar-ignore": true,
                "description": "An individual product.",
                "type": "object",
                "properties": {
                  "brand": {
                    "type": "string",
                    "description": "The brand associated with the product.",
                    "example": "A Shoe Brand"
                  },
                  "category": {
                    "type": "string",
                    "description": "The product category a person viewed.",
                    "example": "shoes"
                  },
                  "coupon": {
                    "type": "string",
                    "description": "The coupon code associated with the product (like `NEWUSER20`).",
                    "example": "NEWUSER20"
                  },
                  "image_url": {
                    "type": "string",
                    "description": "The URL of the product image.",
                    "example": "https://www.example.com/product/123.jpg"
                  },
                  "name": {
                    "type": "string",
                    "description": "The name of the product a person viewed.",
                    "example": "Cool Shoes"
                  },
                  "position": {
                    "type": "number",
                    "description": "The position of the product in the list.",
                    "example": 3
                  },
                  "price": {
                    "type": "number",
                    "description": "The price of the product.",
                    "example": 139.99
                  },
                  "product_id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The product ID.",
                    "example": "coolshoes-123"
                  },
                  "quantity": {
                    "type": "integer",
                    "description": "The quantity of the product.",
                    "example": 1
                  },
                  "sku": {
                    "type": "string",
                    "description": "The stock keeping unit (SKU) of the product a person viewed.",
                    "example": "abc-123-xyz"
                  },
                  "url": {
                    "type": "string",
                    "description": "The URL of the product page.",
                    "example": "https://www.example.com/product/123"
                  },
                  "variant": {
                    "type": "string",
                    "description": "The variant of the product a person viewed, if applicable.",
                    "example": "red"
                  }
                }
              }
            },
            "subtotal": {
              "type": "number",
              "description": "The order total after discounts but before taxes and shipping.",
              "example": 119.99
            },
            "total": {
              "type": "number",
              "description": "The total amount refunded.",
              "example": 119.99
            }
          }
        }
      },
      "order_cancelled": {
        "title": "Ecommerce: Order Cancelled\n",
        "description": "Send the `Order Cancelled` event when a customer cancells an order/transaction.",
        "allOf": {
          "properties": {
            "order_id": {
              "type": "string",
              "description": "The cancelled order ID.",
              "example": "order123"
            },
            "products": {
              "x-scalar-ignore": true,
              "type": "array",
              "description": "The products displayed in the product list. Each object in the array represents a product.",
              "items": {
                "x-scalar-ignore": true,
                "description": "An individual product.",
                "type": "object",
                "properties": {
                  "brand": {
                    "type": "string",
                    "description": "The brand associated with the product.",
                    "example": "A Shoe Brand"
                  },
                  "category": {
                    "type": "string",
                    "description": "The product category a person viewed.",
                    "example": "shoes"
                  },
                  "coupon": {
                    "type": "string",
                    "description": "The coupon code associated with the product (like `NEWUSER20`).",
                    "example": "NEWUSER20"
                  },
                  "image_url": {
                    "type": "string",
                    "description": "The URL of the product image.",
                    "example": "https://www.example.com/product/123.jpg"
                  },
                  "name": {
                    "type": "string",
                    "description": "The name of the product a person viewed.",
                    "example": "Cool Shoes"
                  },
                  "position": {
                    "type": "number",
                    "description": "The position of the product in the list.",
                    "example": 3
                  },
                  "price": {
                    "type": "number",
                    "description": "The price of the product.",
                    "example": 139.99
                  },
                  "product_id": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The product ID.",
                    "example": "coolshoes-123"
                  },
                  "quantity": {
                    "type": "integer",
                    "description": "The quantity of the product.",
                    "example": 1
                  },
                  "sku": {
                    "type": "string",
                    "description": "The stock keeping unit (SKU) of the product a person viewed.",
                    "example": "abc-123-xyz"
                  },
                  "url": {
                    "type": "string",
                    "description": "The URL of the product page.",
                    "example": "https://www.example.com/product/123"
                  },
                  "variant": {
                    "type": "string",
                    "description": "The variant of the product a person viewed, if applicable.",
                    "example": "red"
                  }
                }
              }
            },
            "total": {
              "type": "number",
              "description": "The total amount of the order.",
              "example": 119.99
            }
          }
        }
      },
      "coupon_entered": {
        "title": "Ecommerce: Coupon Entered\n",
        "description": "Fire the `Coupon Entered` event when your audience enters a coupon on a cart or an order/transaction.",
        "type": "object",
        "properties": {
          "cart_id": {
            "type": "string",
            "description": "The ID of the cart that the coupon applies to (if applicable).",
            "example": "cool_persons_cart_123"
          },
          "coupon_id": {
            "type": "string",
            "description": "the coupon ID the person entered.",
            "example": "NEWUSER20"
          },
          "order_id": {
            "type": "string",
            "description": "The order/transaction the coupon applies to (if applicable).",
            "example": "order123"
          }
        }
      },
      "coupon_applied": {
        "title": "Ecommerce: Coupon Applied\n",
        "description": "Send the `Coupon Applied` event when you successfully apply a coupon to your audience's cart or transaction.",
        "type": "object",
        "properties": {
          "cart_id": {
            "type": "string",
            "description": "The ID of the cart that the coupon applies to (if applicable).",
            "example": "cool_persons_cart_123"
          },
          "coupon_id": {
            "type": "string",
            "description": "the coupon ID the person entered.",
            "example": "NEWUSER20"
          },
          "coupon_name": {
            "type": "string",
            "description": "The name of the coupon, if applicable.",
            "example": "NEWUSER20"
          },
          "discount": {
            "type": "number",
            "description": "The discount applied through the coupon. This is the ammount subtracted from the `total` in other transaction events.",
            "example": 20
          },
          "order_id": {
            "type": "string",
            "description": "The order/transaction the coupon applies to (if applicable).",
            "example": "order123"
          }
        }
      },
      "coupon_denied": {
        "title": "Ecommerce: Coupon Denied\n",
        "description": "Send the `Coupon Denied` event when you reject a coupon that a customer tried to apply to their cart or transaction.",
        "type": "object",
        "properties": {
          "cart_id": {
            "type": "string",
            "description": "The ID of the cart that the coupon applies to (if applicable).",
            "example": "cool_persons_cart_123"
          },
          "coupon_id": {
            "type": "string",
            "description": "the coupon ID the person entered.",
            "example": "NEWUSER20"
          },
          "coupon_name": {
            "type": "string",
            "description": "The name of the coupon, if applicable.",
            "example": "NEWUSER20"
          },
          "order_id": {
            "type": "string",
            "description": "The order/transaction the coupon applies to (if applicable).",
            "example": "order123"
          },
          "reason": {
            "type": "string",
            "description": "The reason the coupon was denied.",
            "example": "Coupon expired"
          }
        }
      },
      "coupon_removed": {
        "title": "Ecommerce: Coupon Removed\n",
        "description": "Send the `Coupon Removed` event when a coupon is removed from a customer's cart or transaction.",
        "type": "object",
        "properties": {
          "cart_id": {
            "type": "string",
            "description": "The ID of the cart that the coupon applies to (if applicable).",
            "example": "cool_persons_cart_123"
          },
          "coupon_id": {
            "type": "string",
            "description": "the coupon ID the person entered.",
            "example": "NEWUSER20"
          },
          "coupon_name": {
            "type": "string",
            "description": "The name of the coupon, if applicable.",
            "example": "NEWUSER20"
          },
          "discount": {
            "type": "number",
            "description": "The discount applied through the coupon. This is the ammount subtracted from the `total` in other transaction events.",
            "example": 20
          },
          "order_id": {
            "type": "string",
            "description": "The order/transaction the coupon applies to (if applicable).",
            "example": "order123"
          }
        }
      },
      "product_added_to_wishlist": {
        "title": "Ecommerce: Product Added to Wishlist\n",
        "description": "Send the `Product Added to Wishlist` event when a customer adds a product to their wishlist.",
        "allOf": {
          "properties": {
            "wishlist_id": {
              "type": "string",
              "description": "The ID of the wishlist that the product applies to."
            },
            "wishlist_name": {
              "type": "string",
              "description": "The name of the wishlist that the product applies to."
            }
          }
        }
      },
      "product_removed_from_wishlist": {
        "title": "Ecommerce: Product Removed From Wishlist\n",
        "description": "Send the `Product Removed from Wishlist` event when a customer removes a product from their wishlist.",
        "allOf": {
          "properties": {
            "wishlist_id": {
              "type": "string",
              "description": "The ID of the wishlist that the product applies to."
            },
            "wishlist_name": {
              "type": "string",
              "description": "The name of the wishlist that the product applies to."
            }
          }
        }
      },
      "wishlist_product_added_to_cart": {
        "title": "Ecommerce: Wishlisted Item Added to Cart\n",
        "description": "Send the `Wishlisted Item Added to Cart` event when a customer adds a product that was on their wishlist to their cart.",
        "allOf": {
          "properties": {
            "cart_id": {
              "type": "string",
              "description": "The ID of the cart that the product was added to.",
              "example": "cool_persons_cart_123"
            },
            "wishlist_id": {
              "type": "string",
              "description": "The ID of the wishlist that the product applies to.",
              "example": "cool_persons_wishlist_123"
            },
            "wishlist_name": {
              "type": "string",
              "description": "The name of the wishlist that the product applies to.",
              "example": "Cool Person's Wishlist"
            }
          }
        }
      },
      "product_shared": {
        "title": "Ecommerce: Product Shared\n",
        "description": "Send the `Product Shared` event when a customer shares a product with someone else.",
        "type": "object",
        "properties": {
          "brand": {
            "type": "string",
            "description": "The brand associated with the product.",
            "example": "A Shoe Brand"
          },
          "category": {
            "type": "string",
            "description": "The product category a person viewed.",
            "example": "shoes"
          },
          "image_url": {
            "type": "string",
            "description": "The URL of the product image.",
            "example": "https://www.example.com/product/123.jpg"
          },
          "name": {
            "type": "string",
            "description": "The name of the product a person viewed.",
            "example": "Cool Shoes"
          },
          "price": {
            "type": "number",
            "description": "The price of the product.",
            "example": 139.99
          },
          "product_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The product ID.",
            "example": "coolshoes-123"
          },
          "recipient": {
            "type": "string",
            "description": "The person the product was shared with.",
            "example": "friendOfcool.person@example.com"
          },
          "share_message": {
            "type": "string",
            "description": "The message the customer sent with the share.",
            "example": "Check out these cool shoes!"
          },
          "share_via": {
            "type": "string",
            "description": "The channel the product was shared through.",
            "example": "email"
          },
          "sku": {
            "type": "string",
            "description": "The stock keeping unit (SKU) of the product a person viewed.",
            "example": "abc-123-xyz"
          },
          "url": {
            "type": "string",
            "description": "The URL of the product page.",
            "example": "https://www.example.com/product/123"
          },
          "variant": {
            "type": "string",
            "description": "The variant of the product a person viewed, if applicable.",
            "example": "red"
          }
        }
      },
      "cart_shared": {
        "title": "Ecommerce: Cart Shared\n",
        "description": "Send the `Cart Shared` event when a customer shares their cart with someone else.",
        "type": "object",
        "properties": {
          "cart_id": {
            "type": "string",
            "description": "The shopping cart ID.",
            "example": "cool_persons_cart_123"
          },
          "products": {
            "type": "array",
            "description": "An array of product IDs contained in the shared cart.",
            "items": {
              "type": "object",
              "properties": {
                "product_id": {
                  "x-scalar-ignore": true,
                  "type": "string",
                  "description": "The product ID.",
                  "example": "coolshoes-123"
                }
              }
            }
          },
          "recipient": {
            "type": "string",
            "description": "The person the product was shared with.",
            "example": "friendOfcool.person@example.com"
          },
          "share_message": {
            "type": "string",
            "description": "The message the customer sent with the share.",
            "example": "Check out my cart!"
          },
          "share_via": {
            "type": "string",
            "description": "The channel the product was shared through.",
            "example": "email"
          }
        }
      },
      "product_reviewed": {
        "title": "Ecommerce: Product Reviewed\n",
        "description": "Send the `Product Reviewed` event when a customer submits a review of a product.",
        "type": "object",
        "properties": {
          "product_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The product ID.",
            "example": "coolshoes-123"
          },
          "rating": {
            "type": "integer",
            "description": "The rating the customer gave the product.",
            "example": 5
          },
          "review_body": {
            "type": "string",
            "description": "The body of the review.",
            "example": "These shoes are great!"
          },
          "review_id": {
            "type": "string",
            "description": "The ID of the review.",
            "example": "review_123"
          }
        }
      },
      "email_event_bounced": {
        "title": "Email: Bounced\n",
        "type": "object",
        "properties": {
          "context": {
            "type": "object",
            "description": "Contextual information about the event. These fields are in addition to any [captured automatically by your source library](/integrations/data-in/source-spec/common-fields/).",
            "properties": {
              "traits": {
                "type": "object",
                "description": "Traits you want to capture as context for the event.",
                "properties": {
                  "email": {
                    "type": "string",
                    "description": "The recipient's email address."
                  }
                }
              }
            }
          },
          "properties": {
            "description": "Event properties that you can send in a semantic email event. You should send as many of these properties as are available, but you'll almost certainly need the `email_id` to know which email the event refers to.",
            "properties": {
              "email_id": {
                "type": "string",
                "description": "The ID of the email/delivery."
              },
              "campaign_id": {
                "type": "string",
                "description": "The ID of the automation the email belongs to."
              },
              "campaign_name": {
                "type": "string",
                "description": "The automation's friendly name."
              },
              "email_subject": {
                "type": "string",
                "description": "The email's subject line."
              }
            },
            "required": [
              "email_id"
            ],
            "title": "Email: Properties\n",
            "type": "object",
            "x-scalar-ignore": true
          }
        }
      },
      "email_event_delivered": {
        "title": "Email: Delivered\n",
        "type": "object",
        "properties": {
          "context": {
            "type": "object",
            "description": "Contextual information about the event. These fields are in addition to any [captured automatically by your source library](/integrations/data-in/source-spec/common-fields/).",
            "properties": {
              "traits": {
                "type": "object",
                "description": "Traits you want to capture as context for the event.",
                "properties": {
                  "email": {
                    "type": "string",
                    "description": "The recipient's email address."
                  }
                }
              }
            }
          },
          "properties": {
            "description": "Event properties that you can send in a semantic email event. You should send as many of these properties as are available, but you'll almost certainly need the `email_id` to know which email the event refers to.",
            "properties": {
              "email_id": {
                "type": "string",
                "description": "The ID of the email/delivery."
              },
              "campaign_id": {
                "type": "string",
                "description": "The ID of the automation the email belongs to."
              },
              "campaign_name": {
                "type": "string",
                "description": "The automation's friendly name."
              },
              "email_subject": {
                "type": "string",
                "description": "The email's subject line."
              }
            },
            "required": [
              "email_id"
            ],
            "title": "Email: Properties\n",
            "type": "object",
            "x-scalar-ignore": true
          }
        }
      },
      "email_event_link_clicked": {
        "title": "Email: Link Clicked\n",
        "type": "object",
        "properties": {
          "context": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "Contextual information about the event. These fields are in addition to any [captured automatically by your source library](/integrations/data-in/source-spec/common-fields/).",
            "properties": {
              "traits": {
                "type": "object",
                "description": "Traits you want to capture as context for the event.",
                "properties": {
                  "email": {
                    "type": "string",
                    "description": "The recipient's email address."
                  },
                  "ip": {
                    "type": "string",
                    "description": "The IP address of the user who interacted with the email."
                  },
                  "user_agent": {
                    "type": "string",
                    "description": "The user agent of the user who interacted with the email."
                  }
                }
              }
            }
          },
          "properties": {
            "description": "Event properties that you can send in a semantic email event. You should send as many of these properties as are available, but you'll almost certainly need the `email_id` to know which email the event refers to.",
            "properties": {
              "email_id": {
                "type": "string",
                "description": "The ID of the email/delivery."
              },
              "campaign_id": {
                "type": "string",
                "description": "The ID of the automation the email belongs to."
              },
              "campaign_name": {
                "type": "string",
                "description": "The automation's friendly name."
              },
              "email_subject": {
                "type": "string",
                "description": "The email's subject line."
              },
              "link_id": {
                "type": "string",
                "description": "The ID of the link that the user clicked."
              },
              "link_url": {
                "type": "string",
                "description": "The URL of the link that the user clicked."
              }
            },
            "required": [
              "email_id"
            ],
            "title": "Email: Properties\n"
          }
        }
      },
      "email_event_marked_as_spam": {
        "title": "Email: Marked as Spam\n",
        "type": "object",
        "properties": {
          "context": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "Contextual information about the event. These fields are in addition to any [captured automatically by your source library](/integrations/data-in/source-spec/common-fields/).",
            "properties": {
              "traits": {
                "type": "object",
                "description": "Traits you want to capture as context for the event.",
                "properties": {
                  "email": {
                    "type": "string",
                    "description": "The recipient's email address."
                  },
                  "ip": {
                    "type": "string",
                    "description": "The IP address of the user who interacted with the email."
                  },
                  "user_agent": {
                    "type": "string",
                    "description": "The user agent of the user who interacted with the email."
                  }
                }
              }
            }
          },
          "properties": {
            "description": "Event properties that you can send in a semantic email event. You should send as many of these properties as are available, but you'll almost certainly need the `email_id` to know which email the event refers to.",
            "properties": {
              "email_id": {
                "type": "string",
                "description": "The ID of the email/delivery."
              },
              "campaign_id": {
                "type": "string",
                "description": "The ID of the automation the email belongs to."
              },
              "campaign_name": {
                "type": "string",
                "description": "The automation's friendly name."
              },
              "email_subject": {
                "type": "string",
                "description": "The email's subject line."
              }
            },
            "required": [
              "email_id"
            ],
            "title": "Email: Properties\n",
            "type": "object",
            "x-scalar-ignore": true
          }
        }
      },
      "email_event_opened": {
        "title": "Email: Opened\n",
        "type": "object",
        "properties": {
          "context": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "Contextual information about the event. These fields are in addition to any [captured automatically by your source library](/integrations/data-in/source-spec/common-fields/).",
            "properties": {
              "traits": {
                "type": "object",
                "description": "Traits you want to capture as context for the event.",
                "properties": {
                  "email": {
                    "type": "string",
                    "description": "The recipient's email address."
                  },
                  "ip": {
                    "type": "string",
                    "description": "The IP address of the user who interacted with the email."
                  },
                  "user_agent": {
                    "type": "string",
                    "description": "The user agent of the user who interacted with the email."
                  }
                }
              }
            }
          },
          "properties": {
            "description": "Event properties that you can send in a semantic email event. You should send as many of these properties as are available, but you'll almost certainly need the `email_id` to know which email the event refers to.",
            "properties": {
              "email_id": {
                "type": "string",
                "description": "The ID of the email/delivery."
              },
              "campaign_id": {
                "type": "string",
                "description": "The ID of the automation the email belongs to."
              },
              "campaign_name": {
                "type": "string",
                "description": "The automation's friendly name."
              },
              "email_subject": {
                "type": "string",
                "description": "The email's subject line."
              }
            },
            "required": [
              "email_id"
            ],
            "title": "Email: Properties\n",
            "type": "object",
            "x-scalar-ignore": true
          }
        }
      },
      "email_event_unsubscribed": {
        "title": "Email: Unsubscribed\n",
        "type": "object",
        "properties": {
          "context": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "Contextual information about the event. These fields are in addition to any [captured automatically by your source library](/integrations/data-in/source-spec/common-fields/).",
            "properties": {
              "traits": {
                "type": "object",
                "description": "Traits you want to capture as context for the event.",
                "properties": {
                  "email": {
                    "type": "string",
                    "description": "The recipient's email address."
                  },
                  "ip": {
                    "type": "string",
                    "description": "The IP address of the user who interacted with the email."
                  },
                  "user_agent": {
                    "type": "string",
                    "description": "The user agent of the user who interacted with the email."
                  }
                }
              }
            }
          },
          "properties": {
            "description": "Event properties that you can send in a semantic email event. You should send as many of these properties as are available, but you'll almost certainly need the `email_id` to know which email the event refers to.",
            "properties": {
              "email_id": {
                "type": "string",
                "description": "The ID of the email/delivery."
              },
              "campaign_id": {
                "type": "string",
                "description": "The ID of the automation the email belongs to."
              },
              "campaign_name": {
                "type": "string",
                "description": "The automation's friendly name."
              },
              "email_subject": {
                "type": "string",
                "description": "The email's subject line."
              }
            },
            "required": [
              "email_id"
            ],
            "title": "Email: Properties\n",
            "type": "object",
            "x-scalar-ignore": true
          }
        }
      },
      "email_properties": {
        "x-scalar-ignore": true,
        "title": "Email: Properties\n",
        "type": "object",
        "description": "Event properties that you can send in a semantic email event. You should send as many of these properties as are available, but you'll almost certainly need the `email_id` to know which email the event refers to.",
        "required": [
          "email_id"
        ],
        "properties": {
          "email_id": {
            "type": "string",
            "description": "The ID of the email/delivery."
          },
          "campaign_id": {
            "type": "string",
            "description": "The ID of the automation the email belongs to."
          },
          "campaign_name": {
            "type": "string",
            "description": "The automation's friendly name."
          },
          "email_subject": {
            "type": "string",
            "description": "The email's subject line."
          }
        }
      },
      "email_basic_context": {
        "x-scalar-ignore": true,
        "title": "Email: Basic Context\n",
        "type": "object",
        "description": "Contextual information about the event. These fields are in addition to any [captured automatically by your source library](/integrations/data-in/source-spec/common-fields/).",
        "properties": {
          "traits": {
            "type": "object",
            "description": "Traits you want to capture as context for the event.",
            "properties": {
              "email": {
                "type": "string",
                "description": "The recipient's email address."
              }
            }
          }
        }
      },
      "email_total_context": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "Contextual information about the event. These fields are in addition to any [captured automatically by your source library](/integrations/data-in/source-spec/common-fields/).",
        "properties": {
          "traits": {
            "type": "object",
            "description": "Traits you want to capture as context for the event.",
            "properties": {
              "email": {
                "type": "string",
                "description": "The recipient's email address."
              },
              "ip": {
                "type": "string",
                "description": "The IP address of the user who interacted with the email."
              },
              "user_agent": {
                "type": "string",
                "description": "The user agent of the user who interacted with the email."
              }
            }
          }
        }
      },
      "live_chat_conversation_started": {
        "title": "Live Chat Properties",
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "agent_id": {
            "type": "string",
            "description": "The ID of the agent taking the conversation."
          },
          "agent_name": {
            "type": "string",
            "description": "The real name of the agent."
          },
          "agent_username": {
            "type": "string",
            "description": "The username of the agent."
          },
          "conversation_duration": {
            "type": "integer",
            "description": "The duration of the conversation in seconds. 0 when the conversation starts, and the number of seconds indicates the time in the conversation when each message"
          },
          "conversation_id": {
            "type": "string",
            "description": "The ID of the conversation."
          },
          "message_id": {
            "type": "string",
            "description": "The ID of the message that starts the conversation."
          }
        }
      },
      "live_chat_conversation_ended": {
        "title": "Live Chat Properties",
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "agent_id": {
            "type": "string",
            "description": "The ID of the agent taking the conversation."
          },
          "agent_name": {
            "type": "string",
            "description": "The real name of the agent."
          },
          "agent_username": {
            "type": "string",
            "description": "The username of the agent."
          },
          "conversation_duration": {
            "type": "integer",
            "description": "The duration of the conversation in seconds. 0 when the conversation starts, and the number of seconds indicates the time in the conversation when each message"
          },
          "conversation_id": {
            "type": "string",
            "description": "The ID of the conversation."
          },
          "message_id": {
            "type": "string",
            "description": "The ID of the message that starts the conversation."
          }
        }
      },
      "live_chat_message_sent": {
        "title": "Live Chat Properties",
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "agent_id": {
            "type": "string",
            "description": "The ID of the agent taking the conversation."
          },
          "agent_name": {
            "type": "string",
            "description": "The real name of the agent."
          },
          "agent_username": {
            "type": "string",
            "description": "The username of the agent."
          },
          "conversation_duration": {
            "type": "integer",
            "description": "The duration of the conversation in seconds. 0 when the conversation starts, and the number of seconds indicates the time in the conversation when each message"
          },
          "conversation_id": {
            "type": "string",
            "description": "The ID of the conversation."
          },
          "message_id": {
            "type": "string",
            "description": "The ID of the message that starts the conversation."
          }
        }
      },
      "live_chat_message_received": {
        "title": "Live Chat Properties",
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "agent_id": {
            "type": "string",
            "description": "The ID of the agent taking the conversation."
          },
          "agent_name": {
            "type": "string",
            "description": "The real name of the agent."
          },
          "agent_username": {
            "type": "string",
            "description": "The username of the agent."
          },
          "conversation_duration": {
            "type": "integer",
            "description": "The duration of the conversation in seconds. 0 when the conversation starts, and the number of seconds indicates the time in the conversation when each message"
          },
          "conversation_id": {
            "type": "string",
            "description": "The ID of the conversation."
          },
          "message_id": {
            "type": "string",
            "description": "The ID of the message that starts the conversation."
          }
        }
      },
      "live_chat_general": {
        "title": "Live Chat Properties",
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "agent_id": {
            "type": "string",
            "description": "The ID of the agent taking the conversation."
          },
          "agent_name": {
            "type": "string",
            "description": "The real name of the agent."
          },
          "agent_username": {
            "type": "string",
            "description": "The username of the agent."
          },
          "conversation_duration": {
            "type": "integer",
            "description": "The duration of the conversation in seconds. 0 when the conversation starts, and the number of seconds indicates the time in the conversation when each message"
          },
          "conversation_id": {
            "type": "string",
            "description": "The ID of the conversation."
          },
          "message_id": {
            "type": "string",
            "description": "The ID of the message that starts the conversation."
          }
        }
      },
      "mixpanel_alias": {
        "x-tags": [
          "Mixpanel Events"
        ],
        "x-scalar-ignore": true,
        "type": "object",
        "required": [
          "distinct_id",
          "alias"
        ],
        "properties": {
          "alias": {
            "type": "string",
            "description": "The new, unique ID that you want to merge with the `distinct_id`. You can only map a single alias, so you'll typically alias a `userId` to an `anonymousId` to unify the activities of a person before and after you identify them.",
            "default": "coalesce($.userId, $.anonymousId)"
          },
          "distinct_id": {
            "type": "string",
            "description": "The previous ID that you want to set an alias for.",
            "default": "$.previousId"
          }
        }
      },
      "mixpanel_track_purchase": {
        "x-tags": [
          "Mixpanel Events"
        ],
        "x-scalar-ignore": true,
        "type": "object",
        "required": [
          "event"
        ],
        "properties": {
          "event": {
            "type": "string",
            "description": "The name of the action being performed.",
            "default": "$.event"
          },
          "anonymous_id": {
            "type": "string",
            "description": "A distinct ID randomly generated prior to calling identify.",
            "default": "$.anonymousId"
          },
          "app_build": {
            "type": "string",
            "description": "The current build of your application.",
            "default": "$.context.app.build"
          },
          "app_name": {
            "type": "string",
            "description": "The name of your application.",
            "default": "$.context.app.name"
          },
          "app_namespace": {
            "type": "string",
            "description": "The namespace of your application.",
            "default": "$.context.app.namespace"
          },
          "app_version": {
            "type": "string",
            "description": "The current version of your application.",
            "default": "$.context.app.version"
          },
          "bluetooth": {
            "type": "boolean",
            "description": "Whether bluetooth is enabled.",
            "default": "$.context.network.bluetooth"
          },
          "carrier": {
            "type": "string",
            "description": "The carrier that the user is using.",
            "default": "$.context.network.carrier"
          },
          "cellular": {
            "type": "boolean",
            "description": "Whether cellular is enabled.",
            "default": "$.context.network.cellular"
          },
          "context": {
            "type": "object",
            "description": "An object of key-value pairs that provides useful context about the event. See [the context object](/integrations/api/cdp/tag/default/track/) for more information.",
            "default": "$.context"
          },
          "country": {
            "type": "string",
            "description": "The current country of the user.",
            "default": "$.context.location.country"
          },
          "device_id": {
            "type": "string",
            "description": "A unique identifier for the device the user is using.",
            "default": "$.context.device.id"
          },
          "device_manufacturer": {
            "type": "string",
            "description": "The device manufacturer that the user is using.",
            "default": "$.context.device.manufacturer"
          },
          "device_model": {
            "type": "string",
            "description": "The device model that the user is using.",
            "default": "$.context.device.model"
          },
          "device_name": {
            "type": "string",
            "description": "The name of the user's device.",
            "default": "$.context.device.name"
          },
          "device_type": {
            "type": "string",
            "description": "The type of the user's device.",
            "default": "$.context.device.type"
          },
          "distinct_id": {
            "type": "string",
            "description": "The distinct ID for the user. If you've identified the user, this is typically the `userId` You can set this to any value using the identify method.",
            "default": "coalesce($.userId, $.anonymousId)"
          },
          "enable_batching": {
            "type": "boolean",
            "description": "Set as true to ensure CDP sends data to Mixpanel in batches.",
            "default": true
          },
          "event_properties": {
            "type": "object",
            "description": "An object of key-value pairs that represent additional data to be sent along with the event.",
            "default": "$.properties",
            "x-additionalProperties": {
              "x-additionalPropertiesName": "Event Properties",
              "description": "A dictionry of key-value properties you want to send with this event."
            }
          },
          "generatePurchaseEventPerProduct": {
            "type": "boolean",
            "description": "If true, we'll send a separate \"Product Purchased\" event for each product in the event.",
            "default": true
          },
          "group_id": {
            "type": "string",
            "description": "The unique identifier of the group that performed this event.",
            "default": "$.context.groupId"
          },
          "idfa": {
            "type": "string",
            "description": "Identifier for Advertiser. _(iOS)_",
            "default": "coalesce($.context.device.advertisingId, $.context.device.idfa)"
          },
          "insert_id": {
            "type": "string",
            "description": "A random id that is unique to an event. Mixpanel uses $insert_id to deduplicate events.",
            "default": "$.messageId"
          },
          "ip": {
            "type": "string",
            "description": "The IP address of the user. This is only used for geolocation and won't be stored.",
            "default": "$.context.ip"
          },
          "language": {
            "type": "string",
            "description": "The language set by the user.",
            "default": "$.context.locale"
          },
          "library_name": {
            "type": "string",
            "description": "The name of the SDK used to send events.",
            "default": "$.context.library.name"
          },
          "library_version": {
            "type": "string",
            "description": "The version of the SDK used to send events.",
            "default": "$.context.library.version"
          },
          "os_name": {
            "type": "string",
            "description": "The name of the mobile operating system or browser that the user is using.",
            "default": "$.context.os.name"
          },
          "os_version": {
            "type": "string",
            "description": "The version of the mobile operating system or browser the user is using.",
            "default": "$.context.os.version"
          },
          "products": {
            "type": "array",
            "description": "Products in the order.",
            "default": "$.properties.products",
            "items": {
              "type": "object",
              "description": "Each object in the array represents a product.",
              "properties": {
                "brand": {
                  "type": "string",
                  "description": "the product brand."
                },
                "category": {
                  "type": "string",
                  "description": "the product category."
                },
                "coupon": {
                  "type": "string",
                  "description": "The coupon used for the product, if applicable."
                },
                "image_url": {
                  "type": "string",
                  "description": "The URL of the product image, if applicable."
                },
                "name": {
                  "type": "string",
                  "description": "The product name."
                },
                "position": {
                  "type": "string"
                },
                "price": {
                  "type": "number",
                  "description": "The product price."
                },
                "product_id": {
                  "type": "string",
                  "description": "The product ID."
                },
                "quantity": {
                  "type": "integer",
                  "description": "The number of the product purchased."
                },
                "sku": {
                  "type": "string",
                  "description": "The individual product stock keeping unit (SKU)."
                },
                "url": {
                  "type": "string"
                },
                "variant": {
                  "type": "string",
                  "description": "The vairiant of the product, if applicable."
                }
              }
            }
          },
          "referrer": {
            "type": "string",
            "description": "Referrer url",
            "default": "$.context.page.referrer"
          },
          "region": {
            "type": "string",
            "description": "The current region of the user.",
            "default": "$.context.location.region"
          },
          "screen_density": {
            "type": "number",
            "description": "Pixel density of the device screen.",
            "default": "$.context.screen.density"
          },
          "screen_height": {
            "type": "number",
            "description": "Height, in pixels, of the device screen.",
            "default": "$.context.screen.density"
          },
          "screen_width": {
            "type": "number",
            "description": "Width, in pixels, of the device screen.",
            "default": "$.context.screen.density"
          },
          "time": {
            "type": "integer",
            "format": "datetime",
            "description": "The timestamp of the event. Mixpanel expects epoch timestamp in millisecond or second. Please note, Mixpanel only accepts this field as the timestamp. If the field is empty, it will be set to the time Mixpanel servers receive it.",
            "default": "$.timestamp"
          },
          "url": {
            "type": "string",
            "description": "The full URL of the webpage on which the event is triggered.",
            "default": "$.context.page.url"
          },
          "user_id": {
            "description": "The distinct ID after calling identify.",
            "default": "$.userId"
          },
          "userAgent": {
            "type": "string",
            "description": "User agent",
            "default": "$.context.userAgent"
          },
          "utm_properties": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "UTM Tracking Properties",
            "properties": {
              "utm_campaign": {
                "type": "string",
                "default": "$.context.campaign.name"
              },
              "utm_content": {
                "type": "string",
                "default": "$.context.campaign.content"
              },
              "utm_medium": {
                "type": "string",
                "default": "$.context.campaign.medium"
              },
              "utm_source": {
                "type": "string",
                "default": "$.context.campaign.source"
              },
              "utm_term": {
                "type": "string",
                "default": "$.context.campaign.term"
              }
            }
          },
          "wifi": {
            "type": "boolean",
            "description": "Set to true if user’s device has an active, available Wifi connection, false if not.",
            "default": "$.context.network.wifi"
          }
        }
      },
      "mixpanel_group_identify_user": {
        "x-tags": [
          "Mixpanel Events"
        ],
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "group_id": {
            "type": "string",
            "description": "The unique identifier of the group. If there is a trait that matches the group key, it will override this value.",
            "default": "$.groupId"
          },
          "group_key": {
            "type": "string",
            "description": "The group key you specified in Mixpanel under Project settings. If this is not specified, it will be defaulted to \"$group_id\"."
          },
          "traits": {
            "type": "object",
            "description": "The properties to set on the group profile.",
            "default": "$.traits",
            "x-additionalProperties": {
              "x-additionalPropertiesName": "trait key-value pairs",
              "description": "A dictionary of traits you want to set on the group."
            }
          }
        }
      },
      "mixpanel_track_event": {
        "x-tags": [
          "Mixpanel Events"
        ],
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "anonymous_id": {
            "type": "string",
            "description": "A distinct ID randomly generated prior to calling identify.",
            "default": "$.anonymousId"
          },
          "app_build": {
            "type": "string",
            "description": "The current build of your application.",
            "default": "$.context.app.build"
          },
          "app_name": {
            "type": "string",
            "description": "The name of your application.",
            "default": "$.context.app.name"
          },
          "app_namespace": {
            "type": "string",
            "description": "The namespace of your application.",
            "default": "$.context.app.namespace"
          },
          "app_version": {
            "type": "string",
            "description": "The current version of your application.",
            "default": "$.context.app.version"
          },
          "bluetooth": {
            "type": "boolean",
            "description": "Whether bluetooth is enabled.",
            "default": "$.context.network.bluetooth"
          },
          "carrier": {
            "type": "string",
            "description": "The carrier that the user is using.",
            "default": "$.context.network.carrier"
          },
          "cellular": {
            "type": "boolean",
            "description": "Whether cellular is enabled.",
            "default": "$.context.network.cellular"
          },
          "context": {
            "type": "object",
            "description": "An object of key-value pairs that provides useful context about the event. See [the context object](/integrations/api/cdp/tag/default/track/) for more information.",
            "default": "$.context"
          },
          "country": {
            "type": "string",
            "description": "The current country of the user.",
            "default": "$.context.location.country"
          },
          "device_id": {
            "type": "string",
            "description": "A unique identifier for the device the user is using.",
            "default": "$.context.device.id"
          },
          "device_manufacturer": {
            "type": "string",
            "description": "The device manufacturer that the user is using.",
            "default": "$.context.device.manufacturer"
          },
          "device_model": {
            "type": "string",
            "description": "The device model that the user is using.",
            "default": "$.context.device.model"
          },
          "device_name": {
            "type": "string",
            "description": "The name of the user's device.",
            "default": "$.context.device.name"
          },
          "device_type": {
            "type": "string",
            "description": "The type of the user's device.",
            "default": "$.context.device.type"
          },
          "distinct_id": {
            "type": "string",
            "description": "The distinct ID for the user. If you've identified the user, this is typically the `userId` You can set this to any value using the identify method.",
            "default": "coalesce($.userId, $.anonymousId)"
          },
          "enable_batching": {
            "type": "boolean",
            "description": "Set as true to ensure CDP sends data to Mixpanel in batches.",
            "default": true
          },
          "event": {
            "type": "string",
            "description": "The name of the action being performed.",
            "default": "$.event"
          },
          "event_properties": {
            "type": "object",
            "description": "An object of key-value pairs that represent additional data to be sent along with the event.",
            "default": "$.properties",
            "x-additionalProperties": {
              "x-additionalPropertiesName": "Event Properties",
              "description": "A dictionry of key-value properties you want to send with this event."
            }
          },
          "group_id": {
            "type": "string",
            "description": "The unique identifier of the group that performed this event.",
            "default": "$.context.groupId"
          },
          "idfa": {
            "type": "string",
            "description": "Identifier for Advertiser. _(iOS)_",
            "default": "coalesce($.context.device.advertisingId, $.context.device.idfa)"
          },
          "insert_id": {
            "type": "string",
            "description": "A random id that is unique to an event. Mixpanel uses $insert_id to deduplicate events.",
            "default": "$.messageId"
          },
          "ip": {
            "type": "string",
            "description": "The IP address of the user. This is only used for geolocation and won't be stored.",
            "default": "$.context.ip"
          },
          "language": {
            "type": "string",
            "description": "The language set by the user.",
            "default": "$.context.locale"
          },
          "library_name": {
            "type": "string",
            "description": "The name of the SDK used to send events.",
            "default": "$.context.library.name"
          },
          "library_version": {
            "type": "string",
            "description": "The version of the SDK used to send events.",
            "default": "$.context.library.version"
          },
          "os_name": {
            "type": "string",
            "description": "The name of the mobile operating system or browser that the user is using.",
            "default": "$.context.os.name"
          },
          "os_version": {
            "type": "string",
            "description": "The version of the mobile operating system or browser the user is using.",
            "default": "$.context.os.version"
          },
          "referrer": {
            "type": "string",
            "description": "Referrer url",
            "default": "$.context.page.referrer"
          },
          "region": {
            "type": "string",
            "description": "The current region of the user.",
            "default": "$.context.location.region"
          },
          "screen_density": {
            "type": "number",
            "description": "Pixel density of the device screen.",
            "default": "$.context.screen.density"
          },
          "screen_height": {
            "type": "number",
            "description": "Height, in pixels, of the device screen.",
            "default": "$.context.screen.density"
          },
          "screen_width": {
            "type": "number",
            "description": "Width, in pixels, of the device screen.",
            "default": "$.context.screen.density"
          },
          "time": {
            "type": "integer",
            "format": "datetime",
            "description": "The timestamp of the event. Mixpanel expects epoch timestamp in millisecond or second. Please note, Mixpanel only accepts this field as the timestamp. If the field is empty, it will be set to the time Mixpanel servers receive it.",
            "default": "$.timestamp"
          },
          "url": {
            "type": "string",
            "description": "The full URL of the webpage on which the event is triggered.",
            "default": "$.context.page.url"
          },
          "user_id": {
            "description": "The distinct ID after calling identify.",
            "default": "$.userId"
          },
          "userAgent": {
            "type": "string",
            "description": "User agent",
            "default": "$.context.userAgent"
          },
          "utm_properties": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "UTM Tracking Properties",
            "properties": {
              "utm_campaign": {
                "type": "string",
                "default": "$.context.campaign.name"
              },
              "utm_content": {
                "type": "string",
                "default": "$.context.campaign.content"
              },
              "utm_medium": {
                "type": "string",
                "default": "$.context.campaign.medium"
              },
              "utm_source": {
                "type": "string",
                "default": "$.context.campaign.source"
              },
              "utm_term": {
                "type": "string",
                "default": "$.context.campaign.term"
              }
            }
          },
          "wifi": {
            "type": "boolean",
            "description": "Set to true if user’s device has an active, available Wifi connection, false if not.",
            "default": "$.context.network.wifi"
          }
        }
      },
      "mixpanel_identify_user": {
        "x-tags": [
          "Mixpanel Events"
        ],
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "anonymous_id": {
            "type": "string",
            "description": "The generated anonymous ID for the user.",
            "default": "$.anonymousId"
          },
          "ip": {
            "type": "string",
            "description": "The IP address of the user. This is only used for geolocation and won't be stored.",
            "default": "$.context.ip"
          },
          "traits": {
            "type": "object",
            "description": "Properties to set on the user profile.",
            "default": "$.traits",
            "additionalProperties": {
              "x-additionalPropertiesName": "User Properties",
              "description": "A dictionary of key-value pairs you want to set on the identified person."
            }
          },
          "user_id": {
            "type": "string",
            "description": "The unique user identifier set by you",
            "default": "$.userId"
          }
        }
      },
      "app_installed": {
        "title": "Mobile App: Application Installed\n",
        "oneOf": [
          {
            "title": "Identified User",
            "type": "object",
            "properties": {
              "event": {
                "type": "string",
                "enum": [
                  "Application Installed"
                ],
                "description": "A person installed your app."
              },
              "properties": {
                "description": "The properties typically sent with the event.",
                "properties": {
                  "build": {
                    "type": "string",
                    "description": "The specific build of the app installed."
                  },
                  "version": {
                    "type": "string",
                    "description": "The version of the app installed."
                  }
                },
                "type": "object"
              },
              "type": {
                "x-scalar-ignore": true,
                "type": "string",
                "enum": [
                  "track"
                ],
                "description": "Application events are always `track` calls."
              },
              "userId": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The identifier of the user performing the event."
              }
            }
          },
          {
            "title": "Anonymous User",
            "type": "object",
            "properties": {
              "anonymousId": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The identifier of the anonymous user performing the event."
              },
              "event": {
                "type": "string",
                "enum": [
                  "Application Installed"
                ],
                "description": "A person installed your app."
              },
              "properties": {
                "description": "The properties typically sent with the event.",
                "properties": {
                  "build": {
                    "type": "string",
                    "description": "The specific build of the app installed."
                  },
                  "version": {
                    "type": "string",
                    "description": "The version of the app installed."
                  }
                },
                "type": "object"
              },
              "type": {
                "x-scalar-ignore": true,
                "type": "string",
                "enum": [
                  "track"
                ],
                "description": "Application events are always `track` calls."
              }
            }
          }
        ]
      },
      "app_updated": {
        "title": "Mobile App: Application Updated\n",
        "oneOf": [
          {
            "title": "Identified User",
            "type": "object",
            "properties": {
              "event": {
                "type": "string",
                "enum": [
                  "Application Updated"
                ],
                "description": "A person updated your app."
              },
              "properties": {
                "description": "The properties typically sent with the event.",
                "properties": {
                  "build": {
                    "type": "string",
                    "description": "The specific build of the app the person upgraded to."
                  },
                  "previous_build": {
                    "type": "string",
                    "description": "The previous build of the app installed—the build a person is upgrading _from_."
                  },
                  "previous_version": {
                    "type": "string",
                    "description": "The previous version of the app installed—the version a person is upgrading _from_."
                  },
                  "version": {
                    "type": "string",
                    "description": "The version of the app a person upgraded to."
                  }
                },
                "type": "object"
              },
              "type": {
                "x-scalar-ignore": true,
                "type": "string",
                "enum": [
                  "track"
                ],
                "description": "Application events are always `track` calls."
              },
              "userId": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The identifier of the user performing the event."
              }
            }
          },
          {
            "title": "Anonymous User",
            "type": "object",
            "properties": {
              "anonymousId": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The identifier of the anonymous user performing the event."
              },
              "event": {
                "type": "string",
                "enum": [
                  "Application Updated"
                ],
                "description": "A person updated your app."
              },
              "properties": {
                "description": "The properties typically sent with the event.",
                "properties": {
                  "build": {
                    "type": "string",
                    "description": "The specific build of the app the person upgraded to."
                  },
                  "previous_build": {
                    "type": "string",
                    "description": "The previous build of the app installed—the build a person is upgrading _from_."
                  },
                  "previous_version": {
                    "type": "string",
                    "description": "The previous version of the app installed—the version a person is upgrading _from_."
                  },
                  "version": {
                    "type": "string",
                    "description": "The version of the app a person upgraded to."
                  }
                },
                "type": "object"
              },
              "type": {
                "x-scalar-ignore": true,
                "type": "string",
                "enum": [
                  "track"
                ],
                "description": "Application events are always `track` calls."
              }
            }
          }
        ]
      },
      "app_uninstalled": {
        "title": "Mobile App: Application Uninstalled\n",
        "oneOf": [
          {
            "title": "Identified User",
            "type": "object",
            "properties": {
              "event": {
                "type": "string",
                "enum": [
                  "Application Uninstalled"
                ],
                "description": "A person uninstalled your app."
              },
              "properties": {
                "additionalProperties": {},
                "description": "There are no default properties for the `Application uninstalled` event. You can add custom properties to the event payload.",
                "type": "object"
              },
              "type": {
                "x-scalar-ignore": true,
                "type": "string",
                "enum": [
                  "track"
                ],
                "description": "Application events are always `track` calls."
              },
              "userId": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The identifier of the user performing the event."
              }
            }
          },
          {
            "title": "Anonymous User",
            "type": "object",
            "properties": {
              "anonymousId": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The identifier of the anonymous user performing the event."
              },
              "event": {
                "type": "string",
                "enum": [
                  "Application Uninstalled"
                ],
                "description": "A person uninstalled your app."
              },
              "properties": {
                "additionalProperties": {},
                "description": "The properties typically sent with the event.",
                "type": "object"
              },
              "type": {
                "x-scalar-ignore": true,
                "type": "string",
                "enum": [
                  "track"
                ],
                "description": "Application events are always `track` calls."
              }
            }
          }
        ]
      },
      "app_opened": {
        "title": "Mobile App: Application Opened\n",
        "oneOf": [
          {
            "title": "Identified User",
            "type": "object",
            "properties": {
              "event": {
                "type": "string",
                "enum": [
                  "Application Opened"
                ],
                "description": "A person opened your app. Our SDKs automatically send this event when a person opens your app fresh or when they return to the app after sending it to the background."
              },
              "properties": {
                "description": "The properties typically sent with the event.",
                "properties": {
                  "build": {
                    "type": "string",
                    "description": "The specific build of the app opened."
                  },
                  "from_background": {
                    "type": "boolean",
                    "description": "If true, the user opened the app from the background."
                  },
                  "url": {
                    "type": "string",
                    "description": "The value of `UIApplicationLaunchOptionsURLKey` from launchOptions. Collected on iOS only."
                  },
                  "version": {
                    "type": "string",
                    "description": "The version of the app opened."
                  }
                },
                "type": "object"
              },
              "type": {
                "x-scalar-ignore": true,
                "type": "string",
                "enum": [
                  "track"
                ],
                "description": "Application events are always `track` calls."
              },
              "userId": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The identifier of the user performing the event."
              }
            }
          },
          {
            "title": "Anonymous User",
            "type": "object",
            "properties": {
              "anonymousId": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The identifier of the anonymous user performing the event."
              },
              "event": {
                "type": "string",
                "enum": [
                  "Application Opened"
                ],
                "description": "A person opened your app. Our SDKs automatically send this event when a person opens your app fresh or when they return to the app after sending it to the background."
              },
              "properties": {
                "description": "The properties typically sent with the event.",
                "properties": {
                  "build": {
                    "type": "string",
                    "description": "The specific build of the app opened."
                  },
                  "from_background": {
                    "type": "boolean",
                    "description": "If true, the user opened the app from the background."
                  },
                  "url": {
                    "type": "string",
                    "description": "The value of `UIApplicationLaunchOptionsURLKey` from launchOptions. Collected on iOS only."
                  },
                  "version": {
                    "type": "string",
                    "description": "The version of the app opened."
                  }
                },
                "type": "object"
              },
              "type": {
                "x-scalar-ignore": true,
                "type": "string",
                "enum": [
                  "track"
                ],
                "description": "Application events are always `track` calls."
              }
            }
          }
        ]
      },
      "app_backgrounded": {
        "title": "Mobile App: Application Backgrounded\n",
        "oneOf": [
          {
            "title": "Identified User",
            "type": "object",
            "properties": {
              "event": {
                "type": "string",
                "enum": [
                  "Application Backgrounded"
                ],
                "description": "A person sent your app to the background. Our SDKs automatically send this event when a person backgrounds your app."
              },
              "properties": {
                "additionalProperties": {},
                "description": "There are no default properties for the `Application Backgrounded` event. You can add custom properties to the event payload.",
                "type": "object"
              },
              "type": {
                "x-scalar-ignore": true,
                "type": "string",
                "enum": [
                  "track"
                ],
                "description": "Application events are always `track` calls."
              },
              "userId": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The identifier of the user performing the event."
              }
            }
          },
          {
            "title": "Anonymous User",
            "type": "object",
            "properties": {
              "anonymousId": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The identifier of the anonymous user performing the event."
              },
              "event": {
                "type": "string",
                "enum": [
                  "Application Backgrounded"
                ],
                "description": "A person sent your app to the background. Our SDKs automatically send this event when a person backgrounds your app."
              },
              "properties": {
                "additionalProperties": {},
                "description": "There are no default properties for the `Application Backgrounded` event. You can add custom properties to the event payload.",
                "type": "object"
              },
              "type": {
                "x-scalar-ignore": true,
                "type": "string",
                "enum": [
                  "track"
                ],
                "description": "Application events are always `track` calls."
              }
            }
          }
        ]
      },
      "app_foregrounded": {
        "title": "Mobile App: Application Foregrounded\n",
        "oneOf": [
          {
            "title": "Identified User",
            "type": "object",
            "properties": {
              "event": {
                "type": "string",
                "enum": [
                  "Application Foregrounded"
                ],
                "description": "A person brought your app to the foreground after having backgrounded it, indicating that they're using it again. Our SDKs automatically send this event when a person brings your app back to the foreground."
              },
              "properties": {
                "additionalProperties": {},
                "description": "There are no default properties for the `Application Foregrounded` event. You can add custom properties to the event payload.",
                "type": "object"
              },
              "type": {
                "x-scalar-ignore": true,
                "type": "string",
                "enum": [
                  "track"
                ],
                "description": "Application events are always `track` calls."
              },
              "userId": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The identifier of the user performing the event."
              }
            }
          },
          {
            "title": "Anonymous User",
            "type": "object",
            "properties": {
              "anonymousId": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The identifier of the anonymous user performing the event."
              },
              "event": {
                "type": "string",
                "enum": [
                  "Application Foregrounded"
                ],
                "description": "A person brought your app to the foreground after having backgrounded it, indicating that they're using it again. Our SDKs automatically send this event when a person brings your app back to the foreground."
              },
              "properties": {
                "additionalProperties": {},
                "description": "There are no default properties for the `Application Foregrounded` event. You can add custom properties to the event payload.",
                "type": "object"
              },
              "type": {
                "x-scalar-ignore": true,
                "type": "string",
                "enum": [
                  "track"
                ],
                "description": "Application events are always `track` calls."
              }
            }
          }
        ]
      },
      "app_crashed": {
        "title": "Mobile App: Application Crashed\n",
        "oneOf": [
          {
            "title": "Identified User",
            "type": "object",
            "properties": {
              "event": {
                "type": "string",
                "enum": [
                  "Application Crashed"
                ],
                "description": "A person experienced a crash in your app. Our SDKs automatically send this event when a person experiences a crash in your app."
              },
              "properties": {
                "additionalProperties": {},
                "description": "There are no default properties for the `Application Crashed` event. You can add custom properties to the event payload.",
                "type": "object"
              },
              "type": {
                "x-scalar-ignore": true,
                "type": "string",
                "enum": [
                  "track"
                ],
                "description": "Application events are always `track` calls."
              },
              "userId": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The identifier of the user performing the event."
              }
            }
          },
          {
            "title": "Anonymous User",
            "type": "object",
            "properties": {
              "anonymousId": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The identifier of the anonymous user performing the event."
              },
              "event": {
                "type": "string",
                "enum": [
                  "Application Crashed"
                ],
                "description": "A person experienced a crash in your app. Our SDKs automatically send this event when a person experiences a crash in your app."
              },
              "properties": {
                "additionalProperties": {},
                "description": "There are no default properties for the `Application Crashed` event. You can add custom properties to the event payload.",
                "type": "object"
              },
              "type": {
                "x-scalar-ignore": true,
                "type": "string",
                "enum": [
                  "track"
                ],
                "description": "Application events are always `track` calls."
              }
            }
          }
        ]
      },
      "geofence_transition": {
        "title": "Mobile App: Geofence Transition\n",
        "type": "object",
        "properties": {
          "event": {
            "type": "string",
            "enum": [
              "Geofence Transition"
            ],
            "description": "A person entered or exited a geofence. Our mobile SDKs send this event automatically when a person crosses a geofence you defined in Customer.io. For privacy, the event never includes the person's coordinates."
          },
          "properties": {
            "description": "The properties sent with the event.",
            "properties": {
              "geofenceId": {
                "type": "string",
                "description": "Customer.io-generated ID of the geofence. This is different from the `external_id` used for geofence imports."
              },
              "geofenceName": {
                "type": "string",
                "description": "The geofence's name. Included only when the geofence has one."
              },
              "geosetId": {
                "type": "string",
                "description": "Customer.io-generated ID of the geofence set. The SDK sends one event for each geofence set the geofence belongs to. A geofence that isn't in any set produces a single event without a `geosetId`."
              },
              "metadata": {
                "type": "object",
                "description": "The metadata you define on the geofence in Customer.io. Values keep their types—a numeric value arrives as a number, not a string. Metadata values must be JSON scalars (`string`, `number`, or `boolean`); the SDKs drop array and object values. If the geofence has no metadata, the property is an empty object.",
                "additionalProperties": {
                  "oneOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "number"
                    },
                    {
                      "type": "boolean"
                    }
                  ]
                }
              },
              "transition": {
                "type": "string",
                "enum": [
                  "enter",
                  "exit"
                ],
                "description": "The direction the device crossed the geofence boundary."
              },
              "transitionId": {
                "type": "string",
                "description": "A unique ID for the transition into or out of the geofence. Events sent for different geofence sets share the same ID, and it stays stable if the SDK retries delivery. To de-duplicate transition events, use `transitionId` and `geosetId` together."
              }
            },
            "type": "object"
          },
          "type": {
            "x-scalar-ignore": true,
            "type": "string",
            "enum": [
              "track"
            ],
            "description": "Application events are always `track` calls."
          },
          "userId": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The identifier of the user performing the event."
          }
        }
      },
      "app_event_call_type": {
        "x-scalar-ignore": true,
        "type": "string",
        "enum": [
          "track"
        ],
        "description": "Application events are always `track` calls."
      },
      "app_event_userId": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The identifier of the user performing the event."
      },
      "app_event_anonymousId": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The identifier of the anonymous user performing the event."
      },
      "video_playback_started": {
        "title": "Video Playback Started",
        "allOf": null
      },
      "video_playback_paused": {
        "title": "Video Playback Paused",
        "allOf": null
      },
      "video_playback_interrupted": {
        "title": "Video Playback Interrupted",
        "allOf": {
          "properties": {
            "method": {
              "type": "string",
              "description": "For Video Playback Interrupted events only, you can send this property denoting how the playback was interrupted (such as browser redirect, device lock, or call)."
            }
          }
        }
      },
      "video_playback_buffer_started": {
        "title": "Video Playback Buffer Started",
        "allOf": null
      },
      "video_playback_buffer_completed": {
        "title": "Video Playback Buffer Completed",
        "allOf": null
      },
      "video_playback_seek_started": {
        "title": "Video Playback Seek Started",
        "allOf": null
      },
      "video_playback_seek_completed": {
        "title": "Video Playback Seek Completed",
        "allOf": null
      },
      "video_playback_resumed": {
        "title": "Video Playback Resumed",
        "allOf": null
      },
      "video_playback_completed": {
        "title": "Video Playback Completed",
        "allOf": null
      },
      "video_playback_exited": {
        "title": "Video Playback Exited",
        "allOf": null
      },
      "content_assets": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "content_asset_ids": {
            "type": "array",
            "description": "The ID of the videos a user started. The array indicates a potential playlist of videos/content IDs a person is starting.",
            "items": {
              "type": "string"
            }
          },
          "content_pod_ids": {
            "type": "array",
            "description": "The IDs of the content \"pods\" in a playback session. Imagine a video that contains content and an ad; that means the video contains two pods—one for the content and one for the ad. The array indicates a potential playlist of content pod IDs a person is starting.",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "content_asset": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "content_asset_id": {
            "type": "string",
            "description": "The ID of the video a user interacted with."
          },
          "content_pod_id": {
            "type": "string",
            "description": "The ID of the content \"pod\" in a playback session. Imagine a video that contains content and an ad; that means the video contains two pods—one for the content and one for the ad. This is the specific piece of content that the user interacted with."
          }
        }
      },
      "method": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "For Video Playback Interrupted events only, you can send this property denoting how the playback was interrupted (such as browser redirect, device lock, or call)."
      },
      "playback": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "ad_asset_id": {
            "type": "string",
            "description": "The Ad Asset Id(s) of the ad/ads playing or about to be played in the video player. For Video Playback Started events only, you should send an Array of unique ad asset IDs. For all other playback events, you should send a string with the ID of the current ad asset playing at the time of the event."
          },
          "ad_enabled": {
            "type": "boolean",
            "description": "Set to `true` if a viewer can see your ads. You'd set false if a viewer has ad block or other blockers enabled."
          },
          "ad_pod_id": {
            "type": "string",
            "description": "The Ad Pod Id(s) of the ad/ads playing or about to be played in the video player. For Video Playback Started events only, you should send an Array of unique ad pod IDs. For all other playback events, you should send a string with the ID of the current ad pod playing at the time of the event."
          },
          "ad_type": {
            "type": "string",
            "enum": [
              "pre-roll",
              "mid-roll",
              "post-roll"
            ],
            "description": "The type of ad playing at the time of the event. Values can include pre-roll, mid-roll, and post-roll."
          },
          "bitrate": {
            "type": "integer",
            "description": "The current kbps."
          },
          "framerate": {
            "type": "integer",
            "description": "The average frames per second (fps)."
          },
          "full_screen": {
            "type": "boolean",
            "description": "If `true`, playback is in fullscreen mode."
          },
          "livestream": {
            "type": "boolean",
            "description": "Set to `true` if the playback is a livestream."
          },
          "position": {
            "type": "integer",
            "description": "The current index position in **seconds** of the playhead, including the duration of any ads seen (if available). If the playback is a livestream, check the documentation for relevant destinations for details on how to correctly pass the playhead position."
          },
          "quality": {
            "type": "string",
            "description": "The video quality of playback, like `480p` or `highres`."
          },
          "session_id": {
            "type": "string",
            "description": "The unique ID of the overall session used to tie all events generated from a specific playback. This value should be the same across all playback, content, and ad events if they are from the same playback session."
          },
          "sound": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100,
            "description": "The current volume of the video player as a value between 1 and 100."
          },
          "total_length": {
            "type": "integer",
            "description": "The total duration of the playback in seconds. This should include the duration of all your content and ad included in this playback session. For livestream playback, send `null`."
          },
          "video_player": {
            "type": "string",
            "description": "The name of the video player the client uses, like `youtube` or `vimeo`."
          }
        }
      },
      "video_content_started": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "airdate": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 date-time when the video content/pod originally aired or was published."
          },
          "asset_id": {
            "type": "string",
            "description": "The ID of the video a user interacted with."
          },
          "bitrate": {
            "type": "integer",
            "description": "The current kbps."
          },
          "channel": {
            "type": "string",
            "description": "The channel the video content/pod belongs to or is aired on, like `hgtv` or `my_youtube_channel`."
          },
          "description": {
            "type": "string",
            "description": "The description of the video content/pod."
          },
          "framerate": {
            "type": "integer",
            "description": "The average frames per second (fps)."
          },
          "full_episode": {
            "type": "boolean",
            "description": "Set to `true` if the content is a full episode of a show."
          },
          "genre": {
            "type": "string",
            "description": "The genre of the video content/pod."
          },
          "keywords": {
            "type": "array",
            "description": "Keywords associated with the video content/pod.",
            "items": {
              "type": "string"
            }
          },
          "livestream": {
            "type": "boolean",
            "description": "Set to `true` if the content is a livestream."
          },
          "pod_id": {
            "type": "string",
            "description": "The ID of the content \"pod\" in a playback session. Imagine a video that contains content and an ad; that means the video contains two pods—one for the content and one for the ad. This is the specific piece of content that the user interacted with."
          },
          "position": {
            "type": "integer",
            "description": "The current index position in **seconds** of the playhead, including the duration of any ads seen (if available). If the playback is a livestream, check the documentation for relevant destinations for details on how to correctly pass the playhead position."
          },
          "program": {
            "type": "string",
            "description": "The name of the program or show the content belongs to (if applicable)."
          },
          "publisher": {
            "type": "string",
            "description": "The publisher of the video content/pod."
          },
          "season": {
            "type": "string",
            "description": "The season the video content/pod belongs to, if applicable."
          },
          "session_id": {
            "type": "string",
            "description": "The unique ID of the overall session used to tie all events generated from a specific playback. This value should be the same across all playback, content, and ad events if they are from the same playback session."
          },
          "title": {
            "type": "string",
            "description": "The title of the video content/pod."
          },
          "total_length": {
            "type": "integer",
            "description": "The total duration of the content/asset in seconds. Note that this is not the duration of the video itself or the playback, but a piece of a complete \"pod\" of content. If the content is an ad in the video, this is the length of the ad."
          }
        }
      },
      "video_content_playing": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "airdate": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 date-time when the video content/pod originally aired or was published."
          },
          "asset_id": {
            "type": "string",
            "description": "The ID of the video a user interacted with."
          },
          "bitrate": {
            "type": "integer",
            "description": "The current kbps."
          },
          "channel": {
            "type": "string",
            "description": "The channel the video content/pod belongs to or is aired on, like `hgtv` or `my_youtube_channel`."
          },
          "description": {
            "type": "string",
            "description": "The description of the video content/pod."
          },
          "framerate": {
            "type": "integer",
            "description": "The average frames per second (fps)."
          },
          "full_episode": {
            "type": "boolean",
            "description": "Set to `true` if the content is a full episode of a show."
          },
          "genre": {
            "type": "string",
            "description": "The genre of the video content/pod."
          },
          "keywords": {
            "type": "array",
            "description": "Keywords associated with the video content/pod.",
            "items": {
              "type": "string"
            }
          },
          "livestream": {
            "type": "boolean",
            "description": "Set to `true` if the content is a livestream."
          },
          "pod_id": {
            "type": "string",
            "description": "The ID of the content \"pod\" in a playback session. Imagine a video that contains content and an ad; that means the video contains two pods—one for the content and one for the ad. This is the specific piece of content that the user interacted with."
          },
          "position": {
            "type": "integer",
            "description": "The current index position in **seconds** of the playhead, including the duration of any ads seen (if available). If the playback is a livestream, check the documentation for relevant destinations for details on how to correctly pass the playhead position."
          },
          "program": {
            "type": "string",
            "description": "The name of the program or show the content belongs to (if applicable)."
          },
          "publisher": {
            "type": "string",
            "description": "The publisher of the video content/pod."
          },
          "season": {
            "type": "string",
            "description": "The season the video content/pod belongs to, if applicable."
          },
          "session_id": {
            "type": "string",
            "description": "The unique ID of the overall session used to tie all events generated from a specific playback. This value should be the same across all playback, content, and ad events if they are from the same playback session."
          },
          "title": {
            "type": "string",
            "description": "The title of the video content/pod."
          },
          "total_length": {
            "type": "integer",
            "description": "The total duration of the content/asset in seconds. Note that this is not the duration of the video itself or the playback, but a piece of a complete \"pod\" of content. If the content is an ad in the video, this is the length of the ad."
          }
        }
      },
      "video_content_completed": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "airdate": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 date-time when the video content/pod originally aired or was published."
          },
          "asset_id": {
            "type": "string",
            "description": "The ID of the video a user interacted with."
          },
          "bitrate": {
            "type": "integer",
            "description": "The current kbps."
          },
          "channel": {
            "type": "string",
            "description": "The channel the video content/pod belongs to or is aired on, like `hgtv` or `my_youtube_channel`."
          },
          "description": {
            "type": "string",
            "description": "The description of the video content/pod."
          },
          "framerate": {
            "type": "integer",
            "description": "The average frames per second (fps)."
          },
          "full_episode": {
            "type": "boolean",
            "description": "Set to `true` if the content is a full episode of a show."
          },
          "genre": {
            "type": "string",
            "description": "The genre of the video content/pod."
          },
          "keywords": {
            "type": "array",
            "description": "Keywords associated with the video content/pod.",
            "items": {
              "type": "string"
            }
          },
          "livestream": {
            "type": "boolean",
            "description": "Set to `true` if the content is a livestream."
          },
          "pod_id": {
            "type": "string",
            "description": "The ID of the content \"pod\" in a playback session. Imagine a video that contains content and an ad; that means the video contains two pods—one for the content and one for the ad. This is the specific piece of content that the user interacted with."
          },
          "position": {
            "type": "integer",
            "description": "The current index position in **seconds** of the playhead, including the duration of any ads seen (if available). If the playback is a livestream, check the documentation for relevant destinations for details on how to correctly pass the playhead position."
          },
          "program": {
            "type": "string",
            "description": "The name of the program or show the content belongs to (if applicable)."
          },
          "publisher": {
            "type": "string",
            "description": "The publisher of the video content/pod."
          },
          "season": {
            "type": "string",
            "description": "The season the video content/pod belongs to, if applicable."
          },
          "session_id": {
            "type": "string",
            "description": "The unique ID of the overall session used to tie all events generated from a specific playback. This value should be the same across all playback, content, and ad events if they are from the same playback session."
          },
          "title": {
            "type": "string",
            "description": "The title of the video content/pod."
          },
          "total_length": {
            "type": "integer",
            "description": "The total duration of the content/asset in seconds. Note that this is not the duration of the video itself or the playback, but a piece of a complete \"pod\" of content. If the content is an ad in the video, this is the length of the ad."
          }
        }
      },
      "content_general": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "airdate": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 date-time when the video content/pod originally aired or was published."
          },
          "asset_id": {
            "type": "string",
            "description": "The ID of the video a user interacted with."
          },
          "bitrate": {
            "type": "integer",
            "description": "The current kbps."
          },
          "channel": {
            "type": "string",
            "description": "The channel the video content/pod belongs to or is aired on, like `hgtv` or `my_youtube_channel`."
          },
          "description": {
            "type": "string",
            "description": "The description of the video content/pod."
          },
          "framerate": {
            "type": "integer",
            "description": "The average frames per second (fps)."
          },
          "full_episode": {
            "type": "boolean",
            "description": "Set to `true` if the content is a full episode of a show."
          },
          "genre": {
            "type": "string",
            "description": "The genre of the video content/pod."
          },
          "keywords": {
            "type": "array",
            "description": "Keywords associated with the video content/pod.",
            "items": {
              "type": "string"
            }
          },
          "livestream": {
            "type": "boolean",
            "description": "Set to `true` if the content is a livestream."
          },
          "pod_id": {
            "type": "string",
            "description": "The ID of the content \"pod\" in a playback session. Imagine a video that contains content and an ad; that means the video contains two pods—one for the content and one for the ad. This is the specific piece of content that the user interacted with."
          },
          "position": {
            "type": "integer",
            "description": "The current index position in **seconds** of the playhead, including the duration of any ads seen (if available). If the playback is a livestream, check the documentation for relevant destinations for details on how to correctly pass the playhead position."
          },
          "program": {
            "type": "string",
            "description": "The name of the program or show the content belongs to (if applicable)."
          },
          "publisher": {
            "type": "string",
            "description": "The publisher of the video content/pod."
          },
          "season": {
            "type": "string",
            "description": "The season the video content/pod belongs to, if applicable."
          },
          "session_id": {
            "type": "string",
            "description": "The unique ID of the overall session used to tie all events generated from a specific playback. This value should be the same across all playback, content, and ad events if they are from the same playback session."
          },
          "title": {
            "type": "string",
            "description": "The title of the video content/pod."
          },
          "total_length": {
            "type": "integer",
            "description": "The total duration of the content/asset in seconds. Note that this is not the duration of the video itself or the playback, but a piece of a complete \"pod\" of content. If the content is an ad in the video, this is the length of the ad."
          }
        }
      },
      "video_ad_started": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "asset_id": {
            "type": "string",
            "description": "The ID of the video a user interacted with."
          },
          "content": {
            "type": "object",
            "description": "For video destinations that require you to send content metadata with ad events, you can send all the content metadata in this object—like `content.title`, etc."
          },
          "load_type": {
            "type": "string",
            "enum": [
              "dynamic",
              "linear"
            ],
            "description": "Set to `dynamic` if you insert ads dynamically and `linear` if ads are the same for all viewers."
          },
          "pod_id": {
            "type": "string",
            "description": "The ID of the content \"pod\" in a playback session. Imagine a video that contains content and an ad; that means the video contains two pods—one for the content and one for the ad. This is the specific piece of content that the user interacted with."
          },
          "pod_length": {
            "type": "integer",
            "description": "The number of ad assets in the ad-pod"
          },
          "pod_position": {
            "type": "integer",
            "description": "The position of the pod/asset relative to other assets in the same pod. If your ad pod plays 3 ads, you would indicate if this is add number 1, 2, or 3."
          },
          "position": {
            "type": "integer",
            "description": "The current index position in **seconds** of the playhead, with respect to the length of the ad."
          },
          "publisher": {
            "type": "string",
            "description": "The ad's publisher."
          },
          "quartile": {
            "type": "integer",
            "description": "Specifies the quartile of the ad that a viewer reached. If you use our client-side libraries, we'll automatically track this for you."
          },
          "session_id": {
            "type": "string",
            "description": "The unique ID of the overall session used to tie all events generated from a specific playback. This value should be the same across all playback, content, and ad events if they are from the same playback session."
          },
          "title": {
            "type": "string",
            "description": "The title of the ad."
          },
          "total_length": {
            "type": "integer",
            "description": "The total duration of the ad in seconds."
          },
          "type": {
            "type": "string",
            "enum": [
              "pre-roll",
              "mid-roll",
              "post-roll"
            ],
            "description": "The ad type. Values can include pre-roll, mid-roll, and post-roll."
          }
        }
      },
      "video_ad_playing": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "asset_id": {
            "type": "string",
            "description": "The ID of the video a user interacted with."
          },
          "content": {
            "type": "object",
            "description": "For video destinations that require you to send content metadata with ad events, you can send all the content metadata in this object—like `content.title`, etc."
          },
          "load_type": {
            "type": "string",
            "enum": [
              "dynamic",
              "linear"
            ],
            "description": "Set to `dynamic` if you insert ads dynamically and `linear` if ads are the same for all viewers."
          },
          "pod_id": {
            "type": "string",
            "description": "The ID of the content \"pod\" in a playback session. Imagine a video that contains content and an ad; that means the video contains two pods—one for the content and one for the ad. This is the specific piece of content that the user interacted with."
          },
          "pod_length": {
            "type": "integer",
            "description": "The number of ad assets in the ad-pod"
          },
          "pod_position": {
            "type": "integer",
            "description": "The position of the pod/asset relative to other assets in the same pod. If your ad pod plays 3 ads, you would indicate if this is add number 1, 2, or 3."
          },
          "position": {
            "type": "integer",
            "description": "The current index position in **seconds** of the playhead, with respect to the length of the ad."
          },
          "publisher": {
            "type": "string",
            "description": "The ad's publisher."
          },
          "quartile": {
            "type": "integer",
            "description": "Specifies the quartile of the ad that a viewer reached. If you use our client-side libraries, we'll automatically track this for you."
          },
          "session_id": {
            "type": "string",
            "description": "The unique ID of the overall session used to tie all events generated from a specific playback. This value should be the same across all playback, content, and ad events if they are from the same playback session."
          },
          "title": {
            "type": "string",
            "description": "The title of the ad."
          },
          "total_length": {
            "type": "integer",
            "description": "The total duration of the ad in seconds."
          },
          "type": {
            "type": "string",
            "enum": [
              "pre-roll",
              "mid-roll",
              "post-roll"
            ],
            "description": "The ad type. Values can include pre-roll, mid-roll, and post-roll."
          }
        }
      },
      "video_ad_completed": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "asset_id": {
            "type": "string",
            "description": "The ID of the video a user interacted with."
          },
          "content": {
            "type": "object",
            "description": "For video destinations that require you to send content metadata with ad events, you can send all the content metadata in this object—like `content.title`, etc."
          },
          "load_type": {
            "type": "string",
            "enum": [
              "dynamic",
              "linear"
            ],
            "description": "Set to `dynamic` if you insert ads dynamically and `linear` if ads are the same for all viewers."
          },
          "pod_id": {
            "type": "string",
            "description": "The ID of the content \"pod\" in a playback session. Imagine a video that contains content and an ad; that means the video contains two pods—one for the content and one for the ad. This is the specific piece of content that the user interacted with."
          },
          "pod_length": {
            "type": "integer",
            "description": "The number of ad assets in the ad-pod"
          },
          "pod_position": {
            "type": "integer",
            "description": "The position of the pod/asset relative to other assets in the same pod. If your ad pod plays 3 ads, you would indicate if this is add number 1, 2, or 3."
          },
          "position": {
            "type": "integer",
            "description": "The current index position in **seconds** of the playhead, with respect to the length of the ad."
          },
          "publisher": {
            "type": "string",
            "description": "The ad's publisher."
          },
          "quartile": {
            "type": "integer",
            "description": "Specifies the quartile of the ad that a viewer reached. If you use our client-side libraries, we'll automatically track this for you."
          },
          "session_id": {
            "type": "string",
            "description": "The unique ID of the overall session used to tie all events generated from a specific playback. This value should be the same across all playback, content, and ad events if they are from the same playback session."
          },
          "title": {
            "type": "string",
            "description": "The title of the ad."
          },
          "total_length": {
            "type": "integer",
            "description": "The total duration of the ad in seconds."
          },
          "type": {
            "type": "string",
            "enum": [
              "pre-roll",
              "mid-roll",
              "post-roll"
            ],
            "description": "The ad type. Values can include pre-roll, mid-roll, and post-roll."
          }
        }
      },
      "ad_general": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "asset_id": {
            "type": "string",
            "description": "The ID of the video a user interacted with."
          },
          "content": {
            "type": "object",
            "description": "For video destinations that require you to send content metadata with ad events, you can send all the content metadata in this object—like `content.title`, etc."
          },
          "load_type": {
            "type": "string",
            "enum": [
              "dynamic",
              "linear"
            ],
            "description": "Set to `dynamic` if you insert ads dynamically and `linear` if ads are the same for all viewers."
          },
          "pod_id": {
            "type": "string",
            "description": "The ID of the content \"pod\" in a playback session. Imagine a video that contains content and an ad; that means the video contains two pods—one for the content and one for the ad. This is the specific piece of content that the user interacted with."
          },
          "pod_length": {
            "type": "integer",
            "description": "The number of ad assets in the ad-pod"
          },
          "pod_position": {
            "type": "integer",
            "description": "The position of the pod/asset relative to other assets in the same pod. If your ad pod plays 3 ads, you would indicate if this is add number 1, 2, or 3."
          },
          "position": {
            "type": "integer",
            "description": "The current index position in **seconds** of the playhead, with respect to the length of the ad."
          },
          "publisher": {
            "type": "string",
            "description": "The ad's publisher."
          },
          "quartile": {
            "type": "integer",
            "description": "Specifies the quartile of the ad that a viewer reached. If you use our client-side libraries, we'll automatically track this for you."
          },
          "session_id": {
            "type": "string",
            "description": "The unique ID of the overall session used to tie all events generated from a specific playback. This value should be the same across all playback, content, and ad events if they are from the same playback session."
          },
          "title": {
            "type": "string",
            "description": "The title of the ad."
          },
          "total_length": {
            "type": "integer",
            "description": "The total duration of the ad in seconds."
          },
          "type": {
            "type": "string",
            "enum": [
              "pre-roll",
              "mid-roll",
              "post-roll"
            ],
            "description": "The ad type. Values can include pre-roll, mid-roll, and post-roll."
          }
        }
      },
      "video_quality_updated": {
        "title": "Video Quality Updated",
        "type": "object",
        "properties": {
          "bitrate": {
            "type": "integer",
            "description": "The current kbps."
          },
          "droppedFrames": {
            "type": "integer",
            "description": "The number of frames dropped during playback."
          },
          "framerate": {
            "type": "integer",
            "description": "The average frames per second (fps)."
          },
          "startupTime": {
            "type": "integer",
            "description": "The time it takes for the video to start playing."
          }
        }
      },
      "create_update_device": {
        "title": "Create or Update Device",
        "description": "Add or update a device. If a device (represented by `device.token`) exists, does not exist, we'll create it. If the device token already exists, we'll update the it.",
        "type": "object",
        "required": [
          "event",
          "userId",
          "context",
          "event",
          "userId",
          "context"
        ],
        "properties": {
          "context": {
            "type": "object",
            "required": [
              "device",
              "device"
            ],
            "description": "Information about the device performing the event.",
            "properties": {
              "device": {
                "type": "object",
                "required": [
                  "token",
                  "token"
                ],
                "description": "Device information.",
                "properties": {
                  "token": {
                    "type": "string",
                    "description": "The device token."
                  },
                  "type": {
                    "type": "string",
                    "description": "The device type.",
                    "enum": [
                      "ios",
                      "android",
                      "ios",
                      "android"
                    ]
                  }
                }
              },
              "app": {
                "type": "object",
                "description": "Information about your app.",
                "properties": {
                  "namespace": {
                    "type": "string",
                    "description": "The bundle ID (iOS) or package name (Android) of your app. We map it to the device's `app_identifier` attribute, so that we know [which of your apps](/messaging/channels/push/developer-guide/#device-app-identifier) the device belongs to. If you have a single app, you don't need to send it."
                  }
                }
              }
            },
            "additionalProperties": {
              "x-AdditionalPropertiesName": "Additional Event Properties"
            }
          },
          "event": {
            "type": "string",
            "description": "The event name.",
            "enum": [
              "Device Created or Updated",
              "Device Created or Updated"
            ],
            "example": "Device Created or Updated"
          },
          "userId": {
            "type": "string",
            "description": "The user's unique identifier.",
            "example": "42"
          }
        },
        "example": {
          "context": {
            "device": {
              "token": "string",
              "type": "ios"
            },
            "app": {
              "namespace": "com.example.yourapp"
            }
          },
          "event": "Device Created or Updated",
          "userId": "42",
          "type": "track",
          "timestamp": "2021-07-14T19:10:25.000Z"
        },
        "x-scalar-ignore": true
      },
      "delete_device": {
        "title": "Delete Device",
        "description": "Delete a device.",
        "type": "object",
        "required": [
          "event",
          "userId",
          "context",
          "event",
          "userId",
          "context"
        ],
        "properties": {
          "context": {
            "type": "object",
            "required": [
              "device",
              "device"
            ],
            "description": "Information about the device performing the event. Our SDKs typically collect these properties automatically.",
            "properties": {
              "device": {
                "type": "object",
                "required": [
                  "token",
                  "token"
                ],
                "description": "Device information.",
                "properties": {
                  "token": {
                    "type": "string",
                    "description": "The device token."
                  },
                  "type": {
                    "type": "string",
                    "description": "The device type.",
                    "enum": [
                      "ios",
                      "android",
                      "ios",
                      "android"
                    ]
                  }
                }
              }
            },
            "additionalProperties": {
              "x-AdditionalPropertiesName": "Additional Event Properties"
            }
          },
          "event": {
            "type": "string",
            "description": "The event name.",
            "enum": [
              "Device Deleted",
              "Device Deleted"
            ]
          },
          "userId": {
            "type": "string",
            "description": "The user's unique identifier."
          }
        },
        "example": {
          "context": {
            "device": {
              "token": "string",
              "type": "ios"
            }
          },
          "event": "Device Deleted",
          "userId": "42",
          "type": "track",
          "timestamp": "2021-07-14T19:10:25.000Z"
        },
        "x-scalar-ignore": true
      },
      "delete_person": {
        "title": "Delete Person",
        "description": "Remove a person from your Customer.io environment.",
        "type": "object",
        "required": [
          "event",
          "userId",
          "event",
          "userId"
        ],
        "properties": {
          "event": {
            "type": "string",
            "description": "The event name.",
            "enum": [
              "User Deleted",
              "User Deleted"
            ]
          },
          "userId": {
            "type": "string",
            "description": "The user's unique identifier or their email address. If you provide an email address, we'll look up the person by their email address and delete them."
          },
          "properties": {
            "description": "Properties for the event. These aren't typically useful in Customer.io when deleting people, but you might use them in other places—like an analytics tool (e.g. Mixpanel).",
            "type": "object"
          }
        },
        "example": {
          "event": "User Deleted",
          "userId": "42",
          "type": "track",
          "timestamp": "2021-07-14T19:10:25.000Z"
        },
        "x-scalar-ignore": true
      },
      "relationship_deleted": {
        "title": "Delete Relationship",
        "description": "Remove a relationship between a person and an object in Customer.io.",
        "type": "object",
        "required": [
          "event",
          "userId",
          "properties",
          "event",
          "userId",
          "properties"
        ],
        "properties": {
          "event": {
            "type": "string",
            "description": "The event name.",
            "enum": [
              "Relationship Deleted",
              "Relationship Deleted"
            ]
          },
          "properties": {
            "description": "Properties for the event. In this case, you'll need to provide the `objectId`. You should also provide the `objectTypeId` if you have more than 1 object type; if you don't include it, we'll assume it's `1`.",
            "properties": {
              "objectId": {
                "type": "string",
                "description": "A person is related to a group/object. This is the group/object you want to remove the person from."
              },
              "objectTypeId": {
                "type": "integer",
                "description": "The type of group/object the `objectId` represents. In Customer.io, each type of group/object has a an integer value, starting at 1 and incrementing. For example, if you have two types of groups/objects, you might have `1` represent accounts and `2` might represent companies.\n\nIf you leave this value blank, we'll assume it's `1`.\n",
                "default": 1
              }
            },
            "required": [
              "objectId",
              "objectId"
            ],
            "type": "object"
          },
          "userId": {
            "type": "string",
            "description": "The user's unique identifier or their email address. If you provide an email address, we'll look up the person by their email address."
          }
        },
        "example": {
          "event": "Relationship Deleted",
          "properties": {
            "objectId": "acme",
            "objectTypeId": "1"
          },
          "userId": "1",
          "type": "track"
        },
        "x-scalar-ignore": true
      },
      "group_deleted": {
        "title": "Delete Object",
        "description": "Remove a group (also called an \"object\") from Customer.io Journeys.",
        "type": "object",
        "required": [
          "event",
          "anonymousId",
          "properties",
          "event",
          "anonymousId",
          "properties"
        ],
        "properties": {
          "anonymousId": {
            "type": "string",
            "description": "While you must set a value, it can be anything; we don't use it. Customer.io requires events to be performed by people, but the \"performer\" is irrelevant to this event."
          },
          "event": {
            "type": "string",
            "description": "The event name.",
            "enum": [
              "Object Deleted",
              "Object Deleted"
            ]
          },
          "properties": {
            "description": "Properties for the event. In this case, you'll need to provide the `objectId`. You should also provide the `objectTypeId` if you have more than 1 object type; if you don't include it, we'll assume it's `1`.",
            "properties": {
              "objectId": {
                "type": "string",
                "description": "This is the group/object you want to remove."
              },
              "objectTypeId": {
                "type": "integer",
                "description": "The type of group/object the `objectId` represents. In Customer.io, each type of group/object has a an integer value, starting at 1 and incrementing. For example, if you have two types of groups/objects, you might have `1` represent accounts and `2` might represent companies.\n\nIf you leave this value blank, we'll assume it's `1`.\n",
                "default": 1
              }
            },
            "type": "object"
          }
        },
        "example": {
          "anonymousId": "value-not-used",
          "event": "Object Deleted",
          "properties": {
            "objectId": "acme",
            "objectTypeId": "1"
          },
          "type": "track"
        },
        "x-scalar-ignore": true
      },
      "suppress_person": {
        "title": "Suppress Person",
        "description": "Remove a person from your Customer.io workspace and prevent them from being added back.",
        "type": "object",
        "required": [
          "event",
          "userId",
          "event",
          "userId"
        ],
        "properties": {
          "event": {
            "type": "string",
            "description": "The event name.",
            "enum": [
              "User Suppressed",
              "User Suppressed"
            ]
          },
          "userId": {
            "type": "string",
            "description": "The user's unique identifier."
          },
          "properties": {
            "additionalProperties": {
              "x-AdditionalPropertiesName": "Additional Event Properties"
            },
            "description": "Properties for the event. These aren't typically useful in Customer.io when suppressing people, but you might use them in other places—like an analytics tool (e.g. Mixpanel).",
            "type": "object"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when the event occurred."
          }
        },
        "example": {
          "event": "User Suppressed",
          "userId": "42",
          "timestamp": "2021-07-14T19:10:25.000Z",
          "type": "track"
        },
        "x-scalar-ignore": true
      },
      "unsuppress_person": {
        "title": "Unsuppress Person",
        "description": "Allow a userId to be added back to your Customer.io workspace.",
        "type": "object",
        "required": [
          "event",
          "userId",
          "event",
          "userId"
        ],
        "properties": {
          "event": {
            "type": "string",
            "description": "The event name.",
            "enum": [
              "User Unsuppressed",
              "User Unsuppressed"
            ]
          },
          "userId": {
            "type": "string",
            "description": "The user's unique identifier."
          },
          "properties": {
            "additionalProperties": {
              "x-AdditionalPropertiesName": "Additional Event Properties"
            },
            "description": "Properties for the event. These aren't typically useful in Customer.io when unsuppressing people, but you might use them in other places—like an analytics tool (e.g. Mixpanel).",
            "type": "object"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when the event occurred."
          }
        },
        "example": {
          "event": "User Unsuppressed",
          "userId": "42",
          "timestamp": "2021-07-14T19:10:25.000Z",
          "type": "track"
        },
        "x-scalar-ignore": true
      },
      "report_delivery_event": {
        "title": "Report Delivery Event",
        "description": "Reports delivery events for messages.",
        "type": "object",
        "required": [
          "event",
          "properties",
          "event",
          "properties"
        ],
        "properties": {
          "event": {
            "type": "string",
            "description": "The event name.",
            "enum": [
              "Report Delivery Event",
              "Report Delivery Event"
            ]
          },
          "properties": {
            "additionalProperties": {
              "x-AdditionalPropertiesName": "Additional Event Properties"
            },
            "description": "Properties for the event. These aren't typically useful in Customer.io when suppressing people, but you might use them in other places—like an analytics tool (e.g. Mixpanel).",
            "properties": {
              "actionValue": {
                "type": "string",
                "description": "For in-app messages that are `clicked`, this value represents the value of the action the recipient clicked."
              },
              "deliveryId": {
                "type": "string",
                "description": "The ID of the message delivery."
              },
              "href": {
                "type": "string",
                "description": "For in-app messages that are `clicked`, this value represents the URL/link the recipient clicked."
              },
              "metric": {
                "type": "string",
                "enum": [
                  "delivered",
                  "clicked",
                  "converted",
                  "opened",
                  "delivered",
                  "clicked",
                  "converted",
                  "opened"
                ],
                "description": "The metric you're reporting. Remember, these are metrics that occur outside of Customer.io—after the message is sent. Because this event typically tracks in-app messages, you'll generally see metrics like delivered, opened, clicked, etc."
              },
              "reason": {
                "type": "string",
                "description": "If the message failed for some reason, this field contains the reason why."
              },
              "recipient": {
                "type": "string",
                "description": "The recipient of the message. This field changes depending on the type of message. For in-app messages, this is the person's `deviceId`; for SMS it's the recipient's phone number; for push notifications, it's their device token."
              }
            },
            "type": "object"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when the event occurred."
          }
        },
        "example": {
          "event": "Report Delivery Event",
          "properties": {
            "actionValue": "enable_push",
            "deliveryId": "42",
            "href": "myapp://settings/enable_push",
            "metric": "clicked",
            "recipient": "device_token"
          },
          "timestamp": "2021-07-14T19:10:25.000Z",
          "type": "track"
        },
        "x-scalar-ignore": true
      },
      "report_content_event": {
        "x-scalar-ignore": true,
        "title": "Report Content Event",
        "description": "Reports impressions and clicks for anonymous messages.",
        "type": "object",
        "required": [
          "event",
          "properties",
          "event",
          "properties"
        ],
        "properties": {
          "event": {
            "type": "string",
            "description": "The event name.",
            "enum": [
              "Report Content Event",
              "Report Content Event"
            ]
          },
          "properties": {
            "additionalProperties": {
              "x-AdditionalPropertiesName": "Additional Event Properties"
            },
            "description": "Properties for the event. These aren't typically useful in Customer.io when suppressing people, but you might use them in other places—like an analytics tool (e.g. Mixpanel).",
            "properties": {
              "actionType": {
                "type": "string",
                "enum": [
                  "viewed_content",
                  "clicked_content",
                  "viewed_content",
                  "clicked_content"
                ],
                "description": "The type of activity that occurred on the message."
              },
              "contentId": {
                "type": "integer",
                "description": "The ID of the anonymous in-app message that the person interacted with.",
                "example": 5
              },
              "templateId": {
                "type": "integer",
                "description": "The ID of the message inside the contentId.",
                "example": 10
              }
            },
            "required": [
              "activityType",
              "activityType"
            ],
            "type": "object"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when the event occurred."
          }
        },
        "example": {
          "event": "Report Content Event",
          "properties": {
            "actionType": "clicked_content",
            "contentId": 5,
            "templateId": 10
          },
          "timestamp": "2024-12-14T19:10:25.000Z",
          "type": "track"
        }
      },
      "user": {
        "x-scalar-ignore": true,
        "description": "The person you want to attribute activity to—an `anonymousId` or a `userId`. When you identify a person and associate an `anonymousId` with a `userId`, we'll associate past, anonymous activity with the `userId`.",
        "oneOf": [
          {
            "title": "Known User",
            "type": "object",
            "required": [
              "userId"
            ],
            "properties": {
              "userId": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
                "example": "241ma8mf4a"
              }
            }
          },
          {
            "title": "Anonymous User",
            "type": "object",
            "required": [
              "anonymousId"
            ],
            "properties": {
              "anonymousId": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
                "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
              }
            }
          }
        ]
      },
      "previousId": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The anonymousId or userId value that you want to merge into the canonical profile."
      },
      "alias": {
        "x-scalar-ignore": true,
        "type": "object",
        "required": [
          "previousId",
          "userId"
        ],
        "properties": {
          "previousId": {
            "type": "string",
            "description": "The anonymousId or userId value that you want to merge into the canonical profile."
          },
          "userId": {
            "type": "string",
            "description": "The userId that you want to keep. This is required if you haven't already identified someone with one of our web or server-side libraries.\n"
          }
        }
      },
      "alias_all": {
        "x-scalar-ignore": true,
        "properties": {
          "previousId": {
            "type": "string",
            "description": "The anonymousId or userId value that you want to merge into the canonical profile."
          },
          "userId": {
            "type": "string",
            "description": "The userId that you want to keep. This is required if you haven't already identified someone with one of our web or server-side libraries.\n"
          },
          "context": {
            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
            "oneOf": [
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Non-mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "campaign": {
                    "type": "object",
                    "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                    "properties": {
                      "content": {
                        "type": "string"
                      },
                      "medium": {
                        "type": "string",
                        "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                      },
                      "name": {
                        "type": "string",
                        "description": "The campaign name."
                      },
                      "source": {
                        "type": "string",
                        "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                      },
                      "term": {
                        "type": "string",
                        "description": "The keyword term(s) a user came from."
                      }
                    },
                    "additionalProperties": {
                      "type": "string",
                      "x-additionalPropertiesName": "Additional UTM Parameters"
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "page": {
                    "x-scalar-ignore": true,
                    "type": "object",
                    "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                    "properties": {
                      "keywords": {
                        "type": "array",
                        "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                        "items": {
                          "type": "string"
                        }
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the page. Reserved for future use.\n"
                      },
                      "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."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              },
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "app": {
                    "type": "object",
                    "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                    "properties": {
                      "build": {
                        "type": "string",
                        "description": "The specific build number in the app."
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the app."
                      },
                      "namespace": {
                        "type": "string",
                        "description": "The app's namespace."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the app the call originated from."
                      }
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "device": {
                    "type": "object",
                    "description": "Contains information about the device the event originated from.\n",
                    "properties": {
                      "advertisingId": {
                        "type": "string",
                        "description": "The advertising ID is a unique, anonymous ID for advertising."
                      },
                      "id": {
                        "type": "string",
                        "description": "The device ID."
                      },
                      "manufacturer": {
                        "type": "string",
                        "description": "The device manufacturer."
                      },
                      "model": {
                        "type": "string",
                        "description": "The device model."
                      },
                      "name": {
                        "type": "string",
                        "description": "The device name."
                      },
                      "type": {
                        "type": "string",
                        "description": "The device type—android, iOS, etc.",
                        "enum": [
                          "android",
                          "ios"
                        ]
                      },
                      "version": {
                        "type": "string",
                        "description": "The firmware version for the device."
                      }
                    }
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "network": {
                    "type": "object",
                    "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                    "properties": {
                      "bluetooth": {
                        "type": "boolean",
                        "description": "Lets you know if bluetooth is enabled on a device."
                      },
                      "carrier": {
                        "type": "string",
                        "description": "The cellular carrier the phone uses."
                      },
                      "cellular": {
                        "type": "boolean",
                        "description": "Indicates whether the device's cellular connection is enabled or not."
                      },
                      "wifi": {
                        "type": "boolean",
                        "description": "Indicates whether a device's wifi connection is enabled or not."
                      }
                    }
                  },
                  "os": {
                    "type": "object",
                    "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The operating system running on the device."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the OS running on the device."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              }
            ]
          },
          "integrations": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
            "additionalProperties": {
              "type": "boolean",
              "x-additionalPropertiesName": "Enabled/Disabled integrations"
            },
            "example": {
              "All": true,
              "Salesforce": false
            }
          },
          "messageId": {
            "type": "string",
            "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
          },
          "originalTimestamp": {
            "type": "string",
            "format": "date-time",
            "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
          },
          "receivedAt": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
          },
          "sentAt": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
          },
          "version": {
            "readOnly": true,
            "type": "number",
            "description": "The version of the API that received the event, automatically set by Customer.io."
          }
        },
        "required": [
          "previousId",
          "userId"
        ]
      },
      "identify": {
        "x-scalar-ignore": true,
        "oneOf": [
          {
            "x-scalar-ignore": true,
            "title": "Known User",
            "properties": {
              "userId": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
                "example": "241ma8mf4a"
              },
              "anonymousId": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
                "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
              },
              "context": {
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "oneOf": [
                  {
                    "x-scalar-ignore": true,
                    "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                    "title": "Non-mobile",
                    "properties": {
                      "active": {
                        "type": "boolean",
                        "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                      },
                      "campaign": {
                        "type": "object",
                        "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                        "properties": {
                          "content": {
                            "type": "string"
                          },
                          "medium": {
                            "type": "string",
                            "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                          },
                          "name": {
                            "type": "string",
                            "description": "The campaign name."
                          },
                          "source": {
                            "type": "string",
                            "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                          },
                          "term": {
                            "type": "string",
                            "description": "The keyword term(s) a user came from."
                          }
                        },
                        "additionalProperties": {
                          "type": "string",
                          "x-additionalPropertiesName": "Additional UTM Parameters"
                        }
                      },
                      "channel": {
                        "type": "string",
                        "enum": [
                          "browser",
                          "server",
                          "mobile"
                        ],
                        "description": "The channel the event originated from."
                      },
                      "ip": {
                        "type": "string",
                        "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                      },
                      "locale": {
                        "type": "string",
                        "description": "The locale string for the current user, e.g. `en-US`."
                      },
                      "page": {
                        "x-scalar-ignore": true,
                        "type": "object",
                        "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                        "properties": {
                          "keywords": {
                            "type": "array",
                            "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                            "items": {
                              "type": "string"
                            }
                          },
                          "name": {
                            "type": "string",
                            "description": "The name of the page. Reserved for future use.\n"
                          },
                          "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."
                          }
                        }
                      },
                      "userAgent": {
                        "type": "string",
                        "description": "The user agent of the device making the request"
                      }
                    }
                  },
                  {
                    "x-scalar-ignore": true,
                    "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                    "title": "Mobile",
                    "properties": {
                      "active": {
                        "type": "boolean",
                        "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                      },
                      "app": {
                        "type": "object",
                        "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                        "properties": {
                          "build": {
                            "type": "string",
                            "description": "The specific build number in the app."
                          },
                          "name": {
                            "type": "string",
                            "description": "The name of the app."
                          },
                          "namespace": {
                            "type": "string",
                            "description": "The app's namespace."
                          },
                          "version": {
                            "type": "string",
                            "description": "The version of the app the call originated from."
                          }
                        }
                      },
                      "channel": {
                        "type": "string",
                        "enum": [
                          "browser",
                          "server",
                          "mobile"
                        ],
                        "description": "The channel the event originated from."
                      },
                      "device": {
                        "type": "object",
                        "description": "Contains information about the device the event originated from.\n",
                        "properties": {
                          "advertisingId": {
                            "type": "string",
                            "description": "The advertising ID is a unique, anonymous ID for advertising."
                          },
                          "id": {
                            "type": "string",
                            "description": "The device ID."
                          },
                          "manufacturer": {
                            "type": "string",
                            "description": "The device manufacturer."
                          },
                          "model": {
                            "type": "string",
                            "description": "The device model."
                          },
                          "name": {
                            "type": "string",
                            "description": "The device name."
                          },
                          "type": {
                            "type": "string",
                            "description": "The device type—android, iOS, etc.",
                            "enum": [
                              "android",
                              "ios"
                            ]
                          },
                          "version": {
                            "type": "string",
                            "description": "The firmware version for the device."
                          }
                        }
                      },
                      "ip": {
                        "type": "string",
                        "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                      },
                      "locale": {
                        "type": "string",
                        "description": "The locale string for the current user, e.g. `en-US`."
                      },
                      "network": {
                        "type": "object",
                        "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                        "properties": {
                          "bluetooth": {
                            "type": "boolean",
                            "description": "Lets you know if bluetooth is enabled on a device."
                          },
                          "carrier": {
                            "type": "string",
                            "description": "The cellular carrier the phone uses."
                          },
                          "cellular": {
                            "type": "boolean",
                            "description": "Indicates whether the device's cellular connection is enabled or not."
                          },
                          "wifi": {
                            "type": "boolean",
                            "description": "Indicates whether a device's wifi connection is enabled or not."
                          }
                        }
                      },
                      "os": {
                        "type": "object",
                        "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "The operating system running on the device."
                          },
                          "version": {
                            "type": "string",
                            "description": "The version of the OS running on the device."
                          }
                        }
                      },
                      "userAgent": {
                        "type": "string",
                        "description": "The user agent of the device making the request"
                      }
                    }
                  }
                ]
              },
              "integrations": {
                "x-scalar-ignore": true,
                "type": "object",
                "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                "additionalProperties": {
                  "type": "boolean",
                  "x-additionalPropertiesName": "Enabled/Disabled integrations"
                },
                "example": {
                  "All": true,
                  "Salesforce": false
                }
              },
              "messageId": {
                "type": "string",
                "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
              },
              "originalTimestamp": {
                "type": "string",
                "format": "date-time",
                "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
              },
              "receivedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
              },
              "sentAt": {
                "type": "string",
                "format": "date-time",
                "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
              },
              "traits": {
                "type": "object",
                "description": "Additional properties that you know about a person. We've listed some common/reserved traits below, but you can add any traits that you might use in another system.",
                "properties": {
                  "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>`. To update channel preferences, use `\"cio_subscription_preferences.channels.<channel>\":<boolean>`.",
                    "type": "object",
                    "properties": {
                      "channels": {
                        "type": "object",
                        "description": "Contains channel subscription preferences. Keys are channel type names.",
                        "additionalProperties": {
                          "x-additionalPropertiesName": "channel_type",
                          "description": "Each property is a boolean keyed by the channel type name: `email`, `sms`, `push`, `in_app`, `whatsapp`, `slack`, `line`, or `inbox`. `true` means a person is subscribed to the channel; `false` means they are unsubscribed. Both the topic and channel must be subscribed for a message to send.",
                          "type": "boolean"
                        },
                        "example": {
                          "email": true,
                          "push": false
                        }
                      },
                      "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"
                        },
                        "example": {
                          "topic_1": true,
                          "topic_2": false
                        }
                      }
                    }
                  },
                  "createdAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "We recommend that you pass date-time values as ISO 8601 date-time strings. We convert this value to fit destinations where appropriate."
                  },
                  "email": {
                    "type": "string",
                    "description": "A person's email address. If you pass an email address as the `userId`, Customer.io sets this trait for you."
                  },
                  "unsubscribed": {
                    "description": "If `true`, a person is unsubscribed from emails, SMS, WhatsApp, and push notifications (not in-app messages). Any casing of \"true\" (i.e. TRUE, true, tRUe, etc.), 1, or \"1\" means the person is unsubscribed. If `false`, absent, or any value not considered \"true\", a person is globally subscribed, or if you enabled a subscription center, a person will receive messages based on their `cio_subscription_preferences`.",
                    "type": "boolean"
                  }
                },
                "additionalProperties": {
                  "x-additionalPropertiesName": "Additional Traits",
                  "description": "Traits that you want to set on a person. These can take any JSON shape."
                }
              },
              "version": {
                "readOnly": true,
                "type": "number",
                "description": "The version of the API that received the event, automatically set by Customer.io."
              }
            },
            "required": [
              "userId"
            ]
          },
          {
            "x-scalar-ignore": true,
            "title": "Anonymous User",
            "properties": {
              "anonymousId": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
                "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
              },
              "context": {
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "oneOf": [
                  {
                    "x-scalar-ignore": true,
                    "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                    "title": "Non-mobile",
                    "properties": {
                      "active": {
                        "type": "boolean",
                        "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                      },
                      "campaign": {
                        "type": "object",
                        "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                        "properties": {
                          "content": {
                            "type": "string"
                          },
                          "medium": {
                            "type": "string",
                            "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                          },
                          "name": {
                            "type": "string",
                            "description": "The campaign name."
                          },
                          "source": {
                            "type": "string",
                            "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                          },
                          "term": {
                            "type": "string",
                            "description": "The keyword term(s) a user came from."
                          }
                        },
                        "additionalProperties": {
                          "type": "string",
                          "x-additionalPropertiesName": "Additional UTM Parameters"
                        }
                      },
                      "channel": {
                        "type": "string",
                        "enum": [
                          "browser",
                          "server",
                          "mobile"
                        ],
                        "description": "The channel the event originated from."
                      },
                      "ip": {
                        "type": "string",
                        "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                      },
                      "locale": {
                        "type": "string",
                        "description": "The locale string for the current user, e.g. `en-US`."
                      },
                      "page": {
                        "x-scalar-ignore": true,
                        "type": "object",
                        "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                        "properties": {
                          "keywords": {
                            "type": "array",
                            "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                            "items": {
                              "type": "string"
                            }
                          },
                          "name": {
                            "type": "string",
                            "description": "The name of the page. Reserved for future use.\n"
                          },
                          "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."
                          }
                        }
                      },
                      "userAgent": {
                        "type": "string",
                        "description": "The user agent of the device making the request"
                      }
                    }
                  },
                  {
                    "x-scalar-ignore": true,
                    "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                    "title": "Mobile",
                    "properties": {
                      "active": {
                        "type": "boolean",
                        "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                      },
                      "app": {
                        "type": "object",
                        "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                        "properties": {
                          "build": {
                            "type": "string",
                            "description": "The specific build number in the app."
                          },
                          "name": {
                            "type": "string",
                            "description": "The name of the app."
                          },
                          "namespace": {
                            "type": "string",
                            "description": "The app's namespace."
                          },
                          "version": {
                            "type": "string",
                            "description": "The version of the app the call originated from."
                          }
                        }
                      },
                      "channel": {
                        "type": "string",
                        "enum": [
                          "browser",
                          "server",
                          "mobile"
                        ],
                        "description": "The channel the event originated from."
                      },
                      "device": {
                        "type": "object",
                        "description": "Contains information about the device the event originated from.\n",
                        "properties": {
                          "advertisingId": {
                            "type": "string",
                            "description": "The advertising ID is a unique, anonymous ID for advertising."
                          },
                          "id": {
                            "type": "string",
                            "description": "The device ID."
                          },
                          "manufacturer": {
                            "type": "string",
                            "description": "The device manufacturer."
                          },
                          "model": {
                            "type": "string",
                            "description": "The device model."
                          },
                          "name": {
                            "type": "string",
                            "description": "The device name."
                          },
                          "type": {
                            "type": "string",
                            "description": "The device type—android, iOS, etc.",
                            "enum": [
                              "android",
                              "ios"
                            ]
                          },
                          "version": {
                            "type": "string",
                            "description": "The firmware version for the device."
                          }
                        }
                      },
                      "ip": {
                        "type": "string",
                        "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                      },
                      "locale": {
                        "type": "string",
                        "description": "The locale string for the current user, e.g. `en-US`."
                      },
                      "network": {
                        "type": "object",
                        "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                        "properties": {
                          "bluetooth": {
                            "type": "boolean",
                            "description": "Lets you know if bluetooth is enabled on a device."
                          },
                          "carrier": {
                            "type": "string",
                            "description": "The cellular carrier the phone uses."
                          },
                          "cellular": {
                            "type": "boolean",
                            "description": "Indicates whether the device's cellular connection is enabled or not."
                          },
                          "wifi": {
                            "type": "boolean",
                            "description": "Indicates whether a device's wifi connection is enabled or not."
                          }
                        }
                      },
                      "os": {
                        "type": "object",
                        "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "The operating system running on the device."
                          },
                          "version": {
                            "type": "string",
                            "description": "The version of the OS running on the device."
                          }
                        }
                      },
                      "userAgent": {
                        "type": "string",
                        "description": "The user agent of the device making the request"
                      }
                    }
                  }
                ]
              },
              "integrations": {
                "x-scalar-ignore": true,
                "type": "object",
                "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                "additionalProperties": {
                  "type": "boolean",
                  "x-additionalPropertiesName": "Enabled/Disabled integrations"
                },
                "example": {
                  "All": true,
                  "Salesforce": false
                }
              },
              "messageId": {
                "type": "string",
                "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
              },
              "originalTimestamp": {
                "type": "string",
                "format": "date-time",
                "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
              },
              "receivedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
              },
              "sentAt": {
                "type": "string",
                "format": "date-time",
                "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
              },
              "traits": {
                "type": "object",
                "description": "Traits you know about the person. Customer.io ignores anonymous `identify` calls, but our JavaScript client stores these traits and attaches them when you later identify the person with a `userId`.",
                "additionalProperties": {
                  "x-additionalPropertiesName": "Traits",
                  "description": "Traits that you want to set on a person. These can take any JSON shape."
                }
              },
              "version": {
                "readOnly": true,
                "type": "number",
                "description": "The version of the API that received the event, automatically set by Customer.io."
              }
            },
            "required": [
              "anonymousId"
            ]
          }
        ],
        "example": {
          "userId": "97980cfea0067",
          "traits": {
            "email": "cool.person@example.com",
            "name": "Cool Person",
            "likes_baseball": true,
            "games_attended": 5
          }
        }
      },
      "track": {
        "x-scalar-ignore": true,
        "oneOf": [
          {
            "x-scalar-ignore": true,
            "title": "Custom event",
            "oneOf": [
              {
                "x-scalar-ignore": true,
                "title": "Known User",
                "properties": {
                  "event": {
                    "type": "string",
                    "description": "The name of the event",
                    "example": "new_account"
                  },
                  "userId": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
                    "example": "241ma8mf4a"
                  },
                  "context": {
                    "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                    "oneOf": [
                      {
                        "x-scalar-ignore": true,
                        "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                        "title": "Non-mobile",
                        "properties": {
                          "active": {
                            "type": "boolean",
                            "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                          },
                          "campaign": {
                            "type": "object",
                            "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                            "properties": {
                              "content": {
                                "type": "string"
                              },
                              "medium": {
                                "type": "string",
                                "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                              },
                              "name": {
                                "type": "string",
                                "description": "The campaign name."
                              },
                              "source": {
                                "type": "string",
                                "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                              },
                              "term": {
                                "type": "string",
                                "description": "The keyword term(s) a user came from."
                              }
                            },
                            "additionalProperties": {
                              "type": "string",
                              "x-additionalPropertiesName": "Additional UTM Parameters"
                            }
                          },
                          "channel": {
                            "type": "string",
                            "enum": [
                              "browser",
                              "server",
                              "mobile"
                            ],
                            "description": "The channel the event originated from."
                          },
                          "ip": {
                            "type": "string",
                            "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                          },
                          "locale": {
                            "type": "string",
                            "description": "The locale string for the current user, e.g. `en-US`."
                          },
                          "page": {
                            "x-scalar-ignore": true,
                            "type": "object",
                            "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                            "properties": {
                              "keywords": {
                                "type": "array",
                                "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "name": {
                                "type": "string",
                                "description": "The name of the page. Reserved for future use.\n"
                              },
                              "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."
                              }
                            }
                          },
                          "userAgent": {
                            "type": "string",
                            "description": "The user agent of the device making the request"
                          }
                        }
                      },
                      {
                        "x-scalar-ignore": true,
                        "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                        "title": "Mobile",
                        "properties": {
                          "active": {
                            "type": "boolean",
                            "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                          },
                          "app": {
                            "type": "object",
                            "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                            "properties": {
                              "build": {
                                "type": "string",
                                "description": "The specific build number in the app."
                              },
                              "name": {
                                "type": "string",
                                "description": "The name of the app."
                              },
                              "namespace": {
                                "type": "string",
                                "description": "The app's namespace."
                              },
                              "version": {
                                "type": "string",
                                "description": "The version of the app the call originated from."
                              }
                            }
                          },
                          "channel": {
                            "type": "string",
                            "enum": [
                              "browser",
                              "server",
                              "mobile"
                            ],
                            "description": "The channel the event originated from."
                          },
                          "device": {
                            "type": "object",
                            "description": "Contains information about the device the event originated from.\n",
                            "properties": {
                              "advertisingId": {
                                "type": "string",
                                "description": "The advertising ID is a unique, anonymous ID for advertising."
                              },
                              "id": {
                                "type": "string",
                                "description": "The device ID."
                              },
                              "manufacturer": {
                                "type": "string",
                                "description": "The device manufacturer."
                              },
                              "model": {
                                "type": "string",
                                "description": "The device model."
                              },
                              "name": {
                                "type": "string",
                                "description": "The device name."
                              },
                              "type": {
                                "type": "string",
                                "description": "The device type—android, iOS, etc.",
                                "enum": [
                                  "android",
                                  "ios"
                                ]
                              },
                              "version": {
                                "type": "string",
                                "description": "The firmware version for the device."
                              }
                            }
                          },
                          "ip": {
                            "type": "string",
                            "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                          },
                          "locale": {
                            "type": "string",
                            "description": "The locale string for the current user, e.g. `en-US`."
                          },
                          "network": {
                            "type": "object",
                            "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                            "properties": {
                              "bluetooth": {
                                "type": "boolean",
                                "description": "Lets you know if bluetooth is enabled on a device."
                              },
                              "carrier": {
                                "type": "string",
                                "description": "The cellular carrier the phone uses."
                              },
                              "cellular": {
                                "type": "boolean",
                                "description": "Indicates whether the device's cellular connection is enabled or not."
                              },
                              "wifi": {
                                "type": "boolean",
                                "description": "Indicates whether a device's wifi connection is enabled or not."
                              }
                            }
                          },
                          "os": {
                            "type": "object",
                            "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                            "properties": {
                              "name": {
                                "type": "string",
                                "description": "The operating system running on the device."
                              },
                              "version": {
                                "type": "string",
                                "description": "The version of the OS running on the device."
                              }
                            }
                          },
                          "userAgent": {
                            "type": "string",
                            "description": "The user agent of the device making the request"
                          }
                        }
                      }
                    ]
                  },
                  "integrations": {
                    "x-scalar-ignore": true,
                    "type": "object",
                    "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                    "additionalProperties": {
                      "type": "boolean",
                      "x-additionalPropertiesName": "Enabled/Disabled integrations"
                    },
                    "example": {
                      "All": true,
                      "Salesforce": false
                    }
                  },
                  "messageId": {
                    "type": "string",
                    "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                  },
                  "originalTimestamp": {
                    "type": "string",
                    "format": "date-time",
                    "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                  },
                  "properties": {
                    "additionalProperties": {
                      "x-additionalPropertiesName": "Event Properties",
                      "description": "Additional properties that you want to capture in the event. These can take any JSON shape."
                    },
                    "description": "Additional properties for your event.",
                    "type": "object"
                  },
                  "receivedAt": {
                    "type": "string",
                    "format": "date-time",
                    "readOnly": true,
                    "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                  },
                  "sentAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                  },
                  "timestamp": {
                    "type": "string",
                    "format": "date-time",
                    "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                  },
                  "version": {
                    "readOnly": true,
                    "type": "number",
                    "description": "The version of the API that received the event, automatically set by Customer.io."
                  }
                },
                "required": [
                  "userId",
                  "event"
                ]
              },
              {
                "x-scalar-ignore": true,
                "title": "Anonymous User",
                "properties": {
                  "anonymousId": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
                    "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
                  },
                  "event": {
                    "type": "string",
                    "description": "The name of the event",
                    "example": "new_account"
                  },
                  "context": {
                    "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                    "oneOf": [
                      {
                        "x-scalar-ignore": true,
                        "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                        "title": "Non-mobile",
                        "properties": {
                          "active": {
                            "type": "boolean",
                            "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                          },
                          "campaign": {
                            "type": "object",
                            "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                            "properties": {
                              "content": {
                                "type": "string"
                              },
                              "medium": {
                                "type": "string",
                                "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                              },
                              "name": {
                                "type": "string",
                                "description": "The campaign name."
                              },
                              "source": {
                                "type": "string",
                                "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                              },
                              "term": {
                                "type": "string",
                                "description": "The keyword term(s) a user came from."
                              }
                            },
                            "additionalProperties": {
                              "type": "string",
                              "x-additionalPropertiesName": "Additional UTM Parameters"
                            }
                          },
                          "channel": {
                            "type": "string",
                            "enum": [
                              "browser",
                              "server",
                              "mobile"
                            ],
                            "description": "The channel the event originated from."
                          },
                          "ip": {
                            "type": "string",
                            "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                          },
                          "locale": {
                            "type": "string",
                            "description": "The locale string for the current user, e.g. `en-US`."
                          },
                          "page": {
                            "x-scalar-ignore": true,
                            "type": "object",
                            "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                            "properties": {
                              "keywords": {
                                "type": "array",
                                "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "name": {
                                "type": "string",
                                "description": "The name of the page. Reserved for future use.\n"
                              },
                              "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."
                              }
                            }
                          },
                          "userAgent": {
                            "type": "string",
                            "description": "The user agent of the device making the request"
                          }
                        }
                      },
                      {
                        "x-scalar-ignore": true,
                        "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                        "title": "Mobile",
                        "properties": {
                          "active": {
                            "type": "boolean",
                            "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                          },
                          "app": {
                            "type": "object",
                            "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                            "properties": {
                              "build": {
                                "type": "string",
                                "description": "The specific build number in the app."
                              },
                              "name": {
                                "type": "string",
                                "description": "The name of the app."
                              },
                              "namespace": {
                                "type": "string",
                                "description": "The app's namespace."
                              },
                              "version": {
                                "type": "string",
                                "description": "The version of the app the call originated from."
                              }
                            }
                          },
                          "channel": {
                            "type": "string",
                            "enum": [
                              "browser",
                              "server",
                              "mobile"
                            ],
                            "description": "The channel the event originated from."
                          },
                          "device": {
                            "type": "object",
                            "description": "Contains information about the device the event originated from.\n",
                            "properties": {
                              "advertisingId": {
                                "type": "string",
                                "description": "The advertising ID is a unique, anonymous ID for advertising."
                              },
                              "id": {
                                "type": "string",
                                "description": "The device ID."
                              },
                              "manufacturer": {
                                "type": "string",
                                "description": "The device manufacturer."
                              },
                              "model": {
                                "type": "string",
                                "description": "The device model."
                              },
                              "name": {
                                "type": "string",
                                "description": "The device name."
                              },
                              "type": {
                                "type": "string",
                                "description": "The device type—android, iOS, etc.",
                                "enum": [
                                  "android",
                                  "ios"
                                ]
                              },
                              "version": {
                                "type": "string",
                                "description": "The firmware version for the device."
                              }
                            }
                          },
                          "ip": {
                            "type": "string",
                            "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                          },
                          "locale": {
                            "type": "string",
                            "description": "The locale string for the current user, e.g. `en-US`."
                          },
                          "network": {
                            "type": "object",
                            "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                            "properties": {
                              "bluetooth": {
                                "type": "boolean",
                                "description": "Lets you know if bluetooth is enabled on a device."
                              },
                              "carrier": {
                                "type": "string",
                                "description": "The cellular carrier the phone uses."
                              },
                              "cellular": {
                                "type": "boolean",
                                "description": "Indicates whether the device's cellular connection is enabled or not."
                              },
                              "wifi": {
                                "type": "boolean",
                                "description": "Indicates whether a device's wifi connection is enabled or not."
                              }
                            }
                          },
                          "os": {
                            "type": "object",
                            "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                            "properties": {
                              "name": {
                                "type": "string",
                                "description": "The operating system running on the device."
                              },
                              "version": {
                                "type": "string",
                                "description": "The version of the OS running on the device."
                              }
                            }
                          },
                          "userAgent": {
                            "type": "string",
                            "description": "The user agent of the device making the request"
                          }
                        }
                      }
                    ]
                  },
                  "integrations": {
                    "x-scalar-ignore": true,
                    "type": "object",
                    "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                    "additionalProperties": {
                      "type": "boolean",
                      "x-additionalPropertiesName": "Enabled/Disabled integrations"
                    },
                    "example": {
                      "All": true,
                      "Salesforce": false
                    }
                  },
                  "messageId": {
                    "type": "string",
                    "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                  },
                  "originalTimestamp": {
                    "type": "string",
                    "format": "date-time",
                    "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                  },
                  "properties": {
                    "additionalProperties": {
                      "x-additionalPropertiesName": "Event Properties",
                      "description": "Additional properties that you want to capture in the event. These can take any JSON shape."
                    },
                    "description": "Additional properties for your event.",
                    "type": "object"
                  },
                  "receivedAt": {
                    "type": "string",
                    "format": "date-time",
                    "readOnly": true,
                    "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                  },
                  "sentAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                  },
                  "timestamp": {
                    "type": "string",
                    "format": "date-time",
                    "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                  },
                  "version": {
                    "readOnly": true,
                    "type": "number",
                    "description": "The version of the API that received the event, automatically set by Customer.io."
                  }
                },
                "required": [
                  "event",
                  "anonymousId"
                ]
              },
              {
                "x-scalar-ignore": true,
                "title": "Group",
                "properties": {
                  "event": {
                    "type": "string",
                    "description": "The name of the event",
                    "example": "new_account"
                  },
                  "groupId": {
                    "type": "string",
                    "description": "The ID of the group you want to attribute an event to. Note that not all destinations allow groups (or their downstream equivalent) to perform groups."
                  },
                  "context": {
                    "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                    "oneOf": [
                      {
                        "x-scalar-ignore": true,
                        "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                        "title": "Non-mobile",
                        "properties": {
                          "active": {
                            "type": "boolean",
                            "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                          },
                          "campaign": {
                            "type": "object",
                            "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                            "properties": {
                              "content": {
                                "type": "string"
                              },
                              "medium": {
                                "type": "string",
                                "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                              },
                              "name": {
                                "type": "string",
                                "description": "The campaign name."
                              },
                              "source": {
                                "type": "string",
                                "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                              },
                              "term": {
                                "type": "string",
                                "description": "The keyword term(s) a user came from."
                              }
                            },
                            "additionalProperties": {
                              "type": "string",
                              "x-additionalPropertiesName": "Additional UTM Parameters"
                            }
                          },
                          "channel": {
                            "type": "string",
                            "enum": [
                              "browser",
                              "server",
                              "mobile"
                            ],
                            "description": "The channel the event originated from."
                          },
                          "ip": {
                            "type": "string",
                            "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                          },
                          "locale": {
                            "type": "string",
                            "description": "The locale string for the current user, e.g. `en-US`."
                          },
                          "page": {
                            "x-scalar-ignore": true,
                            "type": "object",
                            "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                            "properties": {
                              "keywords": {
                                "type": "array",
                                "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "name": {
                                "type": "string",
                                "description": "The name of the page. Reserved for future use.\n"
                              },
                              "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."
                              }
                            }
                          },
                          "userAgent": {
                            "type": "string",
                            "description": "The user agent of the device making the request"
                          }
                        }
                      },
                      {
                        "x-scalar-ignore": true,
                        "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                        "title": "Mobile",
                        "properties": {
                          "active": {
                            "type": "boolean",
                            "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                          },
                          "app": {
                            "type": "object",
                            "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                            "properties": {
                              "build": {
                                "type": "string",
                                "description": "The specific build number in the app."
                              },
                              "name": {
                                "type": "string",
                                "description": "The name of the app."
                              },
                              "namespace": {
                                "type": "string",
                                "description": "The app's namespace."
                              },
                              "version": {
                                "type": "string",
                                "description": "The version of the app the call originated from."
                              }
                            }
                          },
                          "channel": {
                            "type": "string",
                            "enum": [
                              "browser",
                              "server",
                              "mobile"
                            ],
                            "description": "The channel the event originated from."
                          },
                          "device": {
                            "type": "object",
                            "description": "Contains information about the device the event originated from.\n",
                            "properties": {
                              "advertisingId": {
                                "type": "string",
                                "description": "The advertising ID is a unique, anonymous ID for advertising."
                              },
                              "id": {
                                "type": "string",
                                "description": "The device ID."
                              },
                              "manufacturer": {
                                "type": "string",
                                "description": "The device manufacturer."
                              },
                              "model": {
                                "type": "string",
                                "description": "The device model."
                              },
                              "name": {
                                "type": "string",
                                "description": "The device name."
                              },
                              "type": {
                                "type": "string",
                                "description": "The device type—android, iOS, etc.",
                                "enum": [
                                  "android",
                                  "ios"
                                ]
                              },
                              "version": {
                                "type": "string",
                                "description": "The firmware version for the device."
                              }
                            }
                          },
                          "ip": {
                            "type": "string",
                            "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                          },
                          "locale": {
                            "type": "string",
                            "description": "The locale string for the current user, e.g. `en-US`."
                          },
                          "network": {
                            "type": "object",
                            "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                            "properties": {
                              "bluetooth": {
                                "type": "boolean",
                                "description": "Lets you know if bluetooth is enabled on a device."
                              },
                              "carrier": {
                                "type": "string",
                                "description": "The cellular carrier the phone uses."
                              },
                              "cellular": {
                                "type": "boolean",
                                "description": "Indicates whether the device's cellular connection is enabled or not."
                              },
                              "wifi": {
                                "type": "boolean",
                                "description": "Indicates whether a device's wifi connection is enabled or not."
                              }
                            }
                          },
                          "os": {
                            "type": "object",
                            "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                            "properties": {
                              "name": {
                                "type": "string",
                                "description": "The operating system running on the device."
                              },
                              "version": {
                                "type": "string",
                                "description": "The version of the OS running on the device."
                              }
                            }
                          },
                          "userAgent": {
                            "type": "string",
                            "description": "The user agent of the device making the request"
                          }
                        }
                      }
                    ]
                  },
                  "integrations": {
                    "x-scalar-ignore": true,
                    "type": "object",
                    "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                    "additionalProperties": {
                      "type": "boolean",
                      "x-additionalPropertiesName": "Enabled/Disabled integrations"
                    },
                    "example": {
                      "All": true,
                      "Salesforce": false
                    }
                  },
                  "messageId": {
                    "type": "string",
                    "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                  },
                  "originalTimestamp": {
                    "type": "string",
                    "format": "date-time",
                    "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                  },
                  "properties": {
                    "additionalProperties": {
                      "x-additionalPropertiesName": "Event Properties",
                      "description": "Additional properties that you want to capture in the event. These can take any JSON shape."
                    },
                    "description": "Additional properties for your event.",
                    "type": "object"
                  },
                  "receivedAt": {
                    "type": "string",
                    "format": "date-time",
                    "readOnly": true,
                    "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                  },
                  "sentAt": {
                    "type": "string",
                    "format": "date-time",
                    "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                  },
                  "timestamp": {
                    "type": "string",
                    "format": "date-time",
                    "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                  },
                  "version": {
                    "readOnly": true,
                    "type": "number",
                    "description": "The version of the API that received the event, automatically set by Customer.io."
                  }
                },
                "required": [
                  "event",
                  "groupId"
                ]
              }
            ]
          },
          {
            "title": "Create or Update Device",
            "description": "Add or update a device. If a device (represented by `device.token`) exists, does not exist, we'll create it. If the device token already exists, we'll update the it.",
            "type": "object",
            "required": [
              "event",
              "userId",
              "context",
              "event",
              "userId",
              "context"
            ],
            "properties": {
              "context": {
                "type": "object",
                "required": [
                  "device",
                  "device"
                ],
                "description": "Information about the device performing the event.",
                "properties": {
                  "device": {
                    "type": "object",
                    "required": [
                      "token",
                      "token"
                    ],
                    "description": "Device information.",
                    "properties": {
                      "token": {
                        "type": "string",
                        "description": "The device token."
                      },
                      "type": {
                        "type": "string",
                        "description": "The device type.",
                        "enum": [
                          "ios",
                          "android",
                          "ios",
                          "android"
                        ]
                      }
                    }
                  },
                  "app": {
                    "type": "object",
                    "description": "Information about your app.",
                    "properties": {
                      "namespace": {
                        "type": "string",
                        "description": "The bundle ID (iOS) or package name (Android) of your app. We map it to the device's `app_identifier` attribute, so that we know [which of your apps](/messaging/channels/push/developer-guide/#device-app-identifier) the device belongs to. If you have a single app, you don't need to send it."
                      }
                    }
                  }
                },
                "additionalProperties": {
                  "x-AdditionalPropertiesName": "Additional Event Properties"
                }
              },
              "event": {
                "type": "string",
                "description": "The event name.",
                "enum": [
                  "Device Created or Updated",
                  "Device Created or Updated"
                ],
                "example": "Device Created or Updated"
              },
              "userId": {
                "type": "string",
                "description": "The user's unique identifier.",
                "example": "42"
              }
            },
            "example": {
              "context": {
                "device": {
                  "token": "string",
                  "type": "ios"
                },
                "app": {
                  "namespace": "com.example.yourapp"
                }
              },
              "event": "Device Created or Updated",
              "userId": "42",
              "type": "track",
              "timestamp": "2021-07-14T19:10:25.000Z"
            },
            "x-scalar-ignore": true
          },
          {
            "title": "Delete Device",
            "description": "Delete a device.",
            "type": "object",
            "required": [
              "event",
              "userId",
              "context",
              "event",
              "userId",
              "context"
            ],
            "properties": {
              "context": {
                "type": "object",
                "required": [
                  "device",
                  "device"
                ],
                "description": "Information about the device performing the event. Our SDKs typically collect these properties automatically.",
                "properties": {
                  "device": {
                    "type": "object",
                    "required": [
                      "token",
                      "token"
                    ],
                    "description": "Device information.",
                    "properties": {
                      "token": {
                        "type": "string",
                        "description": "The device token."
                      },
                      "type": {
                        "type": "string",
                        "description": "The device type.",
                        "enum": [
                          "ios",
                          "android",
                          "ios",
                          "android"
                        ]
                      }
                    }
                  }
                },
                "additionalProperties": {
                  "x-AdditionalPropertiesName": "Additional Event Properties"
                }
              },
              "event": {
                "type": "string",
                "description": "The event name.",
                "enum": [
                  "Device Deleted",
                  "Device Deleted"
                ]
              },
              "userId": {
                "type": "string",
                "description": "The user's unique identifier."
              }
            },
            "example": {
              "context": {
                "device": {
                  "token": "string",
                  "type": "ios"
                }
              },
              "event": "Device Deleted",
              "userId": "42",
              "type": "track",
              "timestamp": "2021-07-14T19:10:25.000Z"
            },
            "x-scalar-ignore": true
          },
          {
            "title": "Delete Person",
            "description": "Remove a person from your Customer.io environment.",
            "type": "object",
            "required": [
              "event",
              "userId",
              "event",
              "userId"
            ],
            "properties": {
              "event": {
                "type": "string",
                "description": "The event name.",
                "enum": [
                  "User Deleted",
                  "User Deleted"
                ]
              },
              "userId": {
                "type": "string",
                "description": "The user's unique identifier or their email address. If you provide an email address, we'll look up the person by their email address and delete them."
              },
              "properties": {
                "description": "Properties for the event. These aren't typically useful in Customer.io when deleting people, but you might use them in other places—like an analytics tool (e.g. Mixpanel).",
                "type": "object"
              }
            },
            "example": {
              "event": "User Deleted",
              "userId": "42",
              "type": "track",
              "timestamp": "2021-07-14T19:10:25.000Z"
            },
            "x-scalar-ignore": true
          },
          {
            "title": "Delete Relationship",
            "description": "Remove a relationship between a person and an object in Customer.io.",
            "type": "object",
            "required": [
              "event",
              "userId",
              "properties",
              "event",
              "userId",
              "properties"
            ],
            "properties": {
              "event": {
                "type": "string",
                "description": "The event name.",
                "enum": [
                  "Relationship Deleted",
                  "Relationship Deleted"
                ]
              },
              "properties": {
                "description": "Properties for the event. In this case, you'll need to provide the `objectId`. You should also provide the `objectTypeId` if you have more than 1 object type; if you don't include it, we'll assume it's `1`.",
                "properties": {
                  "objectId": {
                    "type": "string",
                    "description": "A person is related to a group/object. This is the group/object you want to remove the person from."
                  },
                  "objectTypeId": {
                    "type": "integer",
                    "description": "The type of group/object the `objectId` represents. In Customer.io, each type of group/object has a an integer value, starting at 1 and incrementing. For example, if you have two types of groups/objects, you might have `1` represent accounts and `2` might represent companies.\n\nIf you leave this value blank, we'll assume it's `1`.\n",
                    "default": 1
                  }
                },
                "required": [
                  "objectId",
                  "objectId"
                ],
                "type": "object"
              },
              "userId": {
                "type": "string",
                "description": "The user's unique identifier or their email address. If you provide an email address, we'll look up the person by their email address."
              }
            },
            "example": {
              "event": "Relationship Deleted",
              "properties": {
                "objectId": "acme",
                "objectTypeId": "1"
              },
              "userId": "1",
              "type": "track"
            },
            "x-scalar-ignore": true
          },
          {
            "title": "Delete Object",
            "description": "Remove a group (also called an \"object\") from Customer.io Journeys.",
            "type": "object",
            "required": [
              "event",
              "anonymousId",
              "properties",
              "event",
              "anonymousId",
              "properties"
            ],
            "properties": {
              "anonymousId": {
                "type": "string",
                "description": "While you must set a value, it can be anything; we don't use it. Customer.io requires events to be performed by people, but the \"performer\" is irrelevant to this event."
              },
              "event": {
                "type": "string",
                "description": "The event name.",
                "enum": [
                  "Object Deleted",
                  "Object Deleted"
                ]
              },
              "properties": {
                "description": "Properties for the event. In this case, you'll need to provide the `objectId`. You should also provide the `objectTypeId` if you have more than 1 object type; if you don't include it, we'll assume it's `1`.",
                "properties": {
                  "objectId": {
                    "type": "string",
                    "description": "This is the group/object you want to remove."
                  },
                  "objectTypeId": {
                    "type": "integer",
                    "description": "The type of group/object the `objectId` represents. In Customer.io, each type of group/object has a an integer value, starting at 1 and incrementing. For example, if you have two types of groups/objects, you might have `1` represent accounts and `2` might represent companies.\n\nIf you leave this value blank, we'll assume it's `1`.\n",
                    "default": 1
                  }
                },
                "type": "object"
              }
            },
            "example": {
              "anonymousId": "value-not-used",
              "event": "Object Deleted",
              "properties": {
                "objectId": "acme",
                "objectTypeId": "1"
              },
              "type": "track"
            },
            "x-scalar-ignore": true
          },
          {
            "title": "Suppress Person",
            "description": "Remove a person from your Customer.io workspace and prevent them from being added back.",
            "type": "object",
            "required": [
              "event",
              "userId",
              "event",
              "userId"
            ],
            "properties": {
              "event": {
                "type": "string",
                "description": "The event name.",
                "enum": [
                  "User Suppressed",
                  "User Suppressed"
                ]
              },
              "userId": {
                "type": "string",
                "description": "The user's unique identifier."
              },
              "properties": {
                "additionalProperties": {
                  "x-AdditionalPropertiesName": "Additional Event Properties"
                },
                "description": "Properties for the event. These aren't typically useful in Customer.io when suppressing people, but you might use them in other places—like an analytics tool (e.g. Mixpanel).",
                "type": "object"
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "description": "The ISO-8601 timestamp when the event occurred."
              }
            },
            "example": {
              "event": "User Suppressed",
              "userId": "42",
              "timestamp": "2021-07-14T19:10:25.000Z",
              "type": "track"
            },
            "x-scalar-ignore": true
          },
          {
            "title": "Unsuppress Person",
            "description": "Allow a userId to be added back to your Customer.io workspace.",
            "type": "object",
            "required": [
              "event",
              "userId",
              "event",
              "userId"
            ],
            "properties": {
              "event": {
                "type": "string",
                "description": "The event name.",
                "enum": [
                  "User Unsuppressed",
                  "User Unsuppressed"
                ]
              },
              "userId": {
                "type": "string",
                "description": "The user's unique identifier."
              },
              "properties": {
                "additionalProperties": {
                  "x-AdditionalPropertiesName": "Additional Event Properties"
                },
                "description": "Properties for the event. These aren't typically useful in Customer.io when unsuppressing people, but you might use them in other places—like an analytics tool (e.g. Mixpanel).",
                "type": "object"
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "description": "The ISO-8601 timestamp when the event occurred."
              }
            },
            "example": {
              "event": "User Unsuppressed",
              "userId": "42",
              "timestamp": "2021-07-14T19:10:25.000Z",
              "type": "track"
            },
            "x-scalar-ignore": true
          },
          {
            "title": "Report Delivery Event",
            "description": "Reports delivery events for messages.",
            "type": "object",
            "required": [
              "event",
              "properties",
              "event",
              "properties"
            ],
            "properties": {
              "event": {
                "type": "string",
                "description": "The event name.",
                "enum": [
                  "Report Delivery Event",
                  "Report Delivery Event"
                ]
              },
              "properties": {
                "additionalProperties": {
                  "x-AdditionalPropertiesName": "Additional Event Properties"
                },
                "description": "Properties for the event. These aren't typically useful in Customer.io when suppressing people, but you might use them in other places—like an analytics tool (e.g. Mixpanel).",
                "properties": {
                  "actionValue": {
                    "type": "string",
                    "description": "For in-app messages that are `clicked`, this value represents the value of the action the recipient clicked."
                  },
                  "deliveryId": {
                    "type": "string",
                    "description": "The ID of the message delivery."
                  },
                  "href": {
                    "type": "string",
                    "description": "For in-app messages that are `clicked`, this value represents the URL/link the recipient clicked."
                  },
                  "metric": {
                    "type": "string",
                    "enum": [
                      "delivered",
                      "clicked",
                      "converted",
                      "opened",
                      "delivered",
                      "clicked",
                      "converted",
                      "opened"
                    ],
                    "description": "The metric you're reporting. Remember, these are metrics that occur outside of Customer.io—after the message is sent. Because this event typically tracks in-app messages, you'll generally see metrics like delivered, opened, clicked, etc."
                  },
                  "reason": {
                    "type": "string",
                    "description": "If the message failed for some reason, this field contains the reason why."
                  },
                  "recipient": {
                    "type": "string",
                    "description": "The recipient of the message. This field changes depending on the type of message. For in-app messages, this is the person's `deviceId`; for SMS it's the recipient's phone number; for push notifications, it's their device token."
                  }
                },
                "type": "object"
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "description": "The ISO-8601 timestamp when the event occurred."
              }
            },
            "example": {
              "event": "Report Delivery Event",
              "properties": {
                "actionValue": "enable_push",
                "deliveryId": "42",
                "href": "myapp://settings/enable_push",
                "metric": "clicked",
                "recipient": "device_token"
              },
              "timestamp": "2021-07-14T19:10:25.000Z",
              "type": "track"
            },
            "x-scalar-ignore": true
          },
          {
            "x-scalar-ignore": true,
            "title": "Report Content Event",
            "description": "Reports impressions and clicks for anonymous messages.",
            "type": "object",
            "required": [
              "event",
              "properties",
              "event",
              "properties"
            ],
            "properties": {
              "event": {
                "type": "string",
                "description": "The event name.",
                "enum": [
                  "Report Content Event",
                  "Report Content Event"
                ]
              },
              "properties": {
                "additionalProperties": {
                  "x-AdditionalPropertiesName": "Additional Event Properties"
                },
                "description": "Properties for the event. These aren't typically useful in Customer.io when suppressing people, but you might use them in other places—like an analytics tool (e.g. Mixpanel).",
                "properties": {
                  "actionType": {
                    "type": "string",
                    "enum": [
                      "viewed_content",
                      "clicked_content",
                      "viewed_content",
                      "clicked_content"
                    ],
                    "description": "The type of activity that occurred on the message."
                  },
                  "contentId": {
                    "type": "integer",
                    "description": "The ID of the anonymous in-app message that the person interacted with.",
                    "example": 5
                  },
                  "templateId": {
                    "type": "integer",
                    "description": "The ID of the message inside the contentId.",
                    "example": 10
                  }
                },
                "required": [
                  "activityType",
                  "activityType"
                ],
                "type": "object"
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "description": "The ISO-8601 timestamp when the event occurred."
              }
            },
            "example": {
              "event": "Report Content Event",
              "properties": {
                "actionType": "clicked_content",
                "contentId": 5,
                "templateId": 10
              },
              "timestamp": "2024-12-14T19:10:25.000Z",
              "type": "track"
            }
          }
        ],
        "example": {
          "event": "Course Started",
          "userId": "AiUGstSDIg",
          "properties": {
            "title": "Intro to Customer.io"
          },
          "timestamp": {},
          "anonymousId": "23adfd82-aa0f-45a7-a756-24f2a7a4c895",
          "context": {
            "library": {
              "name": "analytics.js",
              "version": "2.11.1"
            },
            "page": {
              "path": "/",
              "referrer": "https://www.google.com/",
              "search": "?q=analytics",
              "title": "Customer.io Docs",
              "url": "https://docs.customer.io"
            },
            "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_0) AppleWebKit/537.36 (KHTML like Gecko) Chrome/46.0.2490.86 Safari/537.36",
            "ip": "108.0.78.21"
          },
          "integrations": null,
          "messageId": "ajs-f8ca1e4de5024d9430b3928bd8ac6b96",
          "sentAt": {},
          "originalTimestamp": {}
        }
      },
      "page": {
        "x-scalar-ignore": true,
        "oneOf": [
          {
            "x-scalar-ignore": true,
            "title": "Known User",
            "properties": {
              "userId": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
                "example": "241ma8mf4a"
              },
              "context": {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Non-mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "campaign": {
                    "type": "object",
                    "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                    "properties": {
                      "content": {
                        "type": "string"
                      },
                      "medium": {
                        "type": "string",
                        "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                      },
                      "name": {
                        "type": "string",
                        "description": "The campaign name."
                      },
                      "source": {
                        "type": "string",
                        "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                      },
                      "term": {
                        "type": "string",
                        "description": "The keyword term(s) a user came from."
                      }
                    },
                    "additionalProperties": {
                      "type": "string",
                      "x-additionalPropertiesName": "Additional UTM Parameters"
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "page": {
                    "x-scalar-ignore": true,
                    "type": "object",
                    "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                    "properties": {
                      "keywords": {
                        "type": "array",
                        "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                        "items": {
                          "type": "string"
                        }
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the page. Reserved for future use.\n"
                      },
                      "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."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              },
              "integrations": {
                "x-scalar-ignore": true,
                "type": "object",
                "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                "additionalProperties": {
                  "type": "boolean",
                  "x-additionalPropertiesName": "Enabled/Disabled integrations"
                },
                "example": {
                  "All": true,
                  "Salesforce": false
                }
              },
              "messageId": {
                "type": "string",
                "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
              },
              "name": {
                "type": "string",
                "description": "The name of the page.",
                "example": "home"
              },
              "originalTimestamp": {
                "type": "string",
                "format": "date-time",
                "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
              },
              "properties": {
                "additionalProperties": {
                  "x-additionalPropertiesName": "Page Properties"
                },
                "description": "Additional `page` properties. Analytics.js automatically collects `url`, `title`, `referrer`, `path`, and `search` properties. But, if you use our other sources or you write your own integration, you should consider sending these properties yourself. Destination actions that take `page` events often rely on the `url` and `title` properties.",
                "properties": {
                  "category": {
                    "type": "string",
                    "description": "The category of the page. This might be useful if you have a single page routes or have a flattened URL structure."
                  },
                  "path": {
                    "type": "string",
                    "description": "The path of the page. This defaults to `location.pathname`, but can be overridden.",
                    "example": "/page"
                  },
                  "referrer": {
                    "type": "string",
                    "description": "The referrer of the page, if applicable. This defaults to `document.referrer`, but can be overridden.",
                    "example": "http://www.google.com/search?q=example"
                  },
                  "search": {
                    "type": "string",
                    "description": "The search query in the URL, if present. This defaults to `location.search`, but can be overridden.",
                    "example": "?q=sfgiants"
                  },
                  "title": {
                    "type": "string",
                    "description": "The title of the page. This defaults to `document.title`, but can be overridden.",
                    "example": "Page | Example.com"
                  },
                  "url": {
                    "type": "string",
                    "description": "The URL of the page. This defaults to a canonical url if available, and falls back to `document.location.href`.",
                    "example": "https://www.example.com/page/"
                  }
                },
                "type": "object"
              },
              "receivedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
              },
              "sentAt": {
                "type": "string",
                "format": "date-time",
                "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
              },
              "version": {
                "readOnly": true,
                "type": "number",
                "description": "The version of the API that received the event, automatically set by Customer.io."
              }
            },
            "required": [
              "userId"
            ]
          },
          {
            "x-scalar-ignore": true,
            "title": "Anonymous User",
            "properties": {
              "anonymousId": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
                "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
              },
              "context": {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Non-mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "campaign": {
                    "type": "object",
                    "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                    "properties": {
                      "content": {
                        "type": "string"
                      },
                      "medium": {
                        "type": "string",
                        "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                      },
                      "name": {
                        "type": "string",
                        "description": "The campaign name."
                      },
                      "source": {
                        "type": "string",
                        "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                      },
                      "term": {
                        "type": "string",
                        "description": "The keyword term(s) a user came from."
                      }
                    },
                    "additionalProperties": {
                      "type": "string",
                      "x-additionalPropertiesName": "Additional UTM Parameters"
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "page": {
                    "x-scalar-ignore": true,
                    "type": "object",
                    "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                    "properties": {
                      "keywords": {
                        "type": "array",
                        "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                        "items": {
                          "type": "string"
                        }
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the page. Reserved for future use.\n"
                      },
                      "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."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              },
              "integrations": {
                "x-scalar-ignore": true,
                "type": "object",
                "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                "additionalProperties": {
                  "type": "boolean",
                  "x-additionalPropertiesName": "Enabled/Disabled integrations"
                },
                "example": {
                  "All": true,
                  "Salesforce": false
                }
              },
              "messageId": {
                "type": "string",
                "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
              },
              "name": {
                "type": "string",
                "description": "The name of the page.",
                "example": "home"
              },
              "originalTimestamp": {
                "type": "string",
                "format": "date-time",
                "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
              },
              "properties": {
                "additionalProperties": {
                  "x-additionalPropertiesName": "Page Properties"
                },
                "description": "Additional properties for your event.",
                "properties": {
                  "category": {
                    "type": "string",
                    "description": "The category of the page. This might be useful if you have a single page routes or have a flattened URL structure."
                  },
                  "path": {
                    "type": "string",
                    "description": "The path of the page. This defaults to location.pathname, but can be overridden.",
                    "example": "/page"
                  },
                  "referrer": {
                    "type": "string",
                    "description": "The referrer of the page, if applicable. This defaults to document.referrer, but can be overridden.",
                    "example": "http://www.google.com/search?q=example"
                  },
                  "search": {
                    "type": "string",
                    "description": "The search query in the URL, if present. This defaults to location.search, but can be overridden.",
                    "example": "?q=sfgiants"
                  },
                  "title": {
                    "type": "string",
                    "description": "The title of the page. This defaults to `document.title`, but can be overridden.",
                    "example": "Page | Example.com"
                  },
                  "url": {
                    "type": "string",
                    "description": "The URL of the page."
                  }
                },
                "type": "object"
              },
              "receivedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
              },
              "sentAt": {
                "type": "string",
                "format": "date-time",
                "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
              },
              "version": {
                "readOnly": true,
                "type": "number",
                "description": "The version of the API that received the event, automatically set by Customer.io."
              }
            },
            "required": [
              "anonymousId"
            ]
          }
        ],
        "example": {
          "userId": "97980cfea0067",
          "context": {
            "ip": "8.8.8.8",
            "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML like Gecko) Chrome/40.0.2214.115 Safari/537.36"
          },
          "integrations": {
            "All": true,
            "Mixpanel": false,
            "Salesforce": false
          },
          "messageId": "022bb90c-bbac-11e4-8dfc-aa07a5b093db",
          "name": "Home",
          "properties": {
            "title": "Welcome | ACME, Inc.",
            "url": "https://www.example.com"
          },
          "sentAt": {},
          "timestamp": {},
          "anonymousId": "507f191e810c19729de860ea",
          "channel": "browser"
        }
      },
      "screen": {
        "x-scalar-ignore": true,
        "oneOf": [
          {
            "x-scalar-ignore": true,
            "title": "Known User",
            "properties": {
              "userId": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
                "example": "241ma8mf4a"
              },
              "context": {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "app": {
                    "type": "object",
                    "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                    "properties": {
                      "build": {
                        "type": "string",
                        "description": "The specific build number in the app."
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the app."
                      },
                      "namespace": {
                        "type": "string",
                        "description": "The app's namespace."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the app the call originated from."
                      }
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "device": {
                    "type": "object",
                    "description": "Contains information about the device the event originated from.\n",
                    "properties": {
                      "advertisingId": {
                        "type": "string",
                        "description": "The advertising ID is a unique, anonymous ID for advertising."
                      },
                      "id": {
                        "type": "string",
                        "description": "The device ID."
                      },
                      "manufacturer": {
                        "type": "string",
                        "description": "The device manufacturer."
                      },
                      "model": {
                        "type": "string",
                        "description": "The device model."
                      },
                      "name": {
                        "type": "string",
                        "description": "The device name."
                      },
                      "type": {
                        "type": "string",
                        "description": "The device type—android, iOS, etc.",
                        "enum": [
                          "android",
                          "ios"
                        ]
                      },
                      "version": {
                        "type": "string",
                        "description": "The firmware version for the device."
                      }
                    }
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "network": {
                    "type": "object",
                    "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                    "properties": {
                      "bluetooth": {
                        "type": "boolean",
                        "description": "Lets you know if bluetooth is enabled on a device."
                      },
                      "carrier": {
                        "type": "string",
                        "description": "The cellular carrier the phone uses."
                      },
                      "cellular": {
                        "type": "boolean",
                        "description": "Indicates whether the device's cellular connection is enabled or not."
                      },
                      "wifi": {
                        "type": "boolean",
                        "description": "Indicates whether a device's wifi connection is enabled or not."
                      }
                    }
                  },
                  "os": {
                    "type": "object",
                    "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The operating system running on the device."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the OS running on the device."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              },
              "integrations": {
                "x-scalar-ignore": true,
                "type": "object",
                "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                "additionalProperties": {
                  "type": "boolean",
                  "x-additionalPropertiesName": "Enabled/Disabled integrations"
                },
                "example": {
                  "All": true,
                  "Salesforce": false
                }
              },
              "messageId": {
                "type": "string",
                "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
              },
              "name": {
                "type": "string",
                "description": "The name of the screen the person visited.",
                "example": "home"
              },
              "originalTimestamp": {
                "type": "string",
                "format": "date-time",
                "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
              },
              "properties": {
                "additionalProperties": {
                  "x-additionalPropertiesName": "Screen Properties"
                },
                "description": "Additional properties for your screen.",
                "type": "object"
              },
              "receivedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
              },
              "sentAt": {
                "type": "string",
                "format": "date-time",
                "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
              },
              "version": {
                "readOnly": true,
                "type": "number",
                "description": "The version of the API that received the event, automatically set by Customer.io."
              }
            },
            "required": [
              "userId"
            ]
          },
          {
            "x-scalar-ignore": true,
            "title": "Anonymous User",
            "properties": {
              "anonymousId": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
                "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
              },
              "context": {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "app": {
                    "type": "object",
                    "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                    "properties": {
                      "build": {
                        "type": "string",
                        "description": "The specific build number in the app."
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the app."
                      },
                      "namespace": {
                        "type": "string",
                        "description": "The app's namespace."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the app the call originated from."
                      }
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "device": {
                    "type": "object",
                    "description": "Contains information about the device the event originated from.\n",
                    "properties": {
                      "advertisingId": {
                        "type": "string",
                        "description": "The advertising ID is a unique, anonymous ID for advertising."
                      },
                      "id": {
                        "type": "string",
                        "description": "The device ID."
                      },
                      "manufacturer": {
                        "type": "string",
                        "description": "The device manufacturer."
                      },
                      "model": {
                        "type": "string",
                        "description": "The device model."
                      },
                      "name": {
                        "type": "string",
                        "description": "The device name."
                      },
                      "type": {
                        "type": "string",
                        "description": "The device type—android, iOS, etc.",
                        "enum": [
                          "android",
                          "ios"
                        ]
                      },
                      "version": {
                        "type": "string",
                        "description": "The firmware version for the device."
                      }
                    }
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "network": {
                    "type": "object",
                    "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                    "properties": {
                      "bluetooth": {
                        "type": "boolean",
                        "description": "Lets you know if bluetooth is enabled on a device."
                      },
                      "carrier": {
                        "type": "string",
                        "description": "The cellular carrier the phone uses."
                      },
                      "cellular": {
                        "type": "boolean",
                        "description": "Indicates whether the device's cellular connection is enabled or not."
                      },
                      "wifi": {
                        "type": "boolean",
                        "description": "Indicates whether a device's wifi connection is enabled or not."
                      }
                    }
                  },
                  "os": {
                    "type": "object",
                    "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The operating system running on the device."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the OS running on the device."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              },
              "integrations": {
                "x-scalar-ignore": true,
                "type": "object",
                "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                "additionalProperties": {
                  "type": "boolean",
                  "x-additionalPropertiesName": "Enabled/Disabled integrations"
                },
                "example": {
                  "All": true,
                  "Salesforce": false
                }
              },
              "messageId": {
                "type": "string",
                "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
              },
              "name": {
                "type": "string",
                "description": "The name of the screen the person visited.",
                "example": "home"
              },
              "originalTimestamp": {
                "type": "string",
                "format": "date-time",
                "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
              },
              "properties": {
                "additionalProperties": {
                  "x-additionalPropertiesName": "Screen Properties"
                },
                "description": "Additional properties for your screen.",
                "type": "object"
              },
              "receivedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
              },
              "sentAt": {
                "type": "string",
                "format": "date-time",
                "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
              },
              "version": {
                "readOnly": true,
                "type": "number",
                "description": "The version of the API that received the event, automatically set by Customer.io."
              }
            },
            "required": [
              "anonymousId"
            ]
          }
        ],
        "example": {
          "userId": "97980cfea0067",
          "context": {
            "ip": "8.8.8.8"
          },
          "integrations": {
            "All": true,
            "Salesforce": false
          },
          "messageId": "022bb90c-bbac-11e4-8dfc-aa07a5b093db",
          "name": "feed",
          "properties": {
            "subscriptions": [
              "baseball",
              "basketball"
            ]
          },
          "sentAt": {},
          "timestamp": {},
          "anonymousId": "507f191e810c19729de860ea"
        }
      },
      "groupId": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "ID of the group",
        "example": "0e8c78ea9d97a7b8185e8632"
      },
      "group": {
        "x-scalar-ignore": true,
        "oneOf": [
          {
            "x-scalar-ignore": true,
            "title": "Known User",
            "properties": {
              "groupId": {
                "type": "string",
                "description": "ID of the group",
                "example": "0e8c78ea9d97a7b8185e8632"
              },
              "context": {
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "oneOf": [
                  {
                    "x-scalar-ignore": true,
                    "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                    "title": "Non-mobile",
                    "properties": {
                      "active": {
                        "type": "boolean",
                        "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                      },
                      "campaign": {
                        "type": "object",
                        "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                        "properties": {
                          "content": {
                            "type": "string"
                          },
                          "medium": {
                            "type": "string",
                            "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                          },
                          "name": {
                            "type": "string",
                            "description": "The campaign name."
                          },
                          "source": {
                            "type": "string",
                            "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                          },
                          "term": {
                            "type": "string",
                            "description": "The keyword term(s) a user came from."
                          }
                        },
                        "additionalProperties": {
                          "type": "string",
                          "x-additionalPropertiesName": "Additional UTM Parameters"
                        }
                      },
                      "channel": {
                        "type": "string",
                        "enum": [
                          "browser",
                          "server",
                          "mobile"
                        ],
                        "description": "The channel the event originated from."
                      },
                      "ip": {
                        "type": "string",
                        "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                      },
                      "locale": {
                        "type": "string",
                        "description": "The locale string for the current user, e.g. `en-US`."
                      },
                      "page": {
                        "x-scalar-ignore": true,
                        "type": "object",
                        "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                        "properties": {
                          "keywords": {
                            "type": "array",
                            "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                            "items": {
                              "type": "string"
                            }
                          },
                          "name": {
                            "type": "string",
                            "description": "The name of the page. Reserved for future use.\n"
                          },
                          "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."
                          }
                        }
                      },
                      "userAgent": {
                        "type": "string",
                        "description": "The user agent of the device making the request"
                      }
                    }
                  },
                  {
                    "x-scalar-ignore": true,
                    "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                    "title": "Mobile",
                    "properties": {
                      "active": {
                        "type": "boolean",
                        "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                      },
                      "app": {
                        "type": "object",
                        "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                        "properties": {
                          "build": {
                            "type": "string",
                            "description": "The specific build number in the app."
                          },
                          "name": {
                            "type": "string",
                            "description": "The name of the app."
                          },
                          "namespace": {
                            "type": "string",
                            "description": "The app's namespace."
                          },
                          "version": {
                            "type": "string",
                            "description": "The version of the app the call originated from."
                          }
                        }
                      },
                      "channel": {
                        "type": "string",
                        "enum": [
                          "browser",
                          "server",
                          "mobile"
                        ],
                        "description": "The channel the event originated from."
                      },
                      "device": {
                        "type": "object",
                        "description": "Contains information about the device the event originated from.\n",
                        "properties": {
                          "advertisingId": {
                            "type": "string",
                            "description": "The advertising ID is a unique, anonymous ID for advertising."
                          },
                          "id": {
                            "type": "string",
                            "description": "The device ID."
                          },
                          "manufacturer": {
                            "type": "string",
                            "description": "The device manufacturer."
                          },
                          "model": {
                            "type": "string",
                            "description": "The device model."
                          },
                          "name": {
                            "type": "string",
                            "description": "The device name."
                          },
                          "type": {
                            "type": "string",
                            "description": "The device type—android, iOS, etc.",
                            "enum": [
                              "android",
                              "ios"
                            ]
                          },
                          "version": {
                            "type": "string",
                            "description": "The firmware version for the device."
                          }
                        }
                      },
                      "ip": {
                        "type": "string",
                        "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                      },
                      "locale": {
                        "type": "string",
                        "description": "The locale string for the current user, e.g. `en-US`."
                      },
                      "network": {
                        "type": "object",
                        "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                        "properties": {
                          "bluetooth": {
                            "type": "boolean",
                            "description": "Lets you know if bluetooth is enabled on a device."
                          },
                          "carrier": {
                            "type": "string",
                            "description": "The cellular carrier the phone uses."
                          },
                          "cellular": {
                            "type": "boolean",
                            "description": "Indicates whether the device's cellular connection is enabled or not."
                          },
                          "wifi": {
                            "type": "boolean",
                            "description": "Indicates whether a device's wifi connection is enabled or not."
                          }
                        }
                      },
                      "os": {
                        "type": "object",
                        "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "The operating system running on the device."
                          },
                          "version": {
                            "type": "string",
                            "description": "The version of the OS running on the device."
                          }
                        }
                      },
                      "userAgent": {
                        "type": "string",
                        "description": "The user agent of the device making the request"
                      }
                    }
                  }
                ]
              },
              "integrations": {
                "x-scalar-ignore": true,
                "type": "object",
                "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                "additionalProperties": {
                  "type": "boolean",
                  "x-additionalPropertiesName": "Enabled/Disabled integrations"
                },
                "example": {
                  "All": true,
                  "Salesforce": false
                }
              },
              "messageId": {
                "type": "string",
                "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
              },
              "originalTimestamp": {
                "type": "string",
                "format": "date-time",
                "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
              },
              "receivedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
              },
              "sentAt": {
                "type": "string",
                "format": "date-time",
                "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
              },
              "traits": {
                "type": "object",
                "description": "Additional information about the group.",
                "properties": {
                  "objectTypeId": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "If you use Customer.io Journeys as a destination, this value is the type of group/object your group belongs to; object type IDs are stringified integers. If you don't include this value, we assume the object type ID is `1`. See [objects in Customer.io Journeys](/journeys/objects-data/objects/types/) for more information.",
                    "example": "1"
                  },
                  "relationshipAttributes": {
                    "type": "object",
                    "description": "Attributes that you want to set for the relationship between the person and the group.",
                    "example": {
                      "role": "primary_contact"
                    }
                  }
                },
                "additionalProperties": {
                  "x-additionalPropertiesName": "Group Traits",
                  "example": {
                    "name": "Acme",
                    "industry": "Technology",
                    "road_runner_accidents": "329,",
                    "plan": "enterprise,",
                    "total_billed": 830
                  }
                }
              },
              "userId": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
                "example": "241ma8mf4a"
              },
              "version": {
                "readOnly": true,
                "type": "number",
                "description": "The version of the API that received the event, automatically set by Customer.io."
              }
            },
            "required": [
              "groupId"
            ]
          },
          {
            "x-scalar-ignore": true,
            "title": "Anonymous User",
            "properties": {
              "groupId": {
                "type": "string",
                "description": "ID of the group",
                "example": "0e8c78ea9d97a7b8185e8632"
              },
              "anonymousId": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
                "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
              },
              "context": {
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "oneOf": [
                  {
                    "x-scalar-ignore": true,
                    "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                    "title": "Non-mobile",
                    "properties": {
                      "active": {
                        "type": "boolean",
                        "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                      },
                      "campaign": {
                        "type": "object",
                        "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                        "properties": {
                          "content": {
                            "type": "string"
                          },
                          "medium": {
                            "type": "string",
                            "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                          },
                          "name": {
                            "type": "string",
                            "description": "The campaign name."
                          },
                          "source": {
                            "type": "string",
                            "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                          },
                          "term": {
                            "type": "string",
                            "description": "The keyword term(s) a user came from."
                          }
                        },
                        "additionalProperties": {
                          "type": "string",
                          "x-additionalPropertiesName": "Additional UTM Parameters"
                        }
                      },
                      "channel": {
                        "type": "string",
                        "enum": [
                          "browser",
                          "server",
                          "mobile"
                        ],
                        "description": "The channel the event originated from."
                      },
                      "ip": {
                        "type": "string",
                        "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                      },
                      "locale": {
                        "type": "string",
                        "description": "The locale string for the current user, e.g. `en-US`."
                      },
                      "page": {
                        "x-scalar-ignore": true,
                        "type": "object",
                        "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                        "properties": {
                          "keywords": {
                            "type": "array",
                            "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                            "items": {
                              "type": "string"
                            }
                          },
                          "name": {
                            "type": "string",
                            "description": "The name of the page. Reserved for future use.\n"
                          },
                          "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."
                          }
                        }
                      },
                      "userAgent": {
                        "type": "string",
                        "description": "The user agent of the device making the request"
                      }
                    }
                  },
                  {
                    "x-scalar-ignore": true,
                    "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                    "title": "Mobile",
                    "properties": {
                      "active": {
                        "type": "boolean",
                        "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                      },
                      "app": {
                        "type": "object",
                        "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                        "properties": {
                          "build": {
                            "type": "string",
                            "description": "The specific build number in the app."
                          },
                          "name": {
                            "type": "string",
                            "description": "The name of the app."
                          },
                          "namespace": {
                            "type": "string",
                            "description": "The app's namespace."
                          },
                          "version": {
                            "type": "string",
                            "description": "The version of the app the call originated from."
                          }
                        }
                      },
                      "channel": {
                        "type": "string",
                        "enum": [
                          "browser",
                          "server",
                          "mobile"
                        ],
                        "description": "The channel the event originated from."
                      },
                      "device": {
                        "type": "object",
                        "description": "Contains information about the device the event originated from.\n",
                        "properties": {
                          "advertisingId": {
                            "type": "string",
                            "description": "The advertising ID is a unique, anonymous ID for advertising."
                          },
                          "id": {
                            "type": "string",
                            "description": "The device ID."
                          },
                          "manufacturer": {
                            "type": "string",
                            "description": "The device manufacturer."
                          },
                          "model": {
                            "type": "string",
                            "description": "The device model."
                          },
                          "name": {
                            "type": "string",
                            "description": "The device name."
                          },
                          "type": {
                            "type": "string",
                            "description": "The device type—android, iOS, etc.",
                            "enum": [
                              "android",
                              "ios"
                            ]
                          },
                          "version": {
                            "type": "string",
                            "description": "The firmware version for the device."
                          }
                        }
                      },
                      "ip": {
                        "type": "string",
                        "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                      },
                      "locale": {
                        "type": "string",
                        "description": "The locale string for the current user, e.g. `en-US`."
                      },
                      "network": {
                        "type": "object",
                        "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                        "properties": {
                          "bluetooth": {
                            "type": "boolean",
                            "description": "Lets you know if bluetooth is enabled on a device."
                          },
                          "carrier": {
                            "type": "string",
                            "description": "The cellular carrier the phone uses."
                          },
                          "cellular": {
                            "type": "boolean",
                            "description": "Indicates whether the device's cellular connection is enabled or not."
                          },
                          "wifi": {
                            "type": "boolean",
                            "description": "Indicates whether a device's wifi connection is enabled or not."
                          }
                        }
                      },
                      "os": {
                        "type": "object",
                        "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "The operating system running on the device."
                          },
                          "version": {
                            "type": "string",
                            "description": "The version of the OS running on the device."
                          }
                        }
                      },
                      "userAgent": {
                        "type": "string",
                        "description": "The user agent of the device making the request"
                      }
                    }
                  }
                ]
              },
              "integrations": {
                "x-scalar-ignore": true,
                "type": "object",
                "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                "additionalProperties": {
                  "type": "boolean",
                  "x-additionalPropertiesName": "Enabled/Disabled integrations"
                },
                "example": {
                  "All": true,
                  "Salesforce": false
                }
              },
              "messageId": {
                "type": "string",
                "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
              },
              "originalTimestamp": {
                "type": "string",
                "format": "date-time",
                "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
              },
              "receivedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
              },
              "sentAt": {
                "type": "string",
                "format": "date-time",
                "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
              },
              "traits": {
                "type": "object",
                "description": "Additional information about the group.",
                "properties": {
                  "objectTypeId": {
                    "x-scalar-ignore": true,
                    "type": "string",
                    "description": "If you use Customer.io Journeys as a destination, this value is the type of group/object your group belongs to; object type IDs are stringified integers. If you don't include this value, we assume the object type ID is `1`. See [objects in Customer.io Journeys](/journeys/objects-data/objects/types/) for more information.",
                    "example": "1"
                  },
                  "relationshipAttributes": {
                    "type": "object",
                    "description": "Attributes that you want to set for the relationship between the person and the group.",
                    "example": {
                      "role": "primary_contact"
                    }
                  }
                },
                "additionalProperties": {
                  "x-additionalPropertiesName": "Group Traits",
                  "description": "Attributes that you want to associate with the group.",
                  "example": {
                    "name": "Acme",
                    "industry": "Technology",
                    "road_runner_accidents": "329,",
                    "plan": "enterprise,",
                    "total_billed": 830
                  }
                }
              },
              "version": {
                "readOnly": true,
                "type": "number",
                "description": "The version of the API that received the event, automatically set by Customer.io."
              }
            },
            "required": [
              "groupId"
            ]
          }
        ],
        "example": {
          "groupId": "0e8c78ea9d97a7b8185e8632,",
          "context": {
            "ip": "8.8.8.8",
            "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36"
          },
          "integrations": {
            "All": true,
            "Mixpanel": false,
            "Salesforce": false
          },
          "messageId": "022bb90c-bbac-11e4-8dfc-aa07a5b093db,",
          "sentAt": "2015-02-23T22:28:55.111Z,",
          "timestamp": "2015-02-23T22:28:55.111Z,",
          "traits": {
            "name": "ACME, Inc.",
            "industry": "Technology",
            "employees": 329,
            "plan": "enterprise",
            "total billed": 830
          },
          "userId": "97980cfea0067",
          "anonymousId": "507f191e810c19729de860ea,",
          "channel": "browser,"
        }
      },
      "identify_known": {
        "x-scalar-ignore": true,
        "title": "Known User",
        "properties": {
          "userId": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
            "example": "241ma8mf4a"
          },
          "anonymousId": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
            "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
          },
          "context": {
            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
            "oneOf": [
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Non-mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "campaign": {
                    "type": "object",
                    "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                    "properties": {
                      "content": {
                        "type": "string"
                      },
                      "medium": {
                        "type": "string",
                        "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                      },
                      "name": {
                        "type": "string",
                        "description": "The campaign name."
                      },
                      "source": {
                        "type": "string",
                        "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                      },
                      "term": {
                        "type": "string",
                        "description": "The keyword term(s) a user came from."
                      }
                    },
                    "additionalProperties": {
                      "type": "string",
                      "x-additionalPropertiesName": "Additional UTM Parameters"
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "page": {
                    "x-scalar-ignore": true,
                    "type": "object",
                    "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                    "properties": {
                      "keywords": {
                        "type": "array",
                        "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                        "items": {
                          "type": "string"
                        }
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the page. Reserved for future use.\n"
                      },
                      "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."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              },
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "app": {
                    "type": "object",
                    "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                    "properties": {
                      "build": {
                        "type": "string",
                        "description": "The specific build number in the app."
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the app."
                      },
                      "namespace": {
                        "type": "string",
                        "description": "The app's namespace."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the app the call originated from."
                      }
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "device": {
                    "type": "object",
                    "description": "Contains information about the device the event originated from.\n",
                    "properties": {
                      "advertisingId": {
                        "type": "string",
                        "description": "The advertising ID is a unique, anonymous ID for advertising."
                      },
                      "id": {
                        "type": "string",
                        "description": "The device ID."
                      },
                      "manufacturer": {
                        "type": "string",
                        "description": "The device manufacturer."
                      },
                      "model": {
                        "type": "string",
                        "description": "The device model."
                      },
                      "name": {
                        "type": "string",
                        "description": "The device name."
                      },
                      "type": {
                        "type": "string",
                        "description": "The device type—android, iOS, etc.",
                        "enum": [
                          "android",
                          "ios"
                        ]
                      },
                      "version": {
                        "type": "string",
                        "description": "The firmware version for the device."
                      }
                    }
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "network": {
                    "type": "object",
                    "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                    "properties": {
                      "bluetooth": {
                        "type": "boolean",
                        "description": "Lets you know if bluetooth is enabled on a device."
                      },
                      "carrier": {
                        "type": "string",
                        "description": "The cellular carrier the phone uses."
                      },
                      "cellular": {
                        "type": "boolean",
                        "description": "Indicates whether the device's cellular connection is enabled or not."
                      },
                      "wifi": {
                        "type": "boolean",
                        "description": "Indicates whether a device's wifi connection is enabled or not."
                      }
                    }
                  },
                  "os": {
                    "type": "object",
                    "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The operating system running on the device."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the OS running on the device."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              }
            ]
          },
          "integrations": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
            "additionalProperties": {
              "type": "boolean",
              "x-additionalPropertiesName": "Enabled/Disabled integrations"
            },
            "example": {
              "All": true,
              "Salesforce": false
            }
          },
          "messageId": {
            "type": "string",
            "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
          },
          "originalTimestamp": {
            "type": "string",
            "format": "date-time",
            "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
          },
          "receivedAt": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
          },
          "sentAt": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
          },
          "traits": {
            "type": "object",
            "description": "Additional properties that you know about a person. We've listed some common/reserved traits below, but you can add any traits that you might use in another system.",
            "properties": {
              "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>`. To update channel preferences, use `\"cio_subscription_preferences.channels.<channel>\":<boolean>`.",
                "type": "object",
                "properties": {
                  "channels": {
                    "type": "object",
                    "description": "Contains channel subscription preferences. Keys are channel type names.",
                    "additionalProperties": {
                      "x-additionalPropertiesName": "channel_type",
                      "description": "Each property is a boolean keyed by the channel type name: `email`, `sms`, `push`, `in_app`, `whatsapp`, `slack`, `line`, or `inbox`. `true` means a person is subscribed to the channel; `false` means they are unsubscribed. Both the topic and channel must be subscribed for a message to send.",
                      "type": "boolean"
                    },
                    "example": {
                      "email": true,
                      "push": false
                    }
                  },
                  "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"
                    },
                    "example": {
                      "topic_1": true,
                      "topic_2": false
                    }
                  }
                }
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "We recommend that you pass date-time values as ISO 8601 date-time strings. We convert this value to fit destinations where appropriate."
              },
              "email": {
                "type": "string",
                "description": "A person's email address. If you pass an email address as the `userId`, Customer.io sets this trait for you."
              },
              "unsubscribed": {
                "description": "If `true`, a person is unsubscribed from emails, SMS, WhatsApp, and push notifications (not in-app messages). Any casing of \"true\" (i.e. TRUE, true, tRUe, etc.), 1, or \"1\" means the person is unsubscribed. If `false`, absent, or any value not considered \"true\", a person is globally subscribed, or if you enabled a subscription center, a person will receive messages based on their `cio_subscription_preferences`.",
                "type": "boolean"
              }
            },
            "additionalProperties": {
              "x-additionalPropertiesName": "Additional Traits",
              "description": "Traits that you want to set on a person. These can take any JSON shape."
            }
          },
          "version": {
            "readOnly": true,
            "type": "number",
            "description": "The version of the API that received the event, automatically set by Customer.io."
          }
        },
        "required": [
          "userId"
        ]
      },
      "identify_anonymous": {
        "x-scalar-ignore": true,
        "title": "Anonymous User",
        "properties": {
          "anonymousId": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
            "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
          },
          "context": {
            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
            "oneOf": [
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Non-mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "campaign": {
                    "type": "object",
                    "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                    "properties": {
                      "content": {
                        "type": "string"
                      },
                      "medium": {
                        "type": "string",
                        "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                      },
                      "name": {
                        "type": "string",
                        "description": "The campaign name."
                      },
                      "source": {
                        "type": "string",
                        "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                      },
                      "term": {
                        "type": "string",
                        "description": "The keyword term(s) a user came from."
                      }
                    },
                    "additionalProperties": {
                      "type": "string",
                      "x-additionalPropertiesName": "Additional UTM Parameters"
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "page": {
                    "x-scalar-ignore": true,
                    "type": "object",
                    "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                    "properties": {
                      "keywords": {
                        "type": "array",
                        "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                        "items": {
                          "type": "string"
                        }
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the page. Reserved for future use.\n"
                      },
                      "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."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              },
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "app": {
                    "type": "object",
                    "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                    "properties": {
                      "build": {
                        "type": "string",
                        "description": "The specific build number in the app."
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the app."
                      },
                      "namespace": {
                        "type": "string",
                        "description": "The app's namespace."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the app the call originated from."
                      }
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "device": {
                    "type": "object",
                    "description": "Contains information about the device the event originated from.\n",
                    "properties": {
                      "advertisingId": {
                        "type": "string",
                        "description": "The advertising ID is a unique, anonymous ID for advertising."
                      },
                      "id": {
                        "type": "string",
                        "description": "The device ID."
                      },
                      "manufacturer": {
                        "type": "string",
                        "description": "The device manufacturer."
                      },
                      "model": {
                        "type": "string",
                        "description": "The device model."
                      },
                      "name": {
                        "type": "string",
                        "description": "The device name."
                      },
                      "type": {
                        "type": "string",
                        "description": "The device type—android, iOS, etc.",
                        "enum": [
                          "android",
                          "ios"
                        ]
                      },
                      "version": {
                        "type": "string",
                        "description": "The firmware version for the device."
                      }
                    }
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "network": {
                    "type": "object",
                    "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                    "properties": {
                      "bluetooth": {
                        "type": "boolean",
                        "description": "Lets you know if bluetooth is enabled on a device."
                      },
                      "carrier": {
                        "type": "string",
                        "description": "The cellular carrier the phone uses."
                      },
                      "cellular": {
                        "type": "boolean",
                        "description": "Indicates whether the device's cellular connection is enabled or not."
                      },
                      "wifi": {
                        "type": "boolean",
                        "description": "Indicates whether a device's wifi connection is enabled or not."
                      }
                    }
                  },
                  "os": {
                    "type": "object",
                    "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The operating system running on the device."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the OS running on the device."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              }
            ]
          },
          "integrations": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
            "additionalProperties": {
              "type": "boolean",
              "x-additionalPropertiesName": "Enabled/Disabled integrations"
            },
            "example": {
              "All": true,
              "Salesforce": false
            }
          },
          "messageId": {
            "type": "string",
            "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
          },
          "originalTimestamp": {
            "type": "string",
            "format": "date-time",
            "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
          },
          "receivedAt": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
          },
          "sentAt": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
          },
          "traits": {
            "type": "object",
            "description": "Traits you know about the person. Customer.io ignores anonymous `identify` calls, but our JavaScript client stores these traits and attaches them when you later identify the person with a `userId`.",
            "additionalProperties": {
              "x-additionalPropertiesName": "Traits",
              "description": "Traits that you want to set on a person. These can take any JSON shape."
            }
          },
          "version": {
            "readOnly": true,
            "type": "number",
            "description": "The version of the API that received the event, automatically set by Customer.io."
          }
        },
        "required": [
          "anonymousId"
        ]
      },
      "track_basic": {
        "x-scalar-ignore": true,
        "title": "Custom event",
        "oneOf": [
          {
            "x-scalar-ignore": true,
            "title": "Known User",
            "properties": {
              "event": {
                "type": "string",
                "description": "The name of the event",
                "example": "new_account"
              },
              "userId": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
                "example": "241ma8mf4a"
              },
              "context": {
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "oneOf": [
                  {
                    "x-scalar-ignore": true,
                    "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                    "title": "Non-mobile",
                    "properties": {
                      "active": {
                        "type": "boolean",
                        "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                      },
                      "campaign": {
                        "type": "object",
                        "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                        "properties": {
                          "content": {
                            "type": "string"
                          },
                          "medium": {
                            "type": "string",
                            "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                          },
                          "name": {
                            "type": "string",
                            "description": "The campaign name."
                          },
                          "source": {
                            "type": "string",
                            "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                          },
                          "term": {
                            "type": "string",
                            "description": "The keyword term(s) a user came from."
                          }
                        },
                        "additionalProperties": {
                          "type": "string",
                          "x-additionalPropertiesName": "Additional UTM Parameters"
                        }
                      },
                      "channel": {
                        "type": "string",
                        "enum": [
                          "browser",
                          "server",
                          "mobile"
                        ],
                        "description": "The channel the event originated from."
                      },
                      "ip": {
                        "type": "string",
                        "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                      },
                      "locale": {
                        "type": "string",
                        "description": "The locale string for the current user, e.g. `en-US`."
                      },
                      "page": {
                        "x-scalar-ignore": true,
                        "type": "object",
                        "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                        "properties": {
                          "keywords": {
                            "type": "array",
                            "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                            "items": {
                              "type": "string"
                            }
                          },
                          "name": {
                            "type": "string",
                            "description": "The name of the page. Reserved for future use.\n"
                          },
                          "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."
                          }
                        }
                      },
                      "userAgent": {
                        "type": "string",
                        "description": "The user agent of the device making the request"
                      }
                    }
                  },
                  {
                    "x-scalar-ignore": true,
                    "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                    "title": "Mobile",
                    "properties": {
                      "active": {
                        "type": "boolean",
                        "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                      },
                      "app": {
                        "type": "object",
                        "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                        "properties": {
                          "build": {
                            "type": "string",
                            "description": "The specific build number in the app."
                          },
                          "name": {
                            "type": "string",
                            "description": "The name of the app."
                          },
                          "namespace": {
                            "type": "string",
                            "description": "The app's namespace."
                          },
                          "version": {
                            "type": "string",
                            "description": "The version of the app the call originated from."
                          }
                        }
                      },
                      "channel": {
                        "type": "string",
                        "enum": [
                          "browser",
                          "server",
                          "mobile"
                        ],
                        "description": "The channel the event originated from."
                      },
                      "device": {
                        "type": "object",
                        "description": "Contains information about the device the event originated from.\n",
                        "properties": {
                          "advertisingId": {
                            "type": "string",
                            "description": "The advertising ID is a unique, anonymous ID for advertising."
                          },
                          "id": {
                            "type": "string",
                            "description": "The device ID."
                          },
                          "manufacturer": {
                            "type": "string",
                            "description": "The device manufacturer."
                          },
                          "model": {
                            "type": "string",
                            "description": "The device model."
                          },
                          "name": {
                            "type": "string",
                            "description": "The device name."
                          },
                          "type": {
                            "type": "string",
                            "description": "The device type—android, iOS, etc.",
                            "enum": [
                              "android",
                              "ios"
                            ]
                          },
                          "version": {
                            "type": "string",
                            "description": "The firmware version for the device."
                          }
                        }
                      },
                      "ip": {
                        "type": "string",
                        "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                      },
                      "locale": {
                        "type": "string",
                        "description": "The locale string for the current user, e.g. `en-US`."
                      },
                      "network": {
                        "type": "object",
                        "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                        "properties": {
                          "bluetooth": {
                            "type": "boolean",
                            "description": "Lets you know if bluetooth is enabled on a device."
                          },
                          "carrier": {
                            "type": "string",
                            "description": "The cellular carrier the phone uses."
                          },
                          "cellular": {
                            "type": "boolean",
                            "description": "Indicates whether the device's cellular connection is enabled or not."
                          },
                          "wifi": {
                            "type": "boolean",
                            "description": "Indicates whether a device's wifi connection is enabled or not."
                          }
                        }
                      },
                      "os": {
                        "type": "object",
                        "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "The operating system running on the device."
                          },
                          "version": {
                            "type": "string",
                            "description": "The version of the OS running on the device."
                          }
                        }
                      },
                      "userAgent": {
                        "type": "string",
                        "description": "The user agent of the device making the request"
                      }
                    }
                  }
                ]
              },
              "integrations": {
                "x-scalar-ignore": true,
                "type": "object",
                "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                "additionalProperties": {
                  "type": "boolean",
                  "x-additionalPropertiesName": "Enabled/Disabled integrations"
                },
                "example": {
                  "All": true,
                  "Salesforce": false
                }
              },
              "messageId": {
                "type": "string",
                "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
              },
              "originalTimestamp": {
                "type": "string",
                "format": "date-time",
                "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
              },
              "properties": {
                "additionalProperties": {
                  "x-additionalPropertiesName": "Event Properties",
                  "description": "Additional properties that you want to capture in the event. These can take any JSON shape."
                },
                "description": "Additional properties for your event.",
                "type": "object"
              },
              "receivedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
              },
              "sentAt": {
                "type": "string",
                "format": "date-time",
                "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
              },
              "version": {
                "readOnly": true,
                "type": "number",
                "description": "The version of the API that received the event, automatically set by Customer.io."
              }
            },
            "required": [
              "userId",
              "event"
            ]
          },
          {
            "x-scalar-ignore": true,
            "title": "Anonymous User",
            "properties": {
              "anonymousId": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
                "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
              },
              "event": {
                "type": "string",
                "description": "The name of the event",
                "example": "new_account"
              },
              "context": {
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "oneOf": [
                  {
                    "x-scalar-ignore": true,
                    "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                    "title": "Non-mobile",
                    "properties": {
                      "active": {
                        "type": "boolean",
                        "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                      },
                      "campaign": {
                        "type": "object",
                        "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                        "properties": {
                          "content": {
                            "type": "string"
                          },
                          "medium": {
                            "type": "string",
                            "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                          },
                          "name": {
                            "type": "string",
                            "description": "The campaign name."
                          },
                          "source": {
                            "type": "string",
                            "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                          },
                          "term": {
                            "type": "string",
                            "description": "The keyword term(s) a user came from."
                          }
                        },
                        "additionalProperties": {
                          "type": "string",
                          "x-additionalPropertiesName": "Additional UTM Parameters"
                        }
                      },
                      "channel": {
                        "type": "string",
                        "enum": [
                          "browser",
                          "server",
                          "mobile"
                        ],
                        "description": "The channel the event originated from."
                      },
                      "ip": {
                        "type": "string",
                        "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                      },
                      "locale": {
                        "type": "string",
                        "description": "The locale string for the current user, e.g. `en-US`."
                      },
                      "page": {
                        "x-scalar-ignore": true,
                        "type": "object",
                        "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                        "properties": {
                          "keywords": {
                            "type": "array",
                            "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                            "items": {
                              "type": "string"
                            }
                          },
                          "name": {
                            "type": "string",
                            "description": "The name of the page. Reserved for future use.\n"
                          },
                          "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."
                          }
                        }
                      },
                      "userAgent": {
                        "type": "string",
                        "description": "The user agent of the device making the request"
                      }
                    }
                  },
                  {
                    "x-scalar-ignore": true,
                    "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                    "title": "Mobile",
                    "properties": {
                      "active": {
                        "type": "boolean",
                        "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                      },
                      "app": {
                        "type": "object",
                        "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                        "properties": {
                          "build": {
                            "type": "string",
                            "description": "The specific build number in the app."
                          },
                          "name": {
                            "type": "string",
                            "description": "The name of the app."
                          },
                          "namespace": {
                            "type": "string",
                            "description": "The app's namespace."
                          },
                          "version": {
                            "type": "string",
                            "description": "The version of the app the call originated from."
                          }
                        }
                      },
                      "channel": {
                        "type": "string",
                        "enum": [
                          "browser",
                          "server",
                          "mobile"
                        ],
                        "description": "The channel the event originated from."
                      },
                      "device": {
                        "type": "object",
                        "description": "Contains information about the device the event originated from.\n",
                        "properties": {
                          "advertisingId": {
                            "type": "string",
                            "description": "The advertising ID is a unique, anonymous ID for advertising."
                          },
                          "id": {
                            "type": "string",
                            "description": "The device ID."
                          },
                          "manufacturer": {
                            "type": "string",
                            "description": "The device manufacturer."
                          },
                          "model": {
                            "type": "string",
                            "description": "The device model."
                          },
                          "name": {
                            "type": "string",
                            "description": "The device name."
                          },
                          "type": {
                            "type": "string",
                            "description": "The device type—android, iOS, etc.",
                            "enum": [
                              "android",
                              "ios"
                            ]
                          },
                          "version": {
                            "type": "string",
                            "description": "The firmware version for the device."
                          }
                        }
                      },
                      "ip": {
                        "type": "string",
                        "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                      },
                      "locale": {
                        "type": "string",
                        "description": "The locale string for the current user, e.g. `en-US`."
                      },
                      "network": {
                        "type": "object",
                        "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                        "properties": {
                          "bluetooth": {
                            "type": "boolean",
                            "description": "Lets you know if bluetooth is enabled on a device."
                          },
                          "carrier": {
                            "type": "string",
                            "description": "The cellular carrier the phone uses."
                          },
                          "cellular": {
                            "type": "boolean",
                            "description": "Indicates whether the device's cellular connection is enabled or not."
                          },
                          "wifi": {
                            "type": "boolean",
                            "description": "Indicates whether a device's wifi connection is enabled or not."
                          }
                        }
                      },
                      "os": {
                        "type": "object",
                        "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "The operating system running on the device."
                          },
                          "version": {
                            "type": "string",
                            "description": "The version of the OS running on the device."
                          }
                        }
                      },
                      "userAgent": {
                        "type": "string",
                        "description": "The user agent of the device making the request"
                      }
                    }
                  }
                ]
              },
              "integrations": {
                "x-scalar-ignore": true,
                "type": "object",
                "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                "additionalProperties": {
                  "type": "boolean",
                  "x-additionalPropertiesName": "Enabled/Disabled integrations"
                },
                "example": {
                  "All": true,
                  "Salesforce": false
                }
              },
              "messageId": {
                "type": "string",
                "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
              },
              "originalTimestamp": {
                "type": "string",
                "format": "date-time",
                "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
              },
              "properties": {
                "additionalProperties": {
                  "x-additionalPropertiesName": "Event Properties",
                  "description": "Additional properties that you want to capture in the event. These can take any JSON shape."
                },
                "description": "Additional properties for your event.",
                "type": "object"
              },
              "receivedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
              },
              "sentAt": {
                "type": "string",
                "format": "date-time",
                "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
              },
              "version": {
                "readOnly": true,
                "type": "number",
                "description": "The version of the API that received the event, automatically set by Customer.io."
              }
            },
            "required": [
              "event",
              "anonymousId"
            ]
          },
          {
            "x-scalar-ignore": true,
            "title": "Group",
            "properties": {
              "event": {
                "type": "string",
                "description": "The name of the event",
                "example": "new_account"
              },
              "groupId": {
                "type": "string",
                "description": "The ID of the group you want to attribute an event to. Note that not all destinations allow groups (or their downstream equivalent) to perform groups."
              },
              "context": {
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "oneOf": [
                  {
                    "x-scalar-ignore": true,
                    "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                    "title": "Non-mobile",
                    "properties": {
                      "active": {
                        "type": "boolean",
                        "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                      },
                      "campaign": {
                        "type": "object",
                        "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                        "properties": {
                          "content": {
                            "type": "string"
                          },
                          "medium": {
                            "type": "string",
                            "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                          },
                          "name": {
                            "type": "string",
                            "description": "The campaign name."
                          },
                          "source": {
                            "type": "string",
                            "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                          },
                          "term": {
                            "type": "string",
                            "description": "The keyword term(s) a user came from."
                          }
                        },
                        "additionalProperties": {
                          "type": "string",
                          "x-additionalPropertiesName": "Additional UTM Parameters"
                        }
                      },
                      "channel": {
                        "type": "string",
                        "enum": [
                          "browser",
                          "server",
                          "mobile"
                        ],
                        "description": "The channel the event originated from."
                      },
                      "ip": {
                        "type": "string",
                        "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                      },
                      "locale": {
                        "type": "string",
                        "description": "The locale string for the current user, e.g. `en-US`."
                      },
                      "page": {
                        "x-scalar-ignore": true,
                        "type": "object",
                        "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                        "properties": {
                          "keywords": {
                            "type": "array",
                            "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                            "items": {
                              "type": "string"
                            }
                          },
                          "name": {
                            "type": "string",
                            "description": "The name of the page. Reserved for future use.\n"
                          },
                          "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."
                          }
                        }
                      },
                      "userAgent": {
                        "type": "string",
                        "description": "The user agent of the device making the request"
                      }
                    }
                  },
                  {
                    "x-scalar-ignore": true,
                    "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                    "title": "Mobile",
                    "properties": {
                      "active": {
                        "type": "boolean",
                        "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                      },
                      "app": {
                        "type": "object",
                        "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                        "properties": {
                          "build": {
                            "type": "string",
                            "description": "The specific build number in the app."
                          },
                          "name": {
                            "type": "string",
                            "description": "The name of the app."
                          },
                          "namespace": {
                            "type": "string",
                            "description": "The app's namespace."
                          },
                          "version": {
                            "type": "string",
                            "description": "The version of the app the call originated from."
                          }
                        }
                      },
                      "channel": {
                        "type": "string",
                        "enum": [
                          "browser",
                          "server",
                          "mobile"
                        ],
                        "description": "The channel the event originated from."
                      },
                      "device": {
                        "type": "object",
                        "description": "Contains information about the device the event originated from.\n",
                        "properties": {
                          "advertisingId": {
                            "type": "string",
                            "description": "The advertising ID is a unique, anonymous ID for advertising."
                          },
                          "id": {
                            "type": "string",
                            "description": "The device ID."
                          },
                          "manufacturer": {
                            "type": "string",
                            "description": "The device manufacturer."
                          },
                          "model": {
                            "type": "string",
                            "description": "The device model."
                          },
                          "name": {
                            "type": "string",
                            "description": "The device name."
                          },
                          "type": {
                            "type": "string",
                            "description": "The device type—android, iOS, etc.",
                            "enum": [
                              "android",
                              "ios"
                            ]
                          },
                          "version": {
                            "type": "string",
                            "description": "The firmware version for the device."
                          }
                        }
                      },
                      "ip": {
                        "type": "string",
                        "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                      },
                      "locale": {
                        "type": "string",
                        "description": "The locale string for the current user, e.g. `en-US`."
                      },
                      "network": {
                        "type": "object",
                        "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                        "properties": {
                          "bluetooth": {
                            "type": "boolean",
                            "description": "Lets you know if bluetooth is enabled on a device."
                          },
                          "carrier": {
                            "type": "string",
                            "description": "The cellular carrier the phone uses."
                          },
                          "cellular": {
                            "type": "boolean",
                            "description": "Indicates whether the device's cellular connection is enabled or not."
                          },
                          "wifi": {
                            "type": "boolean",
                            "description": "Indicates whether a device's wifi connection is enabled or not."
                          }
                        }
                      },
                      "os": {
                        "type": "object",
                        "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "The operating system running on the device."
                          },
                          "version": {
                            "type": "string",
                            "description": "The version of the OS running on the device."
                          }
                        }
                      },
                      "userAgent": {
                        "type": "string",
                        "description": "The user agent of the device making the request"
                      }
                    }
                  }
                ]
              },
              "integrations": {
                "x-scalar-ignore": true,
                "type": "object",
                "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                "additionalProperties": {
                  "type": "boolean",
                  "x-additionalPropertiesName": "Enabled/Disabled integrations"
                },
                "example": {
                  "All": true,
                  "Salesforce": false
                }
              },
              "messageId": {
                "type": "string",
                "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
              },
              "originalTimestamp": {
                "type": "string",
                "format": "date-time",
                "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
              },
              "properties": {
                "additionalProperties": {
                  "x-additionalPropertiesName": "Event Properties",
                  "description": "Additional properties that you want to capture in the event. These can take any JSON shape."
                },
                "description": "Additional properties for your event.",
                "type": "object"
              },
              "receivedAt": {
                "type": "string",
                "format": "date-time",
                "readOnly": true,
                "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
              },
              "sentAt": {
                "type": "string",
                "format": "date-time",
                "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
              },
              "version": {
                "readOnly": true,
                "type": "number",
                "description": "The version of the API that received the event, automatically set by Customer.io."
              }
            },
            "required": [
              "event",
              "groupId"
            ]
          }
        ]
      },
      "track_known": {
        "x-scalar-ignore": true,
        "title": "Known User",
        "properties": {
          "event": {
            "type": "string",
            "description": "The name of the event",
            "example": "new_account"
          },
          "userId": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
            "example": "241ma8mf4a"
          },
          "context": {
            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
            "oneOf": [
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Non-mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "campaign": {
                    "type": "object",
                    "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                    "properties": {
                      "content": {
                        "type": "string"
                      },
                      "medium": {
                        "type": "string",
                        "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                      },
                      "name": {
                        "type": "string",
                        "description": "The campaign name."
                      },
                      "source": {
                        "type": "string",
                        "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                      },
                      "term": {
                        "type": "string",
                        "description": "The keyword term(s) a user came from."
                      }
                    },
                    "additionalProperties": {
                      "type": "string",
                      "x-additionalPropertiesName": "Additional UTM Parameters"
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "page": {
                    "x-scalar-ignore": true,
                    "type": "object",
                    "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                    "properties": {
                      "keywords": {
                        "type": "array",
                        "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                        "items": {
                          "type": "string"
                        }
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the page. Reserved for future use.\n"
                      },
                      "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."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              },
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "app": {
                    "type": "object",
                    "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                    "properties": {
                      "build": {
                        "type": "string",
                        "description": "The specific build number in the app."
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the app."
                      },
                      "namespace": {
                        "type": "string",
                        "description": "The app's namespace."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the app the call originated from."
                      }
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "device": {
                    "type": "object",
                    "description": "Contains information about the device the event originated from.\n",
                    "properties": {
                      "advertisingId": {
                        "type": "string",
                        "description": "The advertising ID is a unique, anonymous ID for advertising."
                      },
                      "id": {
                        "type": "string",
                        "description": "The device ID."
                      },
                      "manufacturer": {
                        "type": "string",
                        "description": "The device manufacturer."
                      },
                      "model": {
                        "type": "string",
                        "description": "The device model."
                      },
                      "name": {
                        "type": "string",
                        "description": "The device name."
                      },
                      "type": {
                        "type": "string",
                        "description": "The device type—android, iOS, etc.",
                        "enum": [
                          "android",
                          "ios"
                        ]
                      },
                      "version": {
                        "type": "string",
                        "description": "The firmware version for the device."
                      }
                    }
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "network": {
                    "type": "object",
                    "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                    "properties": {
                      "bluetooth": {
                        "type": "boolean",
                        "description": "Lets you know if bluetooth is enabled on a device."
                      },
                      "carrier": {
                        "type": "string",
                        "description": "The cellular carrier the phone uses."
                      },
                      "cellular": {
                        "type": "boolean",
                        "description": "Indicates whether the device's cellular connection is enabled or not."
                      },
                      "wifi": {
                        "type": "boolean",
                        "description": "Indicates whether a device's wifi connection is enabled or not."
                      }
                    }
                  },
                  "os": {
                    "type": "object",
                    "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The operating system running on the device."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the OS running on the device."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              }
            ]
          },
          "integrations": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
            "additionalProperties": {
              "type": "boolean",
              "x-additionalPropertiesName": "Enabled/Disabled integrations"
            },
            "example": {
              "All": true,
              "Salesforce": false
            }
          },
          "messageId": {
            "type": "string",
            "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
          },
          "originalTimestamp": {
            "type": "string",
            "format": "date-time",
            "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
          },
          "properties": {
            "additionalProperties": {
              "x-additionalPropertiesName": "Event Properties",
              "description": "Additional properties that you want to capture in the event. These can take any JSON shape."
            },
            "description": "Additional properties for your event.",
            "type": "object"
          },
          "receivedAt": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
          },
          "sentAt": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
          },
          "version": {
            "readOnly": true,
            "type": "number",
            "description": "The version of the API that received the event, automatically set by Customer.io."
          }
        },
        "required": [
          "userId",
          "event"
        ]
      },
      "track_anonymous": {
        "x-scalar-ignore": true,
        "title": "Anonymous User",
        "properties": {
          "anonymousId": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
            "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
          },
          "event": {
            "type": "string",
            "description": "The name of the event",
            "example": "new_account"
          },
          "context": {
            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
            "oneOf": [
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Non-mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "campaign": {
                    "type": "object",
                    "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                    "properties": {
                      "content": {
                        "type": "string"
                      },
                      "medium": {
                        "type": "string",
                        "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                      },
                      "name": {
                        "type": "string",
                        "description": "The campaign name."
                      },
                      "source": {
                        "type": "string",
                        "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                      },
                      "term": {
                        "type": "string",
                        "description": "The keyword term(s) a user came from."
                      }
                    },
                    "additionalProperties": {
                      "type": "string",
                      "x-additionalPropertiesName": "Additional UTM Parameters"
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "page": {
                    "x-scalar-ignore": true,
                    "type": "object",
                    "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                    "properties": {
                      "keywords": {
                        "type": "array",
                        "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                        "items": {
                          "type": "string"
                        }
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the page. Reserved for future use.\n"
                      },
                      "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."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              },
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "app": {
                    "type": "object",
                    "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                    "properties": {
                      "build": {
                        "type": "string",
                        "description": "The specific build number in the app."
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the app."
                      },
                      "namespace": {
                        "type": "string",
                        "description": "The app's namespace."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the app the call originated from."
                      }
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "device": {
                    "type": "object",
                    "description": "Contains information about the device the event originated from.\n",
                    "properties": {
                      "advertisingId": {
                        "type": "string",
                        "description": "The advertising ID is a unique, anonymous ID for advertising."
                      },
                      "id": {
                        "type": "string",
                        "description": "The device ID."
                      },
                      "manufacturer": {
                        "type": "string",
                        "description": "The device manufacturer."
                      },
                      "model": {
                        "type": "string",
                        "description": "The device model."
                      },
                      "name": {
                        "type": "string",
                        "description": "The device name."
                      },
                      "type": {
                        "type": "string",
                        "description": "The device type—android, iOS, etc.",
                        "enum": [
                          "android",
                          "ios"
                        ]
                      },
                      "version": {
                        "type": "string",
                        "description": "The firmware version for the device."
                      }
                    }
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "network": {
                    "type": "object",
                    "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                    "properties": {
                      "bluetooth": {
                        "type": "boolean",
                        "description": "Lets you know if bluetooth is enabled on a device."
                      },
                      "carrier": {
                        "type": "string",
                        "description": "The cellular carrier the phone uses."
                      },
                      "cellular": {
                        "type": "boolean",
                        "description": "Indicates whether the device's cellular connection is enabled or not."
                      },
                      "wifi": {
                        "type": "boolean",
                        "description": "Indicates whether a device's wifi connection is enabled or not."
                      }
                    }
                  },
                  "os": {
                    "type": "object",
                    "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The operating system running on the device."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the OS running on the device."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              }
            ]
          },
          "integrations": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
            "additionalProperties": {
              "type": "boolean",
              "x-additionalPropertiesName": "Enabled/Disabled integrations"
            },
            "example": {
              "All": true,
              "Salesforce": false
            }
          },
          "messageId": {
            "type": "string",
            "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
          },
          "originalTimestamp": {
            "type": "string",
            "format": "date-time",
            "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
          },
          "properties": {
            "additionalProperties": {
              "x-additionalPropertiesName": "Event Properties",
              "description": "Additional properties that you want to capture in the event. These can take any JSON shape."
            },
            "description": "Additional properties for your event.",
            "type": "object"
          },
          "receivedAt": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
          },
          "sentAt": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
          },
          "version": {
            "readOnly": true,
            "type": "number",
            "description": "The version of the API that received the event, automatically set by Customer.io."
          }
        },
        "required": [
          "event",
          "anonymousId"
        ]
      },
      "track_group": {
        "x-scalar-ignore": true,
        "title": "Group",
        "properties": {
          "event": {
            "type": "string",
            "description": "The name of the event",
            "example": "new_account"
          },
          "groupId": {
            "type": "string",
            "description": "The ID of the group you want to attribute an event to. Note that not all destinations allow groups (or their downstream equivalent) to perform groups."
          },
          "context": {
            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
            "oneOf": [
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Non-mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "campaign": {
                    "type": "object",
                    "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                    "properties": {
                      "content": {
                        "type": "string"
                      },
                      "medium": {
                        "type": "string",
                        "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                      },
                      "name": {
                        "type": "string",
                        "description": "The campaign name."
                      },
                      "source": {
                        "type": "string",
                        "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                      },
                      "term": {
                        "type": "string",
                        "description": "The keyword term(s) a user came from."
                      }
                    },
                    "additionalProperties": {
                      "type": "string",
                      "x-additionalPropertiesName": "Additional UTM Parameters"
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "page": {
                    "x-scalar-ignore": true,
                    "type": "object",
                    "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                    "properties": {
                      "keywords": {
                        "type": "array",
                        "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                        "items": {
                          "type": "string"
                        }
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the page. Reserved for future use.\n"
                      },
                      "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."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              },
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "app": {
                    "type": "object",
                    "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                    "properties": {
                      "build": {
                        "type": "string",
                        "description": "The specific build number in the app."
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the app."
                      },
                      "namespace": {
                        "type": "string",
                        "description": "The app's namespace."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the app the call originated from."
                      }
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "device": {
                    "type": "object",
                    "description": "Contains information about the device the event originated from.\n",
                    "properties": {
                      "advertisingId": {
                        "type": "string",
                        "description": "The advertising ID is a unique, anonymous ID for advertising."
                      },
                      "id": {
                        "type": "string",
                        "description": "The device ID."
                      },
                      "manufacturer": {
                        "type": "string",
                        "description": "The device manufacturer."
                      },
                      "model": {
                        "type": "string",
                        "description": "The device model."
                      },
                      "name": {
                        "type": "string",
                        "description": "The device name."
                      },
                      "type": {
                        "type": "string",
                        "description": "The device type—android, iOS, etc.",
                        "enum": [
                          "android",
                          "ios"
                        ]
                      },
                      "version": {
                        "type": "string",
                        "description": "The firmware version for the device."
                      }
                    }
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "network": {
                    "type": "object",
                    "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                    "properties": {
                      "bluetooth": {
                        "type": "boolean",
                        "description": "Lets you know if bluetooth is enabled on a device."
                      },
                      "carrier": {
                        "type": "string",
                        "description": "The cellular carrier the phone uses."
                      },
                      "cellular": {
                        "type": "boolean",
                        "description": "Indicates whether the device's cellular connection is enabled or not."
                      },
                      "wifi": {
                        "type": "boolean",
                        "description": "Indicates whether a device's wifi connection is enabled or not."
                      }
                    }
                  },
                  "os": {
                    "type": "object",
                    "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The operating system running on the device."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the OS running on the device."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              }
            ]
          },
          "integrations": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
            "additionalProperties": {
              "type": "boolean",
              "x-additionalPropertiesName": "Enabled/Disabled integrations"
            },
            "example": {
              "All": true,
              "Salesforce": false
            }
          },
          "messageId": {
            "type": "string",
            "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
          },
          "originalTimestamp": {
            "type": "string",
            "format": "date-time",
            "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
          },
          "properties": {
            "additionalProperties": {
              "x-additionalPropertiesName": "Event Properties",
              "description": "Additional properties that you want to capture in the event. These can take any JSON shape."
            },
            "description": "Additional properties for your event.",
            "type": "object"
          },
          "receivedAt": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
          },
          "sentAt": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
          },
          "version": {
            "readOnly": true,
            "type": "number",
            "description": "The version of the API that received the event, automatically set by Customer.io."
          }
        },
        "required": [
          "event",
          "groupId"
        ]
      },
      "page_known": {
        "x-scalar-ignore": true,
        "title": "Known User",
        "properties": {
          "userId": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
            "example": "241ma8mf4a"
          },
          "context": {
            "x-scalar-ignore": true,
            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
            "title": "Non-mobile",
            "properties": {
              "active": {
                "type": "boolean",
                "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
              },
              "campaign": {
                "type": "object",
                "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                "properties": {
                  "content": {
                    "type": "string"
                  },
                  "medium": {
                    "type": "string",
                    "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                  },
                  "name": {
                    "type": "string",
                    "description": "The campaign name."
                  },
                  "source": {
                    "type": "string",
                    "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                  },
                  "term": {
                    "type": "string",
                    "description": "The keyword term(s) a user came from."
                  }
                },
                "additionalProperties": {
                  "type": "string",
                  "x-additionalPropertiesName": "Additional UTM Parameters"
                }
              },
              "channel": {
                "type": "string",
                "enum": [
                  "browser",
                  "server",
                  "mobile"
                ],
                "description": "The channel the event originated from."
              },
              "ip": {
                "type": "string",
                "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
              },
              "locale": {
                "type": "string",
                "description": "The locale string for the current user, e.g. `en-US`."
              },
              "page": {
                "x-scalar-ignore": true,
                "type": "object",
                "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                "properties": {
                  "keywords": {
                    "type": "array",
                    "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "name": {
                    "type": "string",
                    "description": "The name of the page. Reserved for future use.\n"
                  },
                  "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."
                  }
                }
              },
              "userAgent": {
                "type": "string",
                "description": "The user agent of the device making the request"
              }
            }
          },
          "integrations": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
            "additionalProperties": {
              "type": "boolean",
              "x-additionalPropertiesName": "Enabled/Disabled integrations"
            },
            "example": {
              "All": true,
              "Salesforce": false
            }
          },
          "messageId": {
            "type": "string",
            "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
          },
          "name": {
            "type": "string",
            "description": "The name of the page.",
            "example": "home"
          },
          "originalTimestamp": {
            "type": "string",
            "format": "date-time",
            "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
          },
          "properties": {
            "additionalProperties": {
              "x-additionalPropertiesName": "Page Properties"
            },
            "description": "Additional `page` properties. Analytics.js automatically collects `url`, `title`, `referrer`, `path`, and `search` properties. But, if you use our other sources or you write your own integration, you should consider sending these properties yourself. Destination actions that take `page` events often rely on the `url` and `title` properties.",
            "properties": {
              "category": {
                "type": "string",
                "description": "The category of the page. This might be useful if you have a single page routes or have a flattened URL structure."
              },
              "path": {
                "type": "string",
                "description": "The path of the page. This defaults to `location.pathname`, but can be overridden.",
                "example": "/page"
              },
              "referrer": {
                "type": "string",
                "description": "The referrer of the page, if applicable. This defaults to `document.referrer`, but can be overridden.",
                "example": "http://www.google.com/search?q=example"
              },
              "search": {
                "type": "string",
                "description": "The search query in the URL, if present. This defaults to `location.search`, but can be overridden.",
                "example": "?q=sfgiants"
              },
              "title": {
                "type": "string",
                "description": "The title of the page. This defaults to `document.title`, but can be overridden.",
                "example": "Page | Example.com"
              },
              "url": {
                "type": "string",
                "description": "The URL of the page. This defaults to a canonical url if available, and falls back to `document.location.href`.",
                "example": "https://www.example.com/page/"
              }
            },
            "type": "object"
          },
          "receivedAt": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
          },
          "sentAt": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
          },
          "version": {
            "readOnly": true,
            "type": "number",
            "description": "The version of the API that received the event, automatically set by Customer.io."
          }
        },
        "required": [
          "userId"
        ]
      },
      "page_anonymous": {
        "x-scalar-ignore": true,
        "title": "Anonymous User",
        "properties": {
          "anonymousId": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
            "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
          },
          "context": {
            "x-scalar-ignore": true,
            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
            "title": "Non-mobile",
            "properties": {
              "active": {
                "type": "boolean",
                "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
              },
              "campaign": {
                "type": "object",
                "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                "properties": {
                  "content": {
                    "type": "string"
                  },
                  "medium": {
                    "type": "string",
                    "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                  },
                  "name": {
                    "type": "string",
                    "description": "The campaign name."
                  },
                  "source": {
                    "type": "string",
                    "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                  },
                  "term": {
                    "type": "string",
                    "description": "The keyword term(s) a user came from."
                  }
                },
                "additionalProperties": {
                  "type": "string",
                  "x-additionalPropertiesName": "Additional UTM Parameters"
                }
              },
              "channel": {
                "type": "string",
                "enum": [
                  "browser",
                  "server",
                  "mobile"
                ],
                "description": "The channel the event originated from."
              },
              "ip": {
                "type": "string",
                "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
              },
              "locale": {
                "type": "string",
                "description": "The locale string for the current user, e.g. `en-US`."
              },
              "page": {
                "x-scalar-ignore": true,
                "type": "object",
                "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                "properties": {
                  "keywords": {
                    "type": "array",
                    "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "name": {
                    "type": "string",
                    "description": "The name of the page. Reserved for future use.\n"
                  },
                  "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."
                  }
                }
              },
              "userAgent": {
                "type": "string",
                "description": "The user agent of the device making the request"
              }
            }
          },
          "integrations": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
            "additionalProperties": {
              "type": "boolean",
              "x-additionalPropertiesName": "Enabled/Disabled integrations"
            },
            "example": {
              "All": true,
              "Salesforce": false
            }
          },
          "messageId": {
            "type": "string",
            "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
          },
          "name": {
            "type": "string",
            "description": "The name of the page.",
            "example": "home"
          },
          "originalTimestamp": {
            "type": "string",
            "format": "date-time",
            "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
          },
          "properties": {
            "additionalProperties": {
              "x-additionalPropertiesName": "Page Properties"
            },
            "description": "Additional properties for your event.",
            "properties": {
              "category": {
                "type": "string",
                "description": "The category of the page. This might be useful if you have a single page routes or have a flattened URL structure."
              },
              "path": {
                "type": "string",
                "description": "The path of the page. This defaults to location.pathname, but can be overridden.",
                "example": "/page"
              },
              "referrer": {
                "type": "string",
                "description": "The referrer of the page, if applicable. This defaults to document.referrer, but can be overridden.",
                "example": "http://www.google.com/search?q=example"
              },
              "search": {
                "type": "string",
                "description": "The search query in the URL, if present. This defaults to location.search, but can be overridden.",
                "example": "?q=sfgiants"
              },
              "title": {
                "type": "string",
                "description": "The title of the page. This defaults to `document.title`, but can be overridden.",
                "example": "Page | Example.com"
              },
              "url": {
                "type": "string",
                "description": "The URL of the page."
              }
            },
            "type": "object"
          },
          "receivedAt": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
          },
          "sentAt": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
          },
          "version": {
            "readOnly": true,
            "type": "number",
            "description": "The version of the API that received the event, automatically set by Customer.io."
          }
        },
        "required": [
          "anonymousId"
        ]
      },
      "screen_known": {
        "x-scalar-ignore": true,
        "title": "Known User",
        "properties": {
          "userId": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
            "example": "241ma8mf4a"
          },
          "context": {
            "x-scalar-ignore": true,
            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
            "title": "Mobile",
            "properties": {
              "active": {
                "type": "boolean",
                "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
              },
              "app": {
                "type": "object",
                "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                "properties": {
                  "build": {
                    "type": "string",
                    "description": "The specific build number in the app."
                  },
                  "name": {
                    "type": "string",
                    "description": "The name of the app."
                  },
                  "namespace": {
                    "type": "string",
                    "description": "The app's namespace."
                  },
                  "version": {
                    "type": "string",
                    "description": "The version of the app the call originated from."
                  }
                }
              },
              "channel": {
                "type": "string",
                "enum": [
                  "browser",
                  "server",
                  "mobile"
                ],
                "description": "The channel the event originated from."
              },
              "device": {
                "type": "object",
                "description": "Contains information about the device the event originated from.\n",
                "properties": {
                  "advertisingId": {
                    "type": "string",
                    "description": "The advertising ID is a unique, anonymous ID for advertising."
                  },
                  "id": {
                    "type": "string",
                    "description": "The device ID."
                  },
                  "manufacturer": {
                    "type": "string",
                    "description": "The device manufacturer."
                  },
                  "model": {
                    "type": "string",
                    "description": "The device model."
                  },
                  "name": {
                    "type": "string",
                    "description": "The device name."
                  },
                  "type": {
                    "type": "string",
                    "description": "The device type—android, iOS, etc.",
                    "enum": [
                      "android",
                      "ios"
                    ]
                  },
                  "version": {
                    "type": "string",
                    "description": "The firmware version for the device."
                  }
                }
              },
              "ip": {
                "type": "string",
                "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
              },
              "locale": {
                "type": "string",
                "description": "The locale string for the current user, e.g. `en-US`."
              },
              "network": {
                "type": "object",
                "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                "properties": {
                  "bluetooth": {
                    "type": "boolean",
                    "description": "Lets you know if bluetooth is enabled on a device."
                  },
                  "carrier": {
                    "type": "string",
                    "description": "The cellular carrier the phone uses."
                  },
                  "cellular": {
                    "type": "boolean",
                    "description": "Indicates whether the device's cellular connection is enabled or not."
                  },
                  "wifi": {
                    "type": "boolean",
                    "description": "Indicates whether a device's wifi connection is enabled or not."
                  }
                }
              },
              "os": {
                "type": "object",
                "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "The operating system running on the device."
                  },
                  "version": {
                    "type": "string",
                    "description": "The version of the OS running on the device."
                  }
                }
              },
              "userAgent": {
                "type": "string",
                "description": "The user agent of the device making the request"
              }
            }
          },
          "integrations": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
            "additionalProperties": {
              "type": "boolean",
              "x-additionalPropertiesName": "Enabled/Disabled integrations"
            },
            "example": {
              "All": true,
              "Salesforce": false
            }
          },
          "messageId": {
            "type": "string",
            "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
          },
          "name": {
            "type": "string",
            "description": "The name of the screen the person visited.",
            "example": "home"
          },
          "originalTimestamp": {
            "type": "string",
            "format": "date-time",
            "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
          },
          "properties": {
            "additionalProperties": {
              "x-additionalPropertiesName": "Screen Properties"
            },
            "description": "Additional properties for your screen.",
            "type": "object"
          },
          "receivedAt": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
          },
          "sentAt": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
          },
          "version": {
            "readOnly": true,
            "type": "number",
            "description": "The version of the API that received the event, automatically set by Customer.io."
          }
        },
        "required": [
          "userId"
        ]
      },
      "screen_anonymous": {
        "x-scalar-ignore": true,
        "title": "Anonymous User",
        "properties": {
          "anonymousId": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
            "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
          },
          "context": {
            "x-scalar-ignore": true,
            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
            "title": "Mobile",
            "properties": {
              "active": {
                "type": "boolean",
                "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
              },
              "app": {
                "type": "object",
                "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                "properties": {
                  "build": {
                    "type": "string",
                    "description": "The specific build number in the app."
                  },
                  "name": {
                    "type": "string",
                    "description": "The name of the app."
                  },
                  "namespace": {
                    "type": "string",
                    "description": "The app's namespace."
                  },
                  "version": {
                    "type": "string",
                    "description": "The version of the app the call originated from."
                  }
                }
              },
              "channel": {
                "type": "string",
                "enum": [
                  "browser",
                  "server",
                  "mobile"
                ],
                "description": "The channel the event originated from."
              },
              "device": {
                "type": "object",
                "description": "Contains information about the device the event originated from.\n",
                "properties": {
                  "advertisingId": {
                    "type": "string",
                    "description": "The advertising ID is a unique, anonymous ID for advertising."
                  },
                  "id": {
                    "type": "string",
                    "description": "The device ID."
                  },
                  "manufacturer": {
                    "type": "string",
                    "description": "The device manufacturer."
                  },
                  "model": {
                    "type": "string",
                    "description": "The device model."
                  },
                  "name": {
                    "type": "string",
                    "description": "The device name."
                  },
                  "type": {
                    "type": "string",
                    "description": "The device type—android, iOS, etc.",
                    "enum": [
                      "android",
                      "ios"
                    ]
                  },
                  "version": {
                    "type": "string",
                    "description": "The firmware version for the device."
                  }
                }
              },
              "ip": {
                "type": "string",
                "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
              },
              "locale": {
                "type": "string",
                "description": "The locale string for the current user, e.g. `en-US`."
              },
              "network": {
                "type": "object",
                "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                "properties": {
                  "bluetooth": {
                    "type": "boolean",
                    "description": "Lets you know if bluetooth is enabled on a device."
                  },
                  "carrier": {
                    "type": "string",
                    "description": "The cellular carrier the phone uses."
                  },
                  "cellular": {
                    "type": "boolean",
                    "description": "Indicates whether the device's cellular connection is enabled or not."
                  },
                  "wifi": {
                    "type": "boolean",
                    "description": "Indicates whether a device's wifi connection is enabled or not."
                  }
                }
              },
              "os": {
                "type": "object",
                "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "The operating system running on the device."
                  },
                  "version": {
                    "type": "string",
                    "description": "The version of the OS running on the device."
                  }
                }
              },
              "userAgent": {
                "type": "string",
                "description": "The user agent of the device making the request"
              }
            }
          },
          "integrations": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
            "additionalProperties": {
              "type": "boolean",
              "x-additionalPropertiesName": "Enabled/Disabled integrations"
            },
            "example": {
              "All": true,
              "Salesforce": false
            }
          },
          "messageId": {
            "type": "string",
            "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
          },
          "name": {
            "type": "string",
            "description": "The name of the screen the person visited.",
            "example": "home"
          },
          "originalTimestamp": {
            "type": "string",
            "format": "date-time",
            "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
          },
          "properties": {
            "additionalProperties": {
              "x-additionalPropertiesName": "Screen Properties"
            },
            "description": "Additional properties for your screen.",
            "type": "object"
          },
          "receivedAt": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
          },
          "sentAt": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
          },
          "version": {
            "readOnly": true,
            "type": "number",
            "description": "The version of the API that received the event, automatically set by Customer.io."
          }
        },
        "required": [
          "anonymousId"
        ]
      },
      "group_known": {
        "x-scalar-ignore": true,
        "title": "Known User",
        "properties": {
          "groupId": {
            "type": "string",
            "description": "ID of the group",
            "example": "0e8c78ea9d97a7b8185e8632"
          },
          "context": {
            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
            "oneOf": [
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Non-mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "campaign": {
                    "type": "object",
                    "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                    "properties": {
                      "content": {
                        "type": "string"
                      },
                      "medium": {
                        "type": "string",
                        "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                      },
                      "name": {
                        "type": "string",
                        "description": "The campaign name."
                      },
                      "source": {
                        "type": "string",
                        "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                      },
                      "term": {
                        "type": "string",
                        "description": "The keyword term(s) a user came from."
                      }
                    },
                    "additionalProperties": {
                      "type": "string",
                      "x-additionalPropertiesName": "Additional UTM Parameters"
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "page": {
                    "x-scalar-ignore": true,
                    "type": "object",
                    "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                    "properties": {
                      "keywords": {
                        "type": "array",
                        "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                        "items": {
                          "type": "string"
                        }
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the page. Reserved for future use.\n"
                      },
                      "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."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              },
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "app": {
                    "type": "object",
                    "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                    "properties": {
                      "build": {
                        "type": "string",
                        "description": "The specific build number in the app."
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the app."
                      },
                      "namespace": {
                        "type": "string",
                        "description": "The app's namespace."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the app the call originated from."
                      }
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "device": {
                    "type": "object",
                    "description": "Contains information about the device the event originated from.\n",
                    "properties": {
                      "advertisingId": {
                        "type": "string",
                        "description": "The advertising ID is a unique, anonymous ID for advertising."
                      },
                      "id": {
                        "type": "string",
                        "description": "The device ID."
                      },
                      "manufacturer": {
                        "type": "string",
                        "description": "The device manufacturer."
                      },
                      "model": {
                        "type": "string",
                        "description": "The device model."
                      },
                      "name": {
                        "type": "string",
                        "description": "The device name."
                      },
                      "type": {
                        "type": "string",
                        "description": "The device type—android, iOS, etc.",
                        "enum": [
                          "android",
                          "ios"
                        ]
                      },
                      "version": {
                        "type": "string",
                        "description": "The firmware version for the device."
                      }
                    }
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "network": {
                    "type": "object",
                    "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                    "properties": {
                      "bluetooth": {
                        "type": "boolean",
                        "description": "Lets you know if bluetooth is enabled on a device."
                      },
                      "carrier": {
                        "type": "string",
                        "description": "The cellular carrier the phone uses."
                      },
                      "cellular": {
                        "type": "boolean",
                        "description": "Indicates whether the device's cellular connection is enabled or not."
                      },
                      "wifi": {
                        "type": "boolean",
                        "description": "Indicates whether a device's wifi connection is enabled or not."
                      }
                    }
                  },
                  "os": {
                    "type": "object",
                    "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The operating system running on the device."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the OS running on the device."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              }
            ]
          },
          "integrations": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
            "additionalProperties": {
              "type": "boolean",
              "x-additionalPropertiesName": "Enabled/Disabled integrations"
            },
            "example": {
              "All": true,
              "Salesforce": false
            }
          },
          "messageId": {
            "type": "string",
            "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
          },
          "originalTimestamp": {
            "type": "string",
            "format": "date-time",
            "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
          },
          "receivedAt": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
          },
          "sentAt": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
          },
          "traits": {
            "type": "object",
            "description": "Additional information about the group.",
            "properties": {
              "objectTypeId": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "If you use Customer.io Journeys as a destination, this value is the type of group/object your group belongs to; object type IDs are stringified integers. If you don't include this value, we assume the object type ID is `1`. See [objects in Customer.io Journeys](/journeys/objects-data/objects/types/) for more information.",
                "example": "1"
              },
              "relationshipAttributes": {
                "type": "object",
                "description": "Attributes that you want to set for the relationship between the person and the group.",
                "example": {
                  "role": "primary_contact"
                }
              }
            },
            "additionalProperties": {
              "x-additionalPropertiesName": "Group Traits",
              "example": {
                "name": "Acme",
                "industry": "Technology",
                "road_runner_accidents": "329,",
                "plan": "enterprise,",
                "total_billed": 830
              }
            }
          },
          "userId": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
            "example": "241ma8mf4a"
          },
          "version": {
            "readOnly": true,
            "type": "number",
            "description": "The version of the API that received the event, automatically set by Customer.io."
          }
        },
        "required": [
          "groupId"
        ]
      },
      "group_anonymous": {
        "x-scalar-ignore": true,
        "title": "Anonymous User",
        "properties": {
          "groupId": {
            "type": "string",
            "description": "ID of the group",
            "example": "0e8c78ea9d97a7b8185e8632"
          },
          "anonymousId": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
            "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
          },
          "context": {
            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
            "oneOf": [
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Non-mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "campaign": {
                    "type": "object",
                    "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                    "properties": {
                      "content": {
                        "type": "string"
                      },
                      "medium": {
                        "type": "string",
                        "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                      },
                      "name": {
                        "type": "string",
                        "description": "The campaign name."
                      },
                      "source": {
                        "type": "string",
                        "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                      },
                      "term": {
                        "type": "string",
                        "description": "The keyword term(s) a user came from."
                      }
                    },
                    "additionalProperties": {
                      "type": "string",
                      "x-additionalPropertiesName": "Additional UTM Parameters"
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "page": {
                    "x-scalar-ignore": true,
                    "type": "object",
                    "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                    "properties": {
                      "keywords": {
                        "type": "array",
                        "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                        "items": {
                          "type": "string"
                        }
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the page. Reserved for future use.\n"
                      },
                      "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."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              },
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "app": {
                    "type": "object",
                    "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                    "properties": {
                      "build": {
                        "type": "string",
                        "description": "The specific build number in the app."
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the app."
                      },
                      "namespace": {
                        "type": "string",
                        "description": "The app's namespace."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the app the call originated from."
                      }
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "device": {
                    "type": "object",
                    "description": "Contains information about the device the event originated from.\n",
                    "properties": {
                      "advertisingId": {
                        "type": "string",
                        "description": "The advertising ID is a unique, anonymous ID for advertising."
                      },
                      "id": {
                        "type": "string",
                        "description": "The device ID."
                      },
                      "manufacturer": {
                        "type": "string",
                        "description": "The device manufacturer."
                      },
                      "model": {
                        "type": "string",
                        "description": "The device model."
                      },
                      "name": {
                        "type": "string",
                        "description": "The device name."
                      },
                      "type": {
                        "type": "string",
                        "description": "The device type—android, iOS, etc.",
                        "enum": [
                          "android",
                          "ios"
                        ]
                      },
                      "version": {
                        "type": "string",
                        "description": "The firmware version for the device."
                      }
                    }
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "network": {
                    "type": "object",
                    "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                    "properties": {
                      "bluetooth": {
                        "type": "boolean",
                        "description": "Lets you know if bluetooth is enabled on a device."
                      },
                      "carrier": {
                        "type": "string",
                        "description": "The cellular carrier the phone uses."
                      },
                      "cellular": {
                        "type": "boolean",
                        "description": "Indicates whether the device's cellular connection is enabled or not."
                      },
                      "wifi": {
                        "type": "boolean",
                        "description": "Indicates whether a device's wifi connection is enabled or not."
                      }
                    }
                  },
                  "os": {
                    "type": "object",
                    "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The operating system running on the device."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the OS running on the device."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              }
            ]
          },
          "integrations": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
            "additionalProperties": {
              "type": "boolean",
              "x-additionalPropertiesName": "Enabled/Disabled integrations"
            },
            "example": {
              "All": true,
              "Salesforce": false
            }
          },
          "messageId": {
            "type": "string",
            "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
          },
          "originalTimestamp": {
            "type": "string",
            "format": "date-time",
            "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
          },
          "receivedAt": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
          },
          "sentAt": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
          },
          "traits": {
            "type": "object",
            "description": "Additional information about the group.",
            "properties": {
              "objectTypeId": {
                "x-scalar-ignore": true,
                "type": "string",
                "description": "If you use Customer.io Journeys as a destination, this value is the type of group/object your group belongs to; object type IDs are stringified integers. If you don't include this value, we assume the object type ID is `1`. See [objects in Customer.io Journeys](/journeys/objects-data/objects/types/) for more information.",
                "example": "1"
              },
              "relationshipAttributes": {
                "type": "object",
                "description": "Attributes that you want to set for the relationship between the person and the group.",
                "example": {
                  "role": "primary_contact"
                }
              }
            },
            "additionalProperties": {
              "x-additionalPropertiesName": "Group Traits",
              "description": "Attributes that you want to associate with the group.",
              "example": {
                "name": "Acme",
                "industry": "Technology",
                "road_runner_accidents": "329,",
                "plan": "enterprise,",
                "total_billed": 830
              }
            }
          },
          "version": {
            "readOnly": true,
            "type": "number",
            "description": "The version of the API that received the event, automatically set by Customer.io."
          }
        },
        "required": [
          "groupId"
        ]
      },
      "userId": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
        "example": "241ma8mf4a"
      },
      "anonymousId": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
        "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
      },
      "all_common_fields": {
        "x-scalar-ignore": true,
        "properties": {
          "context": {
            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
            "oneOf": [
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Non-mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "campaign": {
                    "type": "object",
                    "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                    "properties": {
                      "content": {
                        "type": "string"
                      },
                      "medium": {
                        "type": "string",
                        "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                      },
                      "name": {
                        "type": "string",
                        "description": "The campaign name."
                      },
                      "source": {
                        "type": "string",
                        "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                      },
                      "term": {
                        "type": "string",
                        "description": "The keyword term(s) a user came from."
                      }
                    },
                    "additionalProperties": {
                      "type": "string",
                      "x-additionalPropertiesName": "Additional UTM Parameters"
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "page": {
                    "x-scalar-ignore": true,
                    "type": "object",
                    "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                    "properties": {
                      "keywords": {
                        "type": "array",
                        "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                        "items": {
                          "type": "string"
                        }
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the page. Reserved for future use.\n"
                      },
                      "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."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              },
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "app": {
                    "type": "object",
                    "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                    "properties": {
                      "build": {
                        "type": "string",
                        "description": "The specific build number in the app."
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the app."
                      },
                      "namespace": {
                        "type": "string",
                        "description": "The app's namespace."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the app the call originated from."
                      }
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "device": {
                    "type": "object",
                    "description": "Contains information about the device the event originated from.\n",
                    "properties": {
                      "advertisingId": {
                        "type": "string",
                        "description": "The advertising ID is a unique, anonymous ID for advertising."
                      },
                      "id": {
                        "type": "string",
                        "description": "The device ID."
                      },
                      "manufacturer": {
                        "type": "string",
                        "description": "The device manufacturer."
                      },
                      "model": {
                        "type": "string",
                        "description": "The device model."
                      },
                      "name": {
                        "type": "string",
                        "description": "The device name."
                      },
                      "type": {
                        "type": "string",
                        "description": "The device type—android, iOS, etc.",
                        "enum": [
                          "android",
                          "ios"
                        ]
                      },
                      "version": {
                        "type": "string",
                        "description": "The firmware version for the device."
                      }
                    }
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "network": {
                    "type": "object",
                    "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                    "properties": {
                      "bluetooth": {
                        "type": "boolean",
                        "description": "Lets you know if bluetooth is enabled on a device."
                      },
                      "carrier": {
                        "type": "string",
                        "description": "The cellular carrier the phone uses."
                      },
                      "cellular": {
                        "type": "boolean",
                        "description": "Indicates whether the device's cellular connection is enabled or not."
                      },
                      "wifi": {
                        "type": "boolean",
                        "description": "Indicates whether a device's wifi connection is enabled or not."
                      }
                    }
                  },
                  "os": {
                    "type": "object",
                    "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The operating system running on the device."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the OS running on the device."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              }
            ]
          },
          "integrations": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
            "additionalProperties": {
              "type": "boolean",
              "x-additionalPropertiesName": "Enabled/Disabled integrations"
            },
            "example": {
              "All": true,
              "Salesforce": false
            }
          },
          "messageId": {
            "type": "string",
            "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
          },
          "originalTimestamp": {
            "type": "string",
            "format": "date-time",
            "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
          },
          "receivedAt": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
          },
          "sentAt": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
          },
          "version": {
            "readOnly": true,
            "type": "number",
            "description": "The version of the API that received the event, automatically set by Customer.io."
          }
        }
      },
      "page_common_fields": {
        "x-scalar-ignore": true,
        "properties": {
          "context": {
            "x-scalar-ignore": true,
            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
            "title": "Non-mobile",
            "properties": {
              "active": {
                "type": "boolean",
                "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
              },
              "campaign": {
                "type": "object",
                "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                "properties": {
                  "content": {
                    "type": "string"
                  },
                  "medium": {
                    "type": "string",
                    "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                  },
                  "name": {
                    "type": "string",
                    "description": "The campaign name."
                  },
                  "source": {
                    "type": "string",
                    "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                  },
                  "term": {
                    "type": "string",
                    "description": "The keyword term(s) a user came from."
                  }
                },
                "additionalProperties": {
                  "type": "string",
                  "x-additionalPropertiesName": "Additional UTM Parameters"
                }
              },
              "channel": {
                "type": "string",
                "enum": [
                  "browser",
                  "server",
                  "mobile"
                ],
                "description": "The channel the event originated from."
              },
              "ip": {
                "type": "string",
                "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
              },
              "locale": {
                "type": "string",
                "description": "The locale string for the current user, e.g. `en-US`."
              },
              "page": {
                "x-scalar-ignore": true,
                "type": "object",
                "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                "properties": {
                  "keywords": {
                    "type": "array",
                    "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "name": {
                    "type": "string",
                    "description": "The name of the page. Reserved for future use.\n"
                  },
                  "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."
                  }
                }
              },
              "userAgent": {
                "type": "string",
                "description": "The user agent of the device making the request"
              }
            }
          },
          "integrations": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
            "additionalProperties": {
              "type": "boolean",
              "x-additionalPropertiesName": "Enabled/Disabled integrations"
            },
            "example": {
              "All": true,
              "Salesforce": false
            }
          },
          "messageId": {
            "type": "string",
            "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
          },
          "originalTimestamp": {
            "type": "string",
            "format": "date-time",
            "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
          },
          "receivedAt": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
          },
          "sentAt": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
          },
          "version": {
            "readOnly": true,
            "type": "number",
            "description": "The version of the API that received the event, automatically set by Customer.io."
          }
        }
      },
      "mobile_common_fields": {
        "x-scalar-ignore": true,
        "properties": {
          "context": {
            "x-scalar-ignore": true,
            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
            "title": "Mobile",
            "properties": {
              "active": {
                "type": "boolean",
                "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
              },
              "app": {
                "type": "object",
                "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                "properties": {
                  "build": {
                    "type": "string",
                    "description": "The specific build number in the app."
                  },
                  "name": {
                    "type": "string",
                    "description": "The name of the app."
                  },
                  "namespace": {
                    "type": "string",
                    "description": "The app's namespace."
                  },
                  "version": {
                    "type": "string",
                    "description": "The version of the app the call originated from."
                  }
                }
              },
              "channel": {
                "type": "string",
                "enum": [
                  "browser",
                  "server",
                  "mobile"
                ],
                "description": "The channel the event originated from."
              },
              "device": {
                "type": "object",
                "description": "Contains information about the device the event originated from.\n",
                "properties": {
                  "advertisingId": {
                    "type": "string",
                    "description": "The advertising ID is a unique, anonymous ID for advertising."
                  },
                  "id": {
                    "type": "string",
                    "description": "The device ID."
                  },
                  "manufacturer": {
                    "type": "string",
                    "description": "The device manufacturer."
                  },
                  "model": {
                    "type": "string",
                    "description": "The device model."
                  },
                  "name": {
                    "type": "string",
                    "description": "The device name."
                  },
                  "type": {
                    "type": "string",
                    "description": "The device type—android, iOS, etc.",
                    "enum": [
                      "android",
                      "ios"
                    ]
                  },
                  "version": {
                    "type": "string",
                    "description": "The firmware version for the device."
                  }
                }
              },
              "ip": {
                "type": "string",
                "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
              },
              "locale": {
                "type": "string",
                "description": "The locale string for the current user, e.g. `en-US`."
              },
              "network": {
                "type": "object",
                "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                "properties": {
                  "bluetooth": {
                    "type": "boolean",
                    "description": "Lets you know if bluetooth is enabled on a device."
                  },
                  "carrier": {
                    "type": "string",
                    "description": "The cellular carrier the phone uses."
                  },
                  "cellular": {
                    "type": "boolean",
                    "description": "Indicates whether the device's cellular connection is enabled or not."
                  },
                  "wifi": {
                    "type": "boolean",
                    "description": "Indicates whether a device's wifi connection is enabled or not."
                  }
                }
              },
              "os": {
                "type": "object",
                "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "The operating system running on the device."
                  },
                  "version": {
                    "type": "string",
                    "description": "The version of the OS running on the device."
                  }
                }
              },
              "userAgent": {
                "type": "string",
                "description": "The user agent of the device making the request"
              }
            }
          },
          "integrations": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
            "additionalProperties": {
              "type": "boolean",
              "x-additionalPropertiesName": "Enabled/Disabled integrations"
            },
            "example": {
              "All": true,
              "Salesforce": false
            }
          },
          "messageId": {
            "type": "string",
            "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
          },
          "originalTimestamp": {
            "type": "string",
            "format": "date-time",
            "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
          },
          "receivedAt": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
          },
          "sentAt": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
          },
          "version": {
            "readOnly": true,
            "type": "number",
            "description": "The version of the API that received the event, automatically set by Customer.io."
          }
        }
      },
      "context": {
        "x-scalar-ignore": true,
        "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
        "oneOf": [
          {
            "x-scalar-ignore": true,
            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
            "title": "Non-mobile",
            "properties": {
              "active": {
                "type": "boolean",
                "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
              },
              "campaign": {
                "type": "object",
                "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                "properties": {
                  "content": {
                    "type": "string"
                  },
                  "medium": {
                    "type": "string",
                    "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                  },
                  "name": {
                    "type": "string",
                    "description": "The campaign name."
                  },
                  "source": {
                    "type": "string",
                    "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                  },
                  "term": {
                    "type": "string",
                    "description": "The keyword term(s) a user came from."
                  }
                },
                "additionalProperties": {
                  "type": "string",
                  "x-additionalPropertiesName": "Additional UTM Parameters"
                }
              },
              "channel": {
                "type": "string",
                "enum": [
                  "browser",
                  "server",
                  "mobile"
                ],
                "description": "The channel the event originated from."
              },
              "ip": {
                "type": "string",
                "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
              },
              "locale": {
                "type": "string",
                "description": "The locale string for the current user, e.g. `en-US`."
              },
              "page": {
                "x-scalar-ignore": true,
                "type": "object",
                "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                "properties": {
                  "keywords": {
                    "type": "array",
                    "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                    "items": {
                      "type": "string"
                    }
                  },
                  "name": {
                    "type": "string",
                    "description": "The name of the page. Reserved for future use.\n"
                  },
                  "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."
                  }
                }
              },
              "userAgent": {
                "type": "string",
                "description": "The user agent of the device making the request"
              }
            }
          },
          {
            "x-scalar-ignore": true,
            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
            "title": "Mobile",
            "properties": {
              "active": {
                "type": "boolean",
                "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
              },
              "app": {
                "type": "object",
                "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                "properties": {
                  "build": {
                    "type": "string",
                    "description": "The specific build number in the app."
                  },
                  "name": {
                    "type": "string",
                    "description": "The name of the app."
                  },
                  "namespace": {
                    "type": "string",
                    "description": "The app's namespace."
                  },
                  "version": {
                    "type": "string",
                    "description": "The version of the app the call originated from."
                  }
                }
              },
              "channel": {
                "type": "string",
                "enum": [
                  "browser",
                  "server",
                  "mobile"
                ],
                "description": "The channel the event originated from."
              },
              "device": {
                "type": "object",
                "description": "Contains information about the device the event originated from.\n",
                "properties": {
                  "advertisingId": {
                    "type": "string",
                    "description": "The advertising ID is a unique, anonymous ID for advertising."
                  },
                  "id": {
                    "type": "string",
                    "description": "The device ID."
                  },
                  "manufacturer": {
                    "type": "string",
                    "description": "The device manufacturer."
                  },
                  "model": {
                    "type": "string",
                    "description": "The device model."
                  },
                  "name": {
                    "type": "string",
                    "description": "The device name."
                  },
                  "type": {
                    "type": "string",
                    "description": "The device type—android, iOS, etc.",
                    "enum": [
                      "android",
                      "ios"
                    ]
                  },
                  "version": {
                    "type": "string",
                    "description": "The firmware version for the device."
                  }
                }
              },
              "ip": {
                "type": "string",
                "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
              },
              "locale": {
                "type": "string",
                "description": "The locale string for the current user, e.g. `en-US`."
              },
              "network": {
                "type": "object",
                "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                "properties": {
                  "bluetooth": {
                    "type": "boolean",
                    "description": "Lets you know if bluetooth is enabled on a device."
                  },
                  "carrier": {
                    "type": "string",
                    "description": "The cellular carrier the phone uses."
                  },
                  "cellular": {
                    "type": "boolean",
                    "description": "Indicates whether the device's cellular connection is enabled or not."
                  },
                  "wifi": {
                    "type": "boolean",
                    "description": "Indicates whether a device's wifi connection is enabled or not."
                  }
                }
              },
              "os": {
                "type": "object",
                "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "The operating system running on the device."
                  },
                  "version": {
                    "type": "string",
                    "description": "The version of the OS running on the device."
                  }
                }
              },
              "userAgent": {
                "type": "string",
                "description": "The user agent of the device making the request"
              }
            }
          }
        ]
      },
      "integrations": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
        "additionalProperties": {
          "type": "boolean",
          "x-additionalPropertiesName": "Enabled/Disabled integrations"
        },
        "example": {
          "All": true,
          "Salesforce": false
        }
      },
      "common_fields": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "integrations": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
            "additionalProperties": {
              "type": "boolean",
              "x-additionalPropertiesName": "Enabled/Disabled integrations"
            },
            "example": {
              "All": true,
              "Salesforce": false
            }
          },
          "messageId": {
            "type": "string",
            "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
          },
          "originalTimestamp": {
            "type": "string",
            "format": "date-time",
            "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
          },
          "receivedAt": {
            "type": "string",
            "format": "date-time",
            "readOnly": true,
            "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
          },
          "sentAt": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
          },
          "version": {
            "readOnly": true,
            "type": "number",
            "description": "The version of the API that received the event, automatically set by Customer.io."
          }
        }
      },
      "context_common": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "Contains contextual information about the event.",
        "properties": {
          "active": {
            "type": "boolean",
            "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
          },
          "channel": {
            "type": "string",
            "enum": [
              "browser",
              "server",
              "mobile"
            ],
            "description": "The channel the event originated from."
          },
          "ip": {
            "type": "string",
            "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
          },
          "locale": {
            "type": "string",
            "description": "The locale string for the current user, e.g. `en-US`."
          },
          "userAgent": {
            "type": "string",
            "description": "The user agent of the device making the request"
          }
        }
      },
      "context_page": {
        "x-scalar-ignore": true,
        "type": "object",
        "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
        "properties": {
          "keywords": {
            "type": "array",
            "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
            "items": {
              "type": "string"
            }
          },
          "name": {
            "type": "string",
            "description": "The name of the page. Reserved for future use.\n"
          },
          "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."
          }
        }
      },
      "context_non_mobile": {
        "x-scalar-ignore": true,
        "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
        "title": "Non-mobile",
        "properties": {
          "active": {
            "type": "boolean",
            "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
          },
          "campaign": {
            "type": "object",
            "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
            "properties": {
              "content": {
                "type": "string"
              },
              "medium": {
                "type": "string",
                "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
              },
              "name": {
                "type": "string",
                "description": "The campaign name."
              },
              "source": {
                "type": "string",
                "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
              },
              "term": {
                "type": "string",
                "description": "The keyword term(s) a user came from."
              }
            },
            "additionalProperties": {
              "type": "string",
              "x-additionalPropertiesName": "Additional UTM Parameters"
            }
          },
          "channel": {
            "type": "string",
            "enum": [
              "browser",
              "server",
              "mobile"
            ],
            "description": "The channel the event originated from."
          },
          "ip": {
            "type": "string",
            "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
          },
          "locale": {
            "type": "string",
            "description": "The locale string for the current user, e.g. `en-US`."
          },
          "page": {
            "x-scalar-ignore": true,
            "type": "object",
            "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
            "properties": {
              "keywords": {
                "type": "array",
                "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                "items": {
                  "type": "string"
                }
              },
              "name": {
                "type": "string",
                "description": "The name of the page. Reserved for future use.\n"
              },
              "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."
              }
            }
          },
          "userAgent": {
            "type": "string",
            "description": "The user agent of the device making the request"
          }
        }
      },
      "context_mobile": {
        "x-scalar-ignore": true,
        "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
        "title": "Mobile",
        "properties": {
          "active": {
            "type": "boolean",
            "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
          },
          "app": {
            "type": "object",
            "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
            "properties": {
              "build": {
                "type": "string",
                "description": "The specific build number in the app."
              },
              "name": {
                "type": "string",
                "description": "The name of the app."
              },
              "namespace": {
                "type": "string",
                "description": "The app's namespace."
              },
              "version": {
                "type": "string",
                "description": "The version of the app the call originated from."
              }
            }
          },
          "channel": {
            "type": "string",
            "enum": [
              "browser",
              "server",
              "mobile"
            ],
            "description": "The channel the event originated from."
          },
          "device": {
            "type": "object",
            "description": "Contains information about the device the event originated from.\n",
            "properties": {
              "advertisingId": {
                "type": "string",
                "description": "The advertising ID is a unique, anonymous ID for advertising."
              },
              "id": {
                "type": "string",
                "description": "The device ID."
              },
              "manufacturer": {
                "type": "string",
                "description": "The device manufacturer."
              },
              "model": {
                "type": "string",
                "description": "The device model."
              },
              "name": {
                "type": "string",
                "description": "The device name."
              },
              "type": {
                "type": "string",
                "description": "The device type—android, iOS, etc.",
                "enum": [
                  "android",
                  "ios"
                ]
              },
              "version": {
                "type": "string",
                "description": "The firmware version for the device."
              }
            }
          },
          "ip": {
            "type": "string",
            "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
          },
          "locale": {
            "type": "string",
            "description": "The locale string for the current user, e.g. `en-US`."
          },
          "network": {
            "type": "object",
            "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
            "properties": {
              "bluetooth": {
                "type": "boolean",
                "description": "Lets you know if bluetooth is enabled on a device."
              },
              "carrier": {
                "type": "string",
                "description": "The cellular carrier the phone uses."
              },
              "cellular": {
                "type": "boolean",
                "description": "Indicates whether the device's cellular connection is enabled or not."
              },
              "wifi": {
                "type": "boolean",
                "description": "Indicates whether a device's wifi connection is enabled or not."
              }
            }
          },
          "os": {
            "type": "object",
            "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
            "properties": {
              "name": {
                "type": "string",
                "description": "The operating system running on the device."
              },
              "version": {
                "type": "string",
                "description": "The version of the OS running on the device."
              }
            }
          },
          "userAgent": {
            "type": "string",
            "description": "The user agent of the device making the request"
          }
        }
      },
      "batch": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "batch": {
            "type": "array",
            "description": "A group of requests you want to send to Data Pipelines in the call. Each request must include a `type` so we know which endpoint to route it to.",
            "items": {
              "anyOf": [
                {
                  "title": "Identify",
                  "oneOf": [
                    {
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "identify"
                          ],
                          "description": "The kind of request. Required in a `batch` call, where the endpoint can't tell us the type; the single-request endpoints set it for you."
                        },
                        "userId": {
                          "x-scalar-ignore": true,
                          "type": "string",
                          "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
                          "example": "241ma8mf4a"
                        },
                        "anonymousId": {
                          "x-scalar-ignore": true,
                          "type": "string",
                          "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
                          "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
                        },
                        "context": {
                          "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                          "oneOf": [
                            {
                              "x-scalar-ignore": true,
                              "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                              "title": "Non-mobile",
                              "properties": {
                                "active": {
                                  "type": "boolean",
                                  "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                },
                                "campaign": {
                                  "type": "object",
                                  "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                                  "properties": {
                                    "content": {
                                      "type": "string"
                                    },
                                    "medium": {
                                      "type": "string",
                                      "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                                    },
                                    "name": {
                                      "type": "string",
                                      "description": "The campaign name."
                                    },
                                    "source": {
                                      "type": "string",
                                      "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                                    },
                                    "term": {
                                      "type": "string",
                                      "description": "The keyword term(s) a user came from."
                                    }
                                  },
                                  "additionalProperties": {
                                    "type": "string",
                                    "x-additionalPropertiesName": "Additional UTM Parameters"
                                  }
                                },
                                "channel": {
                                  "type": "string",
                                  "enum": [
                                    "browser",
                                    "server",
                                    "mobile"
                                  ],
                                  "description": "The channel the event originated from."
                                },
                                "ip": {
                                  "type": "string",
                                  "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                },
                                "locale": {
                                  "type": "string",
                                  "description": "The locale string for the current user, e.g. `en-US`."
                                },
                                "page": {
                                  "x-scalar-ignore": true,
                                  "type": "object",
                                  "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                                  "properties": {
                                    "keywords": {
                                      "type": "array",
                                      "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "name": {
                                      "type": "string",
                                      "description": "The name of the page. Reserved for future use.\n"
                                    },
                                    "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."
                                    }
                                  }
                                },
                                "userAgent": {
                                  "type": "string",
                                  "description": "The user agent of the device making the request"
                                }
                              }
                            },
                            {
                              "x-scalar-ignore": true,
                              "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                              "title": "Mobile",
                              "properties": {
                                "active": {
                                  "type": "boolean",
                                  "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                },
                                "app": {
                                  "type": "object",
                                  "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                                  "properties": {
                                    "build": {
                                      "type": "string",
                                      "description": "The specific build number in the app."
                                    },
                                    "name": {
                                      "type": "string",
                                      "description": "The name of the app."
                                    },
                                    "namespace": {
                                      "type": "string",
                                      "description": "The app's namespace."
                                    },
                                    "version": {
                                      "type": "string",
                                      "description": "The version of the app the call originated from."
                                    }
                                  }
                                },
                                "channel": {
                                  "type": "string",
                                  "enum": [
                                    "browser",
                                    "server",
                                    "mobile"
                                  ],
                                  "description": "The channel the event originated from."
                                },
                                "device": {
                                  "type": "object",
                                  "description": "Contains information about the device the event originated from.\n",
                                  "properties": {
                                    "advertisingId": {
                                      "type": "string",
                                      "description": "The advertising ID is a unique, anonymous ID for advertising."
                                    },
                                    "id": {
                                      "type": "string",
                                      "description": "The device ID."
                                    },
                                    "manufacturer": {
                                      "type": "string",
                                      "description": "The device manufacturer."
                                    },
                                    "model": {
                                      "type": "string",
                                      "description": "The device model."
                                    },
                                    "name": {
                                      "type": "string",
                                      "description": "The device name."
                                    },
                                    "type": {
                                      "type": "string",
                                      "description": "The device type—android, iOS, etc.",
                                      "enum": [
                                        "android",
                                        "ios"
                                      ]
                                    },
                                    "version": {
                                      "type": "string",
                                      "description": "The firmware version for the device."
                                    }
                                  }
                                },
                                "ip": {
                                  "type": "string",
                                  "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                },
                                "locale": {
                                  "type": "string",
                                  "description": "The locale string for the current user, e.g. `en-US`."
                                },
                                "network": {
                                  "type": "object",
                                  "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                                  "properties": {
                                    "bluetooth": {
                                      "type": "boolean",
                                      "description": "Lets you know if bluetooth is enabled on a device."
                                    },
                                    "carrier": {
                                      "type": "string",
                                      "description": "The cellular carrier the phone uses."
                                    },
                                    "cellular": {
                                      "type": "boolean",
                                      "description": "Indicates whether the device's cellular connection is enabled or not."
                                    },
                                    "wifi": {
                                      "type": "boolean",
                                      "description": "Indicates whether a device's wifi connection is enabled or not."
                                    }
                                  }
                                },
                                "os": {
                                  "type": "object",
                                  "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                                  "properties": {
                                    "name": {
                                      "type": "string",
                                      "description": "The operating system running on the device."
                                    },
                                    "version": {
                                      "type": "string",
                                      "description": "The version of the OS running on the device."
                                    }
                                  }
                                },
                                "userAgent": {
                                  "type": "string",
                                  "description": "The user agent of the device making the request"
                                }
                              }
                            }
                          ]
                        },
                        "integrations": {
                          "x-scalar-ignore": true,
                          "type": "object",
                          "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                          "additionalProperties": {
                            "type": "boolean",
                            "x-additionalPropertiesName": "Enabled/Disabled integrations"
                          },
                          "example": {
                            "All": true,
                            "Salesforce": false
                          }
                        },
                        "messageId": {
                          "type": "string",
                          "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                        },
                        "originalTimestamp": {
                          "type": "string",
                          "format": "date-time",
                          "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                        },
                        "receivedAt": {
                          "type": "string",
                          "format": "date-time",
                          "readOnly": true,
                          "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                        },
                        "sentAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                        },
                        "timestamp": {
                          "type": "string",
                          "format": "date-time",
                          "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                        },
                        "traits": {
                          "type": "object",
                          "description": "Additional properties that you know about a person. We've listed some common/reserved traits below, but you can add any traits that you might use in another system.",
                          "properties": {
                            "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>`. To update channel preferences, use `\"cio_subscription_preferences.channels.<channel>\":<boolean>`.",
                              "type": "object",
                              "properties": {
                                "channels": {
                                  "type": "object",
                                  "description": "Contains channel subscription preferences. Keys are channel type names.",
                                  "additionalProperties": {
                                    "x-additionalPropertiesName": "channel_type",
                                    "description": "Each property is a boolean keyed by the channel type name: `email`, `sms`, `push`, `in_app`, `whatsapp`, `slack`, `line`, or `inbox`. `true` means a person is subscribed to the channel; `false` means they are unsubscribed. Both the topic and channel must be subscribed for a message to send.",
                                    "type": "boolean"
                                  },
                                  "example": {
                                    "email": true,
                                    "push": false
                                  }
                                },
                                "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"
                                  },
                                  "example": {
                                    "topic_1": true,
                                    "topic_2": false
                                  }
                                }
                              }
                            },
                            "createdAt": {
                              "type": "string",
                              "format": "date-time",
                              "description": "We recommend that you pass date-time values as ISO 8601 date-time strings. We convert this value to fit destinations where appropriate."
                            },
                            "email": {
                              "type": "string",
                              "description": "A person's email address. If you pass an email address as the `userId`, Customer.io sets this trait for you."
                            },
                            "unsubscribed": {
                              "description": "If `true`, a person is unsubscribed from emails, SMS, WhatsApp, and push notifications (not in-app messages). Any casing of \"true\" (i.e. TRUE, true, tRUe, etc.), 1, or \"1\" means the person is unsubscribed. If `false`, absent, or any value not considered \"true\", a person is globally subscribed, or if you enabled a subscription center, a person will receive messages based on their `cio_subscription_preferences`.",
                              "type": "boolean"
                            }
                          },
                          "additionalProperties": {
                            "x-additionalPropertiesName": "Additional Traits",
                            "description": "Traits that you want to set on a person. These can take any JSON shape."
                          }
                        },
                        "version": {
                          "readOnly": true,
                          "type": "number",
                          "description": "The version of the API that received the event, automatically set by Customer.io."
                        }
                      },
                      "required": [
                        "userId",
                        "type"
                      ],
                      "title": "Known User"
                    },
                    {
                      "properties": {
                        "anonymousId": {
                          "x-scalar-ignore": true,
                          "type": "string",
                          "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
                          "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "identify"
                          ],
                          "description": "The kind of request. Required in a `batch` call, where the endpoint can't tell us the type; the single-request endpoints set it for you."
                        },
                        "context": {
                          "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                          "oneOf": [
                            {
                              "x-scalar-ignore": true,
                              "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                              "title": "Non-mobile",
                              "properties": {
                                "active": {
                                  "type": "boolean",
                                  "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                },
                                "campaign": {
                                  "type": "object",
                                  "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                                  "properties": {
                                    "content": {
                                      "type": "string"
                                    },
                                    "medium": {
                                      "type": "string",
                                      "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                                    },
                                    "name": {
                                      "type": "string",
                                      "description": "The campaign name."
                                    },
                                    "source": {
                                      "type": "string",
                                      "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                                    },
                                    "term": {
                                      "type": "string",
                                      "description": "The keyword term(s) a user came from."
                                    }
                                  },
                                  "additionalProperties": {
                                    "type": "string",
                                    "x-additionalPropertiesName": "Additional UTM Parameters"
                                  }
                                },
                                "channel": {
                                  "type": "string",
                                  "enum": [
                                    "browser",
                                    "server",
                                    "mobile"
                                  ],
                                  "description": "The channel the event originated from."
                                },
                                "ip": {
                                  "type": "string",
                                  "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                },
                                "locale": {
                                  "type": "string",
                                  "description": "The locale string for the current user, e.g. `en-US`."
                                },
                                "page": {
                                  "x-scalar-ignore": true,
                                  "type": "object",
                                  "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                                  "properties": {
                                    "keywords": {
                                      "type": "array",
                                      "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "name": {
                                      "type": "string",
                                      "description": "The name of the page. Reserved for future use.\n"
                                    },
                                    "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."
                                    }
                                  }
                                },
                                "userAgent": {
                                  "type": "string",
                                  "description": "The user agent of the device making the request"
                                }
                              }
                            },
                            {
                              "x-scalar-ignore": true,
                              "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                              "title": "Mobile",
                              "properties": {
                                "active": {
                                  "type": "boolean",
                                  "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                },
                                "app": {
                                  "type": "object",
                                  "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                                  "properties": {
                                    "build": {
                                      "type": "string",
                                      "description": "The specific build number in the app."
                                    },
                                    "name": {
                                      "type": "string",
                                      "description": "The name of the app."
                                    },
                                    "namespace": {
                                      "type": "string",
                                      "description": "The app's namespace."
                                    },
                                    "version": {
                                      "type": "string",
                                      "description": "The version of the app the call originated from."
                                    }
                                  }
                                },
                                "channel": {
                                  "type": "string",
                                  "enum": [
                                    "browser",
                                    "server",
                                    "mobile"
                                  ],
                                  "description": "The channel the event originated from."
                                },
                                "device": {
                                  "type": "object",
                                  "description": "Contains information about the device the event originated from.\n",
                                  "properties": {
                                    "advertisingId": {
                                      "type": "string",
                                      "description": "The advertising ID is a unique, anonymous ID for advertising."
                                    },
                                    "id": {
                                      "type": "string",
                                      "description": "The device ID."
                                    },
                                    "manufacturer": {
                                      "type": "string",
                                      "description": "The device manufacturer."
                                    },
                                    "model": {
                                      "type": "string",
                                      "description": "The device model."
                                    },
                                    "name": {
                                      "type": "string",
                                      "description": "The device name."
                                    },
                                    "type": {
                                      "type": "string",
                                      "description": "The device type—android, iOS, etc.",
                                      "enum": [
                                        "android",
                                        "ios"
                                      ]
                                    },
                                    "version": {
                                      "type": "string",
                                      "description": "The firmware version for the device."
                                    }
                                  }
                                },
                                "ip": {
                                  "type": "string",
                                  "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                },
                                "locale": {
                                  "type": "string",
                                  "description": "The locale string for the current user, e.g. `en-US`."
                                },
                                "network": {
                                  "type": "object",
                                  "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                                  "properties": {
                                    "bluetooth": {
                                      "type": "boolean",
                                      "description": "Lets you know if bluetooth is enabled on a device."
                                    },
                                    "carrier": {
                                      "type": "string",
                                      "description": "The cellular carrier the phone uses."
                                    },
                                    "cellular": {
                                      "type": "boolean",
                                      "description": "Indicates whether the device's cellular connection is enabled or not."
                                    },
                                    "wifi": {
                                      "type": "boolean",
                                      "description": "Indicates whether a device's wifi connection is enabled or not."
                                    }
                                  }
                                },
                                "os": {
                                  "type": "object",
                                  "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                                  "properties": {
                                    "name": {
                                      "type": "string",
                                      "description": "The operating system running on the device."
                                    },
                                    "version": {
                                      "type": "string",
                                      "description": "The version of the OS running on the device."
                                    }
                                  }
                                },
                                "userAgent": {
                                  "type": "string",
                                  "description": "The user agent of the device making the request"
                                }
                              }
                            }
                          ]
                        },
                        "integrations": {
                          "x-scalar-ignore": true,
                          "type": "object",
                          "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                          "additionalProperties": {
                            "type": "boolean",
                            "x-additionalPropertiesName": "Enabled/Disabled integrations"
                          },
                          "example": {
                            "All": true,
                            "Salesforce": false
                          }
                        },
                        "messageId": {
                          "type": "string",
                          "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                        },
                        "originalTimestamp": {
                          "type": "string",
                          "format": "date-time",
                          "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                        },
                        "receivedAt": {
                          "type": "string",
                          "format": "date-time",
                          "readOnly": true,
                          "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                        },
                        "sentAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                        },
                        "timestamp": {
                          "type": "string",
                          "format": "date-time",
                          "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                        },
                        "traits": {
                          "type": "object",
                          "description": "Traits you know about the person. Customer.io ignores anonymous `identify` calls, but our JavaScript client stores these traits and attaches them when you later identify the person with a `userId`.",
                          "additionalProperties": {
                            "x-additionalPropertiesName": "Traits",
                            "description": "Traits that you want to set on a person. These can take any JSON shape."
                          }
                        },
                        "version": {
                          "readOnly": true,
                          "type": "number",
                          "description": "The version of the API that received the event, automatically set by Customer.io."
                        }
                      },
                      "required": [
                        "anonymousId",
                        "type"
                      ],
                      "title": "Anonymous User"
                    }
                  ]
                },
                {
                  "title": "Track",
                  "oneOf": [
                    {
                      "properties": {
                        "event": {
                          "type": "string",
                          "description": "The name of the event",
                          "example": "new_account"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "track"
                          ],
                          "description": "The kind of request. Required in a `batch` call, where the endpoint can't tell us the type; the single-request endpoints set it for you."
                        },
                        "userId": {
                          "x-scalar-ignore": true,
                          "type": "string",
                          "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
                          "example": "241ma8mf4a"
                        },
                        "context": {
                          "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                          "oneOf": [
                            {
                              "x-scalar-ignore": true,
                              "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                              "title": "Non-mobile",
                              "properties": {
                                "active": {
                                  "type": "boolean",
                                  "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                },
                                "campaign": {
                                  "type": "object",
                                  "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                                  "properties": {
                                    "content": {
                                      "type": "string"
                                    },
                                    "medium": {
                                      "type": "string",
                                      "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                                    },
                                    "name": {
                                      "type": "string",
                                      "description": "The campaign name."
                                    },
                                    "source": {
                                      "type": "string",
                                      "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                                    },
                                    "term": {
                                      "type": "string",
                                      "description": "The keyword term(s) a user came from."
                                    }
                                  },
                                  "additionalProperties": {
                                    "type": "string",
                                    "x-additionalPropertiesName": "Additional UTM Parameters"
                                  }
                                },
                                "channel": {
                                  "type": "string",
                                  "enum": [
                                    "browser",
                                    "server",
                                    "mobile"
                                  ],
                                  "description": "The channel the event originated from."
                                },
                                "ip": {
                                  "type": "string",
                                  "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                },
                                "locale": {
                                  "type": "string",
                                  "description": "The locale string for the current user, e.g. `en-US`."
                                },
                                "page": {
                                  "x-scalar-ignore": true,
                                  "type": "object",
                                  "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                                  "properties": {
                                    "keywords": {
                                      "type": "array",
                                      "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "name": {
                                      "type": "string",
                                      "description": "The name of the page. Reserved for future use.\n"
                                    },
                                    "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."
                                    }
                                  }
                                },
                                "userAgent": {
                                  "type": "string",
                                  "description": "The user agent of the device making the request"
                                }
                              }
                            },
                            {
                              "x-scalar-ignore": true,
                              "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                              "title": "Mobile",
                              "properties": {
                                "active": {
                                  "type": "boolean",
                                  "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                },
                                "app": {
                                  "type": "object",
                                  "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                                  "properties": {
                                    "build": {
                                      "type": "string",
                                      "description": "The specific build number in the app."
                                    },
                                    "name": {
                                      "type": "string",
                                      "description": "The name of the app."
                                    },
                                    "namespace": {
                                      "type": "string",
                                      "description": "The app's namespace."
                                    },
                                    "version": {
                                      "type": "string",
                                      "description": "The version of the app the call originated from."
                                    }
                                  }
                                },
                                "channel": {
                                  "type": "string",
                                  "enum": [
                                    "browser",
                                    "server",
                                    "mobile"
                                  ],
                                  "description": "The channel the event originated from."
                                },
                                "device": {
                                  "type": "object",
                                  "description": "Contains information about the device the event originated from.\n",
                                  "properties": {
                                    "advertisingId": {
                                      "type": "string",
                                      "description": "The advertising ID is a unique, anonymous ID for advertising."
                                    },
                                    "id": {
                                      "type": "string",
                                      "description": "The device ID."
                                    },
                                    "manufacturer": {
                                      "type": "string",
                                      "description": "The device manufacturer."
                                    },
                                    "model": {
                                      "type": "string",
                                      "description": "The device model."
                                    },
                                    "name": {
                                      "type": "string",
                                      "description": "The device name."
                                    },
                                    "type": {
                                      "type": "string",
                                      "description": "The device type—android, iOS, etc.",
                                      "enum": [
                                        "android",
                                        "ios"
                                      ]
                                    },
                                    "version": {
                                      "type": "string",
                                      "description": "The firmware version for the device."
                                    }
                                  }
                                },
                                "ip": {
                                  "type": "string",
                                  "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                },
                                "locale": {
                                  "type": "string",
                                  "description": "The locale string for the current user, e.g. `en-US`."
                                },
                                "network": {
                                  "type": "object",
                                  "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                                  "properties": {
                                    "bluetooth": {
                                      "type": "boolean",
                                      "description": "Lets you know if bluetooth is enabled on a device."
                                    },
                                    "carrier": {
                                      "type": "string",
                                      "description": "The cellular carrier the phone uses."
                                    },
                                    "cellular": {
                                      "type": "boolean",
                                      "description": "Indicates whether the device's cellular connection is enabled or not."
                                    },
                                    "wifi": {
                                      "type": "boolean",
                                      "description": "Indicates whether a device's wifi connection is enabled or not."
                                    }
                                  }
                                },
                                "os": {
                                  "type": "object",
                                  "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                                  "properties": {
                                    "name": {
                                      "type": "string",
                                      "description": "The operating system running on the device."
                                    },
                                    "version": {
                                      "type": "string",
                                      "description": "The version of the OS running on the device."
                                    }
                                  }
                                },
                                "userAgent": {
                                  "type": "string",
                                  "description": "The user agent of the device making the request"
                                }
                              }
                            }
                          ]
                        },
                        "integrations": {
                          "x-scalar-ignore": true,
                          "type": "object",
                          "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                          "additionalProperties": {
                            "type": "boolean",
                            "x-additionalPropertiesName": "Enabled/Disabled integrations"
                          },
                          "example": {
                            "All": true,
                            "Salesforce": false
                          }
                        },
                        "messageId": {
                          "type": "string",
                          "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                        },
                        "originalTimestamp": {
                          "type": "string",
                          "format": "date-time",
                          "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                        },
                        "properties": {
                          "additionalProperties": {
                            "x-additionalPropertiesName": "Event Properties",
                            "description": "Additional properties that you want to capture in the event. These can take any JSON shape."
                          },
                          "description": "Additional properties for your event.",
                          "type": "object"
                        },
                        "receivedAt": {
                          "type": "string",
                          "format": "date-time",
                          "readOnly": true,
                          "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                        },
                        "sentAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                        },
                        "timestamp": {
                          "type": "string",
                          "format": "date-time",
                          "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                        },
                        "version": {
                          "readOnly": true,
                          "type": "number",
                          "description": "The version of the API that received the event, automatically set by Customer.io."
                        }
                      },
                      "required": [
                        "userId",
                        "event",
                        "type"
                      ],
                      "title": "Known User"
                    },
                    {
                      "properties": {
                        "anonymousId": {
                          "x-scalar-ignore": true,
                          "type": "string",
                          "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
                          "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
                        },
                        "event": {
                          "type": "string",
                          "description": "The name of the event",
                          "example": "new_account"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "track"
                          ],
                          "description": "The kind of request. Required in a `batch` call, where the endpoint can't tell us the type; the single-request endpoints set it for you."
                        },
                        "context": {
                          "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                          "oneOf": [
                            {
                              "x-scalar-ignore": true,
                              "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                              "title": "Non-mobile",
                              "properties": {
                                "active": {
                                  "type": "boolean",
                                  "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                },
                                "campaign": {
                                  "type": "object",
                                  "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                                  "properties": {
                                    "content": {
                                      "type": "string"
                                    },
                                    "medium": {
                                      "type": "string",
                                      "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                                    },
                                    "name": {
                                      "type": "string",
                                      "description": "The campaign name."
                                    },
                                    "source": {
                                      "type": "string",
                                      "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                                    },
                                    "term": {
                                      "type": "string",
                                      "description": "The keyword term(s) a user came from."
                                    }
                                  },
                                  "additionalProperties": {
                                    "type": "string",
                                    "x-additionalPropertiesName": "Additional UTM Parameters"
                                  }
                                },
                                "channel": {
                                  "type": "string",
                                  "enum": [
                                    "browser",
                                    "server",
                                    "mobile"
                                  ],
                                  "description": "The channel the event originated from."
                                },
                                "ip": {
                                  "type": "string",
                                  "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                },
                                "locale": {
                                  "type": "string",
                                  "description": "The locale string for the current user, e.g. `en-US`."
                                },
                                "page": {
                                  "x-scalar-ignore": true,
                                  "type": "object",
                                  "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                                  "properties": {
                                    "keywords": {
                                      "type": "array",
                                      "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "name": {
                                      "type": "string",
                                      "description": "The name of the page. Reserved for future use.\n"
                                    },
                                    "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."
                                    }
                                  }
                                },
                                "userAgent": {
                                  "type": "string",
                                  "description": "The user agent of the device making the request"
                                }
                              }
                            },
                            {
                              "x-scalar-ignore": true,
                              "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                              "title": "Mobile",
                              "properties": {
                                "active": {
                                  "type": "boolean",
                                  "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                },
                                "app": {
                                  "type": "object",
                                  "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                                  "properties": {
                                    "build": {
                                      "type": "string",
                                      "description": "The specific build number in the app."
                                    },
                                    "name": {
                                      "type": "string",
                                      "description": "The name of the app."
                                    },
                                    "namespace": {
                                      "type": "string",
                                      "description": "The app's namespace."
                                    },
                                    "version": {
                                      "type": "string",
                                      "description": "The version of the app the call originated from."
                                    }
                                  }
                                },
                                "channel": {
                                  "type": "string",
                                  "enum": [
                                    "browser",
                                    "server",
                                    "mobile"
                                  ],
                                  "description": "The channel the event originated from."
                                },
                                "device": {
                                  "type": "object",
                                  "description": "Contains information about the device the event originated from.\n",
                                  "properties": {
                                    "advertisingId": {
                                      "type": "string",
                                      "description": "The advertising ID is a unique, anonymous ID for advertising."
                                    },
                                    "id": {
                                      "type": "string",
                                      "description": "The device ID."
                                    },
                                    "manufacturer": {
                                      "type": "string",
                                      "description": "The device manufacturer."
                                    },
                                    "model": {
                                      "type": "string",
                                      "description": "The device model."
                                    },
                                    "name": {
                                      "type": "string",
                                      "description": "The device name."
                                    },
                                    "type": {
                                      "type": "string",
                                      "description": "The device type—android, iOS, etc.",
                                      "enum": [
                                        "android",
                                        "ios"
                                      ]
                                    },
                                    "version": {
                                      "type": "string",
                                      "description": "The firmware version for the device."
                                    }
                                  }
                                },
                                "ip": {
                                  "type": "string",
                                  "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                },
                                "locale": {
                                  "type": "string",
                                  "description": "The locale string for the current user, e.g. `en-US`."
                                },
                                "network": {
                                  "type": "object",
                                  "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                                  "properties": {
                                    "bluetooth": {
                                      "type": "boolean",
                                      "description": "Lets you know if bluetooth is enabled on a device."
                                    },
                                    "carrier": {
                                      "type": "string",
                                      "description": "The cellular carrier the phone uses."
                                    },
                                    "cellular": {
                                      "type": "boolean",
                                      "description": "Indicates whether the device's cellular connection is enabled or not."
                                    },
                                    "wifi": {
                                      "type": "boolean",
                                      "description": "Indicates whether a device's wifi connection is enabled or not."
                                    }
                                  }
                                },
                                "os": {
                                  "type": "object",
                                  "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                                  "properties": {
                                    "name": {
                                      "type": "string",
                                      "description": "The operating system running on the device."
                                    },
                                    "version": {
                                      "type": "string",
                                      "description": "The version of the OS running on the device."
                                    }
                                  }
                                },
                                "userAgent": {
                                  "type": "string",
                                  "description": "The user agent of the device making the request"
                                }
                              }
                            }
                          ]
                        },
                        "integrations": {
                          "x-scalar-ignore": true,
                          "type": "object",
                          "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                          "additionalProperties": {
                            "type": "boolean",
                            "x-additionalPropertiesName": "Enabled/Disabled integrations"
                          },
                          "example": {
                            "All": true,
                            "Salesforce": false
                          }
                        },
                        "messageId": {
                          "type": "string",
                          "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                        },
                        "originalTimestamp": {
                          "type": "string",
                          "format": "date-time",
                          "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                        },
                        "properties": {
                          "additionalProperties": {
                            "x-additionalPropertiesName": "Event Properties",
                            "description": "Additional properties that you want to capture in the event. These can take any JSON shape."
                          },
                          "description": "Additional properties for your event.",
                          "type": "object"
                        },
                        "receivedAt": {
                          "type": "string",
                          "format": "date-time",
                          "readOnly": true,
                          "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                        },
                        "sentAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                        },
                        "timestamp": {
                          "type": "string",
                          "format": "date-time",
                          "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                        },
                        "version": {
                          "readOnly": true,
                          "type": "number",
                          "description": "The version of the API that received the event, automatically set by Customer.io."
                        }
                      },
                      "required": [
                        "event",
                        "anonymousId",
                        "type"
                      ],
                      "title": "Anonymous User"
                    },
                    {
                      "properties": {
                        "event": {
                          "type": "string",
                          "description": "The name of the event",
                          "example": "new_account"
                        },
                        "groupId": {
                          "type": "string",
                          "description": "The ID of the group you want to attribute an event to. Note that not all destinations allow groups (or their downstream equivalent) to perform groups."
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "track"
                          ],
                          "description": "The kind of request. Required in a `batch` call, where the endpoint can't tell us the type; the single-request endpoints set it for you."
                        },
                        "context": {
                          "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                          "oneOf": [
                            {
                              "x-scalar-ignore": true,
                              "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                              "title": "Non-mobile",
                              "properties": {
                                "active": {
                                  "type": "boolean",
                                  "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                },
                                "campaign": {
                                  "type": "object",
                                  "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                                  "properties": {
                                    "content": {
                                      "type": "string"
                                    },
                                    "medium": {
                                      "type": "string",
                                      "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                                    },
                                    "name": {
                                      "type": "string",
                                      "description": "The campaign name."
                                    },
                                    "source": {
                                      "type": "string",
                                      "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                                    },
                                    "term": {
                                      "type": "string",
                                      "description": "The keyword term(s) a user came from."
                                    }
                                  },
                                  "additionalProperties": {
                                    "type": "string",
                                    "x-additionalPropertiesName": "Additional UTM Parameters"
                                  }
                                },
                                "channel": {
                                  "type": "string",
                                  "enum": [
                                    "browser",
                                    "server",
                                    "mobile"
                                  ],
                                  "description": "The channel the event originated from."
                                },
                                "ip": {
                                  "type": "string",
                                  "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                },
                                "locale": {
                                  "type": "string",
                                  "description": "The locale string for the current user, e.g. `en-US`."
                                },
                                "page": {
                                  "x-scalar-ignore": true,
                                  "type": "object",
                                  "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                                  "properties": {
                                    "keywords": {
                                      "type": "array",
                                      "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "name": {
                                      "type": "string",
                                      "description": "The name of the page. Reserved for future use.\n"
                                    },
                                    "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."
                                    }
                                  }
                                },
                                "userAgent": {
                                  "type": "string",
                                  "description": "The user agent of the device making the request"
                                }
                              }
                            },
                            {
                              "x-scalar-ignore": true,
                              "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                              "title": "Mobile",
                              "properties": {
                                "active": {
                                  "type": "boolean",
                                  "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                },
                                "app": {
                                  "type": "object",
                                  "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                                  "properties": {
                                    "build": {
                                      "type": "string",
                                      "description": "The specific build number in the app."
                                    },
                                    "name": {
                                      "type": "string",
                                      "description": "The name of the app."
                                    },
                                    "namespace": {
                                      "type": "string",
                                      "description": "The app's namespace."
                                    },
                                    "version": {
                                      "type": "string",
                                      "description": "The version of the app the call originated from."
                                    }
                                  }
                                },
                                "channel": {
                                  "type": "string",
                                  "enum": [
                                    "browser",
                                    "server",
                                    "mobile"
                                  ],
                                  "description": "The channel the event originated from."
                                },
                                "device": {
                                  "type": "object",
                                  "description": "Contains information about the device the event originated from.\n",
                                  "properties": {
                                    "advertisingId": {
                                      "type": "string",
                                      "description": "The advertising ID is a unique, anonymous ID for advertising."
                                    },
                                    "id": {
                                      "type": "string",
                                      "description": "The device ID."
                                    },
                                    "manufacturer": {
                                      "type": "string",
                                      "description": "The device manufacturer."
                                    },
                                    "model": {
                                      "type": "string",
                                      "description": "The device model."
                                    },
                                    "name": {
                                      "type": "string",
                                      "description": "The device name."
                                    },
                                    "type": {
                                      "type": "string",
                                      "description": "The device type—android, iOS, etc.",
                                      "enum": [
                                        "android",
                                        "ios"
                                      ]
                                    },
                                    "version": {
                                      "type": "string",
                                      "description": "The firmware version for the device."
                                    }
                                  }
                                },
                                "ip": {
                                  "type": "string",
                                  "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                },
                                "locale": {
                                  "type": "string",
                                  "description": "The locale string for the current user, e.g. `en-US`."
                                },
                                "network": {
                                  "type": "object",
                                  "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                                  "properties": {
                                    "bluetooth": {
                                      "type": "boolean",
                                      "description": "Lets you know if bluetooth is enabled on a device."
                                    },
                                    "carrier": {
                                      "type": "string",
                                      "description": "The cellular carrier the phone uses."
                                    },
                                    "cellular": {
                                      "type": "boolean",
                                      "description": "Indicates whether the device's cellular connection is enabled or not."
                                    },
                                    "wifi": {
                                      "type": "boolean",
                                      "description": "Indicates whether a device's wifi connection is enabled or not."
                                    }
                                  }
                                },
                                "os": {
                                  "type": "object",
                                  "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                                  "properties": {
                                    "name": {
                                      "type": "string",
                                      "description": "The operating system running on the device."
                                    },
                                    "version": {
                                      "type": "string",
                                      "description": "The version of the OS running on the device."
                                    }
                                  }
                                },
                                "userAgent": {
                                  "type": "string",
                                  "description": "The user agent of the device making the request"
                                }
                              }
                            }
                          ]
                        },
                        "integrations": {
                          "x-scalar-ignore": true,
                          "type": "object",
                          "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                          "additionalProperties": {
                            "type": "boolean",
                            "x-additionalPropertiesName": "Enabled/Disabled integrations"
                          },
                          "example": {
                            "All": true,
                            "Salesforce": false
                          }
                        },
                        "messageId": {
                          "type": "string",
                          "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                        },
                        "originalTimestamp": {
                          "type": "string",
                          "format": "date-time",
                          "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                        },
                        "properties": {
                          "additionalProperties": {
                            "x-additionalPropertiesName": "Event Properties",
                            "description": "Additional properties that you want to capture in the event. These can take any JSON shape."
                          },
                          "description": "Additional properties for your event.",
                          "type": "object"
                        },
                        "receivedAt": {
                          "type": "string",
                          "format": "date-time",
                          "readOnly": true,
                          "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                        },
                        "sentAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                        },
                        "timestamp": {
                          "type": "string",
                          "format": "date-time",
                          "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                        },
                        "version": {
                          "readOnly": true,
                          "type": "number",
                          "description": "The version of the API that received the event, automatically set by Customer.io."
                        }
                      },
                      "required": [
                        "event",
                        "groupId",
                        "type"
                      ],
                      "title": "Group"
                    }
                  ]
                },
                {
                  "title": "Page",
                  "oneOf": [
                    {
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "page"
                          ],
                          "description": "The kind of request. Required in a `batch` call, where the endpoint can't tell us the type; the single-request endpoints set it for you."
                        },
                        "userId": {
                          "x-scalar-ignore": true,
                          "type": "string",
                          "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
                          "example": "241ma8mf4a"
                        },
                        "context": {
                          "x-scalar-ignore": true,
                          "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                          "title": "Non-mobile",
                          "properties": {
                            "active": {
                              "type": "boolean",
                              "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                            },
                            "campaign": {
                              "type": "object",
                              "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                              "properties": {
                                "content": {
                                  "type": "string"
                                },
                                "medium": {
                                  "type": "string",
                                  "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                                },
                                "name": {
                                  "type": "string",
                                  "description": "The campaign name."
                                },
                                "source": {
                                  "type": "string",
                                  "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                                },
                                "term": {
                                  "type": "string",
                                  "description": "The keyword term(s) a user came from."
                                }
                              },
                              "additionalProperties": {
                                "type": "string",
                                "x-additionalPropertiesName": "Additional UTM Parameters"
                              }
                            },
                            "channel": {
                              "type": "string",
                              "enum": [
                                "browser",
                                "server",
                                "mobile"
                              ],
                              "description": "The channel the event originated from."
                            },
                            "ip": {
                              "type": "string",
                              "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                            },
                            "locale": {
                              "type": "string",
                              "description": "The locale string for the current user, e.g. `en-US`."
                            },
                            "page": {
                              "x-scalar-ignore": true,
                              "type": "object",
                              "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                              "properties": {
                                "keywords": {
                                  "type": "array",
                                  "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                "name": {
                                  "type": "string",
                                  "description": "The name of the page. Reserved for future use.\n"
                                },
                                "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."
                                }
                              }
                            },
                            "userAgent": {
                              "type": "string",
                              "description": "The user agent of the device making the request"
                            }
                          }
                        },
                        "integrations": {
                          "x-scalar-ignore": true,
                          "type": "object",
                          "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                          "additionalProperties": {
                            "type": "boolean",
                            "x-additionalPropertiesName": "Enabled/Disabled integrations"
                          },
                          "example": {
                            "All": true,
                            "Salesforce": false
                          }
                        },
                        "messageId": {
                          "type": "string",
                          "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                        },
                        "name": {
                          "type": "string",
                          "description": "The name of the page.",
                          "example": "home"
                        },
                        "originalTimestamp": {
                          "type": "string",
                          "format": "date-time",
                          "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                        },
                        "properties": {
                          "additionalProperties": {
                            "x-additionalPropertiesName": "Page Properties"
                          },
                          "description": "Additional `page` properties. Analytics.js automatically collects `url`, `title`, `referrer`, `path`, and `search` properties. But, if you use our other sources or you write your own integration, you should consider sending these properties yourself. Destination actions that take `page` events often rely on the `url` and `title` properties.",
                          "properties": {
                            "category": {
                              "type": "string",
                              "description": "The category of the page. This might be useful if you have a single page routes or have a flattened URL structure."
                            },
                            "path": {
                              "type": "string",
                              "description": "The path of the page. This defaults to `location.pathname`, but can be overridden.",
                              "example": "/page"
                            },
                            "referrer": {
                              "type": "string",
                              "description": "The referrer of the page, if applicable. This defaults to `document.referrer`, but can be overridden.",
                              "example": "http://www.google.com/search?q=example"
                            },
                            "search": {
                              "type": "string",
                              "description": "The search query in the URL, if present. This defaults to `location.search`, but can be overridden.",
                              "example": "?q=sfgiants"
                            },
                            "title": {
                              "type": "string",
                              "description": "The title of the page. This defaults to `document.title`, but can be overridden.",
                              "example": "Page | Example.com"
                            },
                            "url": {
                              "type": "string",
                              "description": "The URL of the page. This defaults to a canonical url if available, and falls back to `document.location.href`.",
                              "example": "https://www.example.com/page/"
                            }
                          },
                          "type": "object"
                        },
                        "receivedAt": {
                          "type": "string",
                          "format": "date-time",
                          "readOnly": true,
                          "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                        },
                        "sentAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                        },
                        "timestamp": {
                          "type": "string",
                          "format": "date-time",
                          "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                        },
                        "version": {
                          "readOnly": true,
                          "type": "number",
                          "description": "The version of the API that received the event, automatically set by Customer.io."
                        }
                      },
                      "required": [
                        "userId",
                        "type"
                      ],
                      "title": "Known User"
                    },
                    {
                      "properties": {
                        "anonymousId": {
                          "x-scalar-ignore": true,
                          "type": "string",
                          "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
                          "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "page"
                          ],
                          "description": "The kind of request. Required in a `batch` call, where the endpoint can't tell us the type; the single-request endpoints set it for you."
                        },
                        "context": {
                          "x-scalar-ignore": true,
                          "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                          "title": "Non-mobile",
                          "properties": {
                            "active": {
                              "type": "boolean",
                              "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                            },
                            "campaign": {
                              "type": "object",
                              "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                              "properties": {
                                "content": {
                                  "type": "string"
                                },
                                "medium": {
                                  "type": "string",
                                  "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                                },
                                "name": {
                                  "type": "string",
                                  "description": "The campaign name."
                                },
                                "source": {
                                  "type": "string",
                                  "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                                },
                                "term": {
                                  "type": "string",
                                  "description": "The keyword term(s) a user came from."
                                }
                              },
                              "additionalProperties": {
                                "type": "string",
                                "x-additionalPropertiesName": "Additional UTM Parameters"
                              }
                            },
                            "channel": {
                              "type": "string",
                              "enum": [
                                "browser",
                                "server",
                                "mobile"
                              ],
                              "description": "The channel the event originated from."
                            },
                            "ip": {
                              "type": "string",
                              "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                            },
                            "locale": {
                              "type": "string",
                              "description": "The locale string for the current user, e.g. `en-US`."
                            },
                            "page": {
                              "x-scalar-ignore": true,
                              "type": "object",
                              "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                              "properties": {
                                "keywords": {
                                  "type": "array",
                                  "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                "name": {
                                  "type": "string",
                                  "description": "The name of the page. Reserved for future use.\n"
                                },
                                "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."
                                }
                              }
                            },
                            "userAgent": {
                              "type": "string",
                              "description": "The user agent of the device making the request"
                            }
                          }
                        },
                        "integrations": {
                          "x-scalar-ignore": true,
                          "type": "object",
                          "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                          "additionalProperties": {
                            "type": "boolean",
                            "x-additionalPropertiesName": "Enabled/Disabled integrations"
                          },
                          "example": {
                            "All": true,
                            "Salesforce": false
                          }
                        },
                        "messageId": {
                          "type": "string",
                          "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                        },
                        "name": {
                          "type": "string",
                          "description": "The name of the page.",
                          "example": "home"
                        },
                        "originalTimestamp": {
                          "type": "string",
                          "format": "date-time",
                          "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                        },
                        "properties": {
                          "additionalProperties": {
                            "x-additionalPropertiesName": "Page Properties"
                          },
                          "description": "Additional properties for your event.",
                          "properties": {
                            "category": {
                              "type": "string",
                              "description": "The category of the page. This might be useful if you have a single page routes or have a flattened URL structure."
                            },
                            "path": {
                              "type": "string",
                              "description": "The path of the page. This defaults to location.pathname, but can be overridden.",
                              "example": "/page"
                            },
                            "referrer": {
                              "type": "string",
                              "description": "The referrer of the page, if applicable. This defaults to document.referrer, but can be overridden.",
                              "example": "http://www.google.com/search?q=example"
                            },
                            "search": {
                              "type": "string",
                              "description": "The search query in the URL, if present. This defaults to location.search, but can be overridden.",
                              "example": "?q=sfgiants"
                            },
                            "title": {
                              "type": "string",
                              "description": "The title of the page. This defaults to `document.title`, but can be overridden.",
                              "example": "Page | Example.com"
                            },
                            "url": {
                              "type": "string",
                              "description": "The URL of the page."
                            }
                          },
                          "type": "object"
                        },
                        "receivedAt": {
                          "type": "string",
                          "format": "date-time",
                          "readOnly": true,
                          "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                        },
                        "sentAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                        },
                        "timestamp": {
                          "type": "string",
                          "format": "date-time",
                          "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                        },
                        "version": {
                          "readOnly": true,
                          "type": "number",
                          "description": "The version of the API that received the event, automatically set by Customer.io."
                        }
                      },
                      "required": [
                        "anonymousId",
                        "type"
                      ],
                      "title": "Anonymous User"
                    }
                  ]
                },
                {
                  "title": "Screen",
                  "oneOf": [
                    {
                      "properties": {
                        "type": {
                          "type": "string",
                          "enum": [
                            "screen"
                          ],
                          "description": "The kind of request. Required in a `batch` call, where the endpoint can't tell us the type; the single-request endpoints set it for you."
                        },
                        "userId": {
                          "x-scalar-ignore": true,
                          "type": "string",
                          "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
                          "example": "241ma8mf4a"
                        },
                        "context": {
                          "x-scalar-ignore": true,
                          "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                          "title": "Mobile",
                          "properties": {
                            "active": {
                              "type": "boolean",
                              "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                            },
                            "app": {
                              "type": "object",
                              "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                              "properties": {
                                "build": {
                                  "type": "string",
                                  "description": "The specific build number in the app."
                                },
                                "name": {
                                  "type": "string",
                                  "description": "The name of the app."
                                },
                                "namespace": {
                                  "type": "string",
                                  "description": "The app's namespace."
                                },
                                "version": {
                                  "type": "string",
                                  "description": "The version of the app the call originated from."
                                }
                              }
                            },
                            "channel": {
                              "type": "string",
                              "enum": [
                                "browser",
                                "server",
                                "mobile"
                              ],
                              "description": "The channel the event originated from."
                            },
                            "device": {
                              "type": "object",
                              "description": "Contains information about the device the event originated from.\n",
                              "properties": {
                                "advertisingId": {
                                  "type": "string",
                                  "description": "The advertising ID is a unique, anonymous ID for advertising."
                                },
                                "id": {
                                  "type": "string",
                                  "description": "The device ID."
                                },
                                "manufacturer": {
                                  "type": "string",
                                  "description": "The device manufacturer."
                                },
                                "model": {
                                  "type": "string",
                                  "description": "The device model."
                                },
                                "name": {
                                  "type": "string",
                                  "description": "The device name."
                                },
                                "type": {
                                  "type": "string",
                                  "description": "The device type—android, iOS, etc.",
                                  "enum": [
                                    "android",
                                    "ios"
                                  ]
                                },
                                "version": {
                                  "type": "string",
                                  "description": "The firmware version for the device."
                                }
                              }
                            },
                            "ip": {
                              "type": "string",
                              "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                            },
                            "locale": {
                              "type": "string",
                              "description": "The locale string for the current user, e.g. `en-US`."
                            },
                            "network": {
                              "type": "object",
                              "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                              "properties": {
                                "bluetooth": {
                                  "type": "boolean",
                                  "description": "Lets you know if bluetooth is enabled on a device."
                                },
                                "carrier": {
                                  "type": "string",
                                  "description": "The cellular carrier the phone uses."
                                },
                                "cellular": {
                                  "type": "boolean",
                                  "description": "Indicates whether the device's cellular connection is enabled or not."
                                },
                                "wifi": {
                                  "type": "boolean",
                                  "description": "Indicates whether a device's wifi connection is enabled or not."
                                }
                              }
                            },
                            "os": {
                              "type": "object",
                              "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                              "properties": {
                                "name": {
                                  "type": "string",
                                  "description": "The operating system running on the device."
                                },
                                "version": {
                                  "type": "string",
                                  "description": "The version of the OS running on the device."
                                }
                              }
                            },
                            "userAgent": {
                              "type": "string",
                              "description": "The user agent of the device making the request"
                            }
                          }
                        },
                        "integrations": {
                          "x-scalar-ignore": true,
                          "type": "object",
                          "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                          "additionalProperties": {
                            "type": "boolean",
                            "x-additionalPropertiesName": "Enabled/Disabled integrations"
                          },
                          "example": {
                            "All": true,
                            "Salesforce": false
                          }
                        },
                        "messageId": {
                          "type": "string",
                          "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                        },
                        "name": {
                          "type": "string",
                          "description": "The name of the screen the person visited.",
                          "example": "home"
                        },
                        "originalTimestamp": {
                          "type": "string",
                          "format": "date-time",
                          "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                        },
                        "properties": {
                          "additionalProperties": {
                            "x-additionalPropertiesName": "Screen Properties"
                          },
                          "description": "Additional properties for your screen.",
                          "type": "object"
                        },
                        "receivedAt": {
                          "type": "string",
                          "format": "date-time",
                          "readOnly": true,
                          "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                        },
                        "sentAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                        },
                        "timestamp": {
                          "type": "string",
                          "format": "date-time",
                          "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                        },
                        "version": {
                          "readOnly": true,
                          "type": "number",
                          "description": "The version of the API that received the event, automatically set by Customer.io."
                        }
                      },
                      "required": [
                        "userId",
                        "type"
                      ],
                      "title": "Known User"
                    },
                    {
                      "properties": {
                        "anonymousId": {
                          "x-scalar-ignore": true,
                          "type": "string",
                          "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
                          "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "screen"
                          ],
                          "description": "The kind of request. Required in a `batch` call, where the endpoint can't tell us the type; the single-request endpoints set it for you."
                        },
                        "context": {
                          "x-scalar-ignore": true,
                          "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                          "title": "Mobile",
                          "properties": {
                            "active": {
                              "type": "boolean",
                              "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                            },
                            "app": {
                              "type": "object",
                              "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                              "properties": {
                                "build": {
                                  "type": "string",
                                  "description": "The specific build number in the app."
                                },
                                "name": {
                                  "type": "string",
                                  "description": "The name of the app."
                                },
                                "namespace": {
                                  "type": "string",
                                  "description": "The app's namespace."
                                },
                                "version": {
                                  "type": "string",
                                  "description": "The version of the app the call originated from."
                                }
                              }
                            },
                            "channel": {
                              "type": "string",
                              "enum": [
                                "browser",
                                "server",
                                "mobile"
                              ],
                              "description": "The channel the event originated from."
                            },
                            "device": {
                              "type": "object",
                              "description": "Contains information about the device the event originated from.\n",
                              "properties": {
                                "advertisingId": {
                                  "type": "string",
                                  "description": "The advertising ID is a unique, anonymous ID for advertising."
                                },
                                "id": {
                                  "type": "string",
                                  "description": "The device ID."
                                },
                                "manufacturer": {
                                  "type": "string",
                                  "description": "The device manufacturer."
                                },
                                "model": {
                                  "type": "string",
                                  "description": "The device model."
                                },
                                "name": {
                                  "type": "string",
                                  "description": "The device name."
                                },
                                "type": {
                                  "type": "string",
                                  "description": "The device type—android, iOS, etc.",
                                  "enum": [
                                    "android",
                                    "ios"
                                  ]
                                },
                                "version": {
                                  "type": "string",
                                  "description": "The firmware version for the device."
                                }
                              }
                            },
                            "ip": {
                              "type": "string",
                              "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                            },
                            "locale": {
                              "type": "string",
                              "description": "The locale string for the current user, e.g. `en-US`."
                            },
                            "network": {
                              "type": "object",
                              "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                              "properties": {
                                "bluetooth": {
                                  "type": "boolean",
                                  "description": "Lets you know if bluetooth is enabled on a device."
                                },
                                "carrier": {
                                  "type": "string",
                                  "description": "The cellular carrier the phone uses."
                                },
                                "cellular": {
                                  "type": "boolean",
                                  "description": "Indicates whether the device's cellular connection is enabled or not."
                                },
                                "wifi": {
                                  "type": "boolean",
                                  "description": "Indicates whether a device's wifi connection is enabled or not."
                                }
                              }
                            },
                            "os": {
                              "type": "object",
                              "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                              "properties": {
                                "name": {
                                  "type": "string",
                                  "description": "The operating system running on the device."
                                },
                                "version": {
                                  "type": "string",
                                  "description": "The version of the OS running on the device."
                                }
                              }
                            },
                            "userAgent": {
                              "type": "string",
                              "description": "The user agent of the device making the request"
                            }
                          }
                        },
                        "integrations": {
                          "x-scalar-ignore": true,
                          "type": "object",
                          "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                          "additionalProperties": {
                            "type": "boolean",
                            "x-additionalPropertiesName": "Enabled/Disabled integrations"
                          },
                          "example": {
                            "All": true,
                            "Salesforce": false
                          }
                        },
                        "messageId": {
                          "type": "string",
                          "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                        },
                        "name": {
                          "type": "string",
                          "description": "The name of the screen the person visited.",
                          "example": "home"
                        },
                        "originalTimestamp": {
                          "type": "string",
                          "format": "date-time",
                          "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                        },
                        "properties": {
                          "additionalProperties": {
                            "x-additionalPropertiesName": "Screen Properties"
                          },
                          "description": "Additional properties for your screen.",
                          "type": "object"
                        },
                        "receivedAt": {
                          "type": "string",
                          "format": "date-time",
                          "readOnly": true,
                          "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                        },
                        "sentAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                        },
                        "timestamp": {
                          "type": "string",
                          "format": "date-time",
                          "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                        },
                        "version": {
                          "readOnly": true,
                          "type": "number",
                          "description": "The version of the API that received the event, automatically set by Customer.io."
                        }
                      },
                      "required": [
                        "anonymousId",
                        "type"
                      ],
                      "title": "Anonymous User"
                    }
                  ]
                },
                {
                  "title": "Group",
                  "oneOf": [
                    {
                      "properties": {
                        "groupId": {
                          "type": "string",
                          "description": "ID of the group",
                          "example": "0e8c78ea9d97a7b8185e8632"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "group"
                          ],
                          "description": "The kind of request. Required in a `batch` call, where the endpoint can't tell us the type; the single-request endpoints set it for you."
                        },
                        "context": {
                          "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                          "oneOf": [
                            {
                              "x-scalar-ignore": true,
                              "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                              "title": "Non-mobile",
                              "properties": {
                                "active": {
                                  "type": "boolean",
                                  "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                },
                                "campaign": {
                                  "type": "object",
                                  "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                                  "properties": {
                                    "content": {
                                      "type": "string"
                                    },
                                    "medium": {
                                      "type": "string",
                                      "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                                    },
                                    "name": {
                                      "type": "string",
                                      "description": "The campaign name."
                                    },
                                    "source": {
                                      "type": "string",
                                      "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                                    },
                                    "term": {
                                      "type": "string",
                                      "description": "The keyword term(s) a user came from."
                                    }
                                  },
                                  "additionalProperties": {
                                    "type": "string",
                                    "x-additionalPropertiesName": "Additional UTM Parameters"
                                  }
                                },
                                "channel": {
                                  "type": "string",
                                  "enum": [
                                    "browser",
                                    "server",
                                    "mobile"
                                  ],
                                  "description": "The channel the event originated from."
                                },
                                "ip": {
                                  "type": "string",
                                  "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                },
                                "locale": {
                                  "type": "string",
                                  "description": "The locale string for the current user, e.g. `en-US`."
                                },
                                "page": {
                                  "x-scalar-ignore": true,
                                  "type": "object",
                                  "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                                  "properties": {
                                    "keywords": {
                                      "type": "array",
                                      "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "name": {
                                      "type": "string",
                                      "description": "The name of the page. Reserved for future use.\n"
                                    },
                                    "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."
                                    }
                                  }
                                },
                                "userAgent": {
                                  "type": "string",
                                  "description": "The user agent of the device making the request"
                                }
                              }
                            },
                            {
                              "x-scalar-ignore": true,
                              "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                              "title": "Mobile",
                              "properties": {
                                "active": {
                                  "type": "boolean",
                                  "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                },
                                "app": {
                                  "type": "object",
                                  "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                                  "properties": {
                                    "build": {
                                      "type": "string",
                                      "description": "The specific build number in the app."
                                    },
                                    "name": {
                                      "type": "string",
                                      "description": "The name of the app."
                                    },
                                    "namespace": {
                                      "type": "string",
                                      "description": "The app's namespace."
                                    },
                                    "version": {
                                      "type": "string",
                                      "description": "The version of the app the call originated from."
                                    }
                                  }
                                },
                                "channel": {
                                  "type": "string",
                                  "enum": [
                                    "browser",
                                    "server",
                                    "mobile"
                                  ],
                                  "description": "The channel the event originated from."
                                },
                                "device": {
                                  "type": "object",
                                  "description": "Contains information about the device the event originated from.\n",
                                  "properties": {
                                    "advertisingId": {
                                      "type": "string",
                                      "description": "The advertising ID is a unique, anonymous ID for advertising."
                                    },
                                    "id": {
                                      "type": "string",
                                      "description": "The device ID."
                                    },
                                    "manufacturer": {
                                      "type": "string",
                                      "description": "The device manufacturer."
                                    },
                                    "model": {
                                      "type": "string",
                                      "description": "The device model."
                                    },
                                    "name": {
                                      "type": "string",
                                      "description": "The device name."
                                    },
                                    "type": {
                                      "type": "string",
                                      "description": "The device type—android, iOS, etc.",
                                      "enum": [
                                        "android",
                                        "ios"
                                      ]
                                    },
                                    "version": {
                                      "type": "string",
                                      "description": "The firmware version for the device."
                                    }
                                  }
                                },
                                "ip": {
                                  "type": "string",
                                  "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                },
                                "locale": {
                                  "type": "string",
                                  "description": "The locale string for the current user, e.g. `en-US`."
                                },
                                "network": {
                                  "type": "object",
                                  "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                                  "properties": {
                                    "bluetooth": {
                                      "type": "boolean",
                                      "description": "Lets you know if bluetooth is enabled on a device."
                                    },
                                    "carrier": {
                                      "type": "string",
                                      "description": "The cellular carrier the phone uses."
                                    },
                                    "cellular": {
                                      "type": "boolean",
                                      "description": "Indicates whether the device's cellular connection is enabled or not."
                                    },
                                    "wifi": {
                                      "type": "boolean",
                                      "description": "Indicates whether a device's wifi connection is enabled or not."
                                    }
                                  }
                                },
                                "os": {
                                  "type": "object",
                                  "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                                  "properties": {
                                    "name": {
                                      "type": "string",
                                      "description": "The operating system running on the device."
                                    },
                                    "version": {
                                      "type": "string",
                                      "description": "The version of the OS running on the device."
                                    }
                                  }
                                },
                                "userAgent": {
                                  "type": "string",
                                  "description": "The user agent of the device making the request"
                                }
                              }
                            }
                          ]
                        },
                        "integrations": {
                          "x-scalar-ignore": true,
                          "type": "object",
                          "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                          "additionalProperties": {
                            "type": "boolean",
                            "x-additionalPropertiesName": "Enabled/Disabled integrations"
                          },
                          "example": {
                            "All": true,
                            "Salesforce": false
                          }
                        },
                        "messageId": {
                          "type": "string",
                          "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                        },
                        "originalTimestamp": {
                          "type": "string",
                          "format": "date-time",
                          "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                        },
                        "receivedAt": {
                          "type": "string",
                          "format": "date-time",
                          "readOnly": true,
                          "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                        },
                        "sentAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                        },
                        "timestamp": {
                          "type": "string",
                          "format": "date-time",
                          "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                        },
                        "traits": {
                          "type": "object",
                          "description": "Additional information about the group.",
                          "properties": {
                            "objectTypeId": {
                              "x-scalar-ignore": true,
                              "type": "string",
                              "description": "If you use Customer.io Journeys as a destination, this value is the type of group/object your group belongs to; object type IDs are stringified integers. If you don't include this value, we assume the object type ID is `1`. See [objects in Customer.io Journeys](/journeys/objects-data/objects/types/) for more information.",
                              "example": "1"
                            },
                            "relationshipAttributes": {
                              "type": "object",
                              "description": "Attributes that you want to set for the relationship between the person and the group.",
                              "example": {
                                "role": "primary_contact"
                              }
                            }
                          },
                          "additionalProperties": {
                            "x-additionalPropertiesName": "Group Traits",
                            "example": {
                              "name": "Acme",
                              "industry": "Technology",
                              "road_runner_accidents": "329,",
                              "plan": "enterprise,",
                              "total_billed": 830
                            }
                          }
                        },
                        "userId": {
                          "x-scalar-ignore": true,
                          "type": "string",
                          "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
                          "example": "241ma8mf4a"
                        },
                        "version": {
                          "readOnly": true,
                          "type": "number",
                          "description": "The version of the API that received the event, automatically set by Customer.io."
                        }
                      },
                      "required": [
                        "groupId",
                        "type"
                      ],
                      "title": "Known User"
                    },
                    {
                      "properties": {
                        "groupId": {
                          "type": "string",
                          "description": "ID of the group",
                          "example": "0e8c78ea9d97a7b8185e8632"
                        },
                        "type": {
                          "type": "string",
                          "enum": [
                            "group"
                          ],
                          "description": "The kind of request. Required in a `batch` call, where the endpoint can't tell us the type; the single-request endpoints set it for you."
                        },
                        "anonymousId": {
                          "x-scalar-ignore": true,
                          "type": "string",
                          "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
                          "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
                        },
                        "context": {
                          "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                          "oneOf": [
                            {
                              "x-scalar-ignore": true,
                              "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                              "title": "Non-mobile",
                              "properties": {
                                "active": {
                                  "type": "boolean",
                                  "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                },
                                "campaign": {
                                  "type": "object",
                                  "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                                  "properties": {
                                    "content": {
                                      "type": "string"
                                    },
                                    "medium": {
                                      "type": "string",
                                      "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                                    },
                                    "name": {
                                      "type": "string",
                                      "description": "The campaign name."
                                    },
                                    "source": {
                                      "type": "string",
                                      "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                                    },
                                    "term": {
                                      "type": "string",
                                      "description": "The keyword term(s) a user came from."
                                    }
                                  },
                                  "additionalProperties": {
                                    "type": "string",
                                    "x-additionalPropertiesName": "Additional UTM Parameters"
                                  }
                                },
                                "channel": {
                                  "type": "string",
                                  "enum": [
                                    "browser",
                                    "server",
                                    "mobile"
                                  ],
                                  "description": "The channel the event originated from."
                                },
                                "ip": {
                                  "type": "string",
                                  "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                },
                                "locale": {
                                  "type": "string",
                                  "description": "The locale string for the current user, e.g. `en-US`."
                                },
                                "page": {
                                  "x-scalar-ignore": true,
                                  "type": "object",
                                  "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                                  "properties": {
                                    "keywords": {
                                      "type": "array",
                                      "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "name": {
                                      "type": "string",
                                      "description": "The name of the page. Reserved for future use.\n"
                                    },
                                    "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."
                                    }
                                  }
                                },
                                "userAgent": {
                                  "type": "string",
                                  "description": "The user agent of the device making the request"
                                }
                              }
                            },
                            {
                              "x-scalar-ignore": true,
                              "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                              "title": "Mobile",
                              "properties": {
                                "active": {
                                  "type": "boolean",
                                  "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                },
                                "app": {
                                  "type": "object",
                                  "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                                  "properties": {
                                    "build": {
                                      "type": "string",
                                      "description": "The specific build number in the app."
                                    },
                                    "name": {
                                      "type": "string",
                                      "description": "The name of the app."
                                    },
                                    "namespace": {
                                      "type": "string",
                                      "description": "The app's namespace."
                                    },
                                    "version": {
                                      "type": "string",
                                      "description": "The version of the app the call originated from."
                                    }
                                  }
                                },
                                "channel": {
                                  "type": "string",
                                  "enum": [
                                    "browser",
                                    "server",
                                    "mobile"
                                  ],
                                  "description": "The channel the event originated from."
                                },
                                "device": {
                                  "type": "object",
                                  "description": "Contains information about the device the event originated from.\n",
                                  "properties": {
                                    "advertisingId": {
                                      "type": "string",
                                      "description": "The advertising ID is a unique, anonymous ID for advertising."
                                    },
                                    "id": {
                                      "type": "string",
                                      "description": "The device ID."
                                    },
                                    "manufacturer": {
                                      "type": "string",
                                      "description": "The device manufacturer."
                                    },
                                    "model": {
                                      "type": "string",
                                      "description": "The device model."
                                    },
                                    "name": {
                                      "type": "string",
                                      "description": "The device name."
                                    },
                                    "type": {
                                      "type": "string",
                                      "description": "The device type—android, iOS, etc.",
                                      "enum": [
                                        "android",
                                        "ios"
                                      ]
                                    },
                                    "version": {
                                      "type": "string",
                                      "description": "The firmware version for the device."
                                    }
                                  }
                                },
                                "ip": {
                                  "type": "string",
                                  "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                },
                                "locale": {
                                  "type": "string",
                                  "description": "The locale string for the current user, e.g. `en-US`."
                                },
                                "network": {
                                  "type": "object",
                                  "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                                  "properties": {
                                    "bluetooth": {
                                      "type": "boolean",
                                      "description": "Lets you know if bluetooth is enabled on a device."
                                    },
                                    "carrier": {
                                      "type": "string",
                                      "description": "The cellular carrier the phone uses."
                                    },
                                    "cellular": {
                                      "type": "boolean",
                                      "description": "Indicates whether the device's cellular connection is enabled or not."
                                    },
                                    "wifi": {
                                      "type": "boolean",
                                      "description": "Indicates whether a device's wifi connection is enabled or not."
                                    }
                                  }
                                },
                                "os": {
                                  "type": "object",
                                  "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                                  "properties": {
                                    "name": {
                                      "type": "string",
                                      "description": "The operating system running on the device."
                                    },
                                    "version": {
                                      "type": "string",
                                      "description": "The version of the OS running on the device."
                                    }
                                  }
                                },
                                "userAgent": {
                                  "type": "string",
                                  "description": "The user agent of the device making the request"
                                }
                              }
                            }
                          ]
                        },
                        "integrations": {
                          "x-scalar-ignore": true,
                          "type": "object",
                          "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                          "additionalProperties": {
                            "type": "boolean",
                            "x-additionalPropertiesName": "Enabled/Disabled integrations"
                          },
                          "example": {
                            "All": true,
                            "Salesforce": false
                          }
                        },
                        "messageId": {
                          "type": "string",
                          "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                        },
                        "originalTimestamp": {
                          "type": "string",
                          "format": "date-time",
                          "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                        },
                        "receivedAt": {
                          "type": "string",
                          "format": "date-time",
                          "readOnly": true,
                          "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                        },
                        "sentAt": {
                          "type": "string",
                          "format": "date-time",
                          "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                        },
                        "timestamp": {
                          "type": "string",
                          "format": "date-time",
                          "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                        },
                        "traits": {
                          "type": "object",
                          "description": "Additional information about the group.",
                          "properties": {
                            "objectTypeId": {
                              "x-scalar-ignore": true,
                              "type": "string",
                              "description": "If you use Customer.io Journeys as a destination, this value is the type of group/object your group belongs to; object type IDs are stringified integers. If you don't include this value, we assume the object type ID is `1`. See [objects in Customer.io Journeys](/journeys/objects-data/objects/types/) for more information.",
                              "example": "1"
                            },
                            "relationshipAttributes": {
                              "type": "object",
                              "description": "Attributes that you want to set for the relationship between the person and the group.",
                              "example": {
                                "role": "primary_contact"
                              }
                            }
                          },
                          "additionalProperties": {
                            "x-additionalPropertiesName": "Group Traits",
                            "description": "Attributes that you want to associate with the group.",
                            "example": {
                              "name": "Acme",
                              "industry": "Technology",
                              "road_runner_accidents": "329,",
                              "plan": "enterprise,",
                              "total_billed": 830
                            }
                          }
                        },
                        "version": {
                          "readOnly": true,
                          "type": "number",
                          "description": "The version of the API that received the event, automatically set by Customer.io."
                        }
                      },
                      "required": [
                        "groupId",
                        "type"
                      ],
                      "title": "Anonymous User"
                    }
                  ]
                },
                {
                  "title": "Alias",
                  "properties": {
                    "previousId": {
                      "type": "string",
                      "description": "The anonymousId or userId value that you want to merge into the canonical profile."
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "alias"
                      ],
                      "description": "The kind of request. Required in a `batch` call, where the endpoint can't tell us the type; the single-request endpoints set it for you."
                    },
                    "userId": {
                      "type": "string",
                      "description": "The userId that you want to keep. This is required if you haven't already identified someone with one of our web or server-side libraries.\n"
                    }
                  },
                  "required": [
                    "previousId",
                    "userId",
                    "type"
                  ]
                }
              ]
            }
          },
          "context": {
            "description": "The default context for every call in the batch. We apply it to each call that doesn't include its own `context` object.",
            "oneOf": [
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Non-mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "campaign": {
                    "type": "object",
                    "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                    "properties": {
                      "content": {
                        "type": "string"
                      },
                      "medium": {
                        "type": "string",
                        "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                      },
                      "name": {
                        "type": "string",
                        "description": "The campaign name."
                      },
                      "source": {
                        "type": "string",
                        "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                      },
                      "term": {
                        "type": "string",
                        "description": "The keyword term(s) a user came from."
                      }
                    },
                    "additionalProperties": {
                      "type": "string",
                      "x-additionalPropertiesName": "Additional UTM Parameters"
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "page": {
                    "x-scalar-ignore": true,
                    "type": "object",
                    "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                    "properties": {
                      "keywords": {
                        "type": "array",
                        "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                        "items": {
                          "type": "string"
                        }
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the page. Reserved for future use.\n"
                      },
                      "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."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              },
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "app": {
                    "type": "object",
                    "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                    "properties": {
                      "build": {
                        "type": "string",
                        "description": "The specific build number in the app."
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the app."
                      },
                      "namespace": {
                        "type": "string",
                        "description": "The app's namespace."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the app the call originated from."
                      }
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "device": {
                    "type": "object",
                    "description": "Contains information about the device the event originated from.\n",
                    "properties": {
                      "advertisingId": {
                        "type": "string",
                        "description": "The advertising ID is a unique, anonymous ID for advertising."
                      },
                      "id": {
                        "type": "string",
                        "description": "The device ID."
                      },
                      "manufacturer": {
                        "type": "string",
                        "description": "The device manufacturer."
                      },
                      "model": {
                        "type": "string",
                        "description": "The device model."
                      },
                      "name": {
                        "type": "string",
                        "description": "The device name."
                      },
                      "type": {
                        "type": "string",
                        "description": "The device type—android, iOS, etc.",
                        "enum": [
                          "android",
                          "ios"
                        ]
                      },
                      "version": {
                        "type": "string",
                        "description": "The firmware version for the device."
                      }
                    }
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "network": {
                    "type": "object",
                    "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                    "properties": {
                      "bluetooth": {
                        "type": "boolean",
                        "description": "Lets you know if bluetooth is enabled on a device."
                      },
                      "carrier": {
                        "type": "string",
                        "description": "The cellular carrier the phone uses."
                      },
                      "cellular": {
                        "type": "boolean",
                        "description": "Indicates whether the device's cellular connection is enabled or not."
                      },
                      "wifi": {
                        "type": "boolean",
                        "description": "Indicates whether a device's wifi connection is enabled or not."
                      }
                    }
                  },
                  "os": {
                    "type": "object",
                    "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The operating system running on the device."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the OS running on the device."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              }
            ]
          }
        }
      },
      "batch_type_identify": {
        "x-scalar-ignore": true,
        "type": "object",
        "required": [
          "type"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "identify"
            ],
            "description": "The kind of request. Required in a `batch` call, where the endpoint can't tell us the type; the single-request endpoints set it for you."
          }
        }
      },
      "batch_type_track": {
        "x-scalar-ignore": true,
        "type": "object",
        "required": [
          "type"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "track"
            ],
            "description": "The kind of request. Required in a `batch` call, where the endpoint can't tell us the type; the single-request endpoints set it for you."
          }
        }
      },
      "batch_type_page": {
        "x-scalar-ignore": true,
        "type": "object",
        "required": [
          "type"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "page"
            ],
            "description": "The kind of request. Required in a `batch` call, where the endpoint can't tell us the type; the single-request endpoints set it for you."
          }
        }
      },
      "batch_type_screen": {
        "x-scalar-ignore": true,
        "type": "object",
        "required": [
          "type"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "screen"
            ],
            "description": "The kind of request. Required in a `batch` call, where the endpoint can't tell us the type; the single-request endpoints set it for you."
          }
        }
      },
      "batch_type_group": {
        "x-scalar-ignore": true,
        "type": "object",
        "required": [
          "type"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "group"
            ],
            "description": "The kind of request. Required in a `batch` call, where the endpoint can't tell us the type; the single-request endpoints set it for you."
          }
        }
      },
      "batch_type_alias": {
        "x-scalar-ignore": true,
        "type": "object",
        "required": [
          "type"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "alias"
            ],
            "description": "The kind of request. Required in a `batch` call, where the endpoint can't tell us the type; the single-request endpoints set it for you."
          }
        }
      },
      "objectTypeId": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "If you use Customer.io Journeys as a destination, this value is the type of group/object your group belongs to; object type IDs are stringified integers. If you don't include this value, we assume the object type ID is `1`. See [objects in Customer.io Journeys](/journeys/objects-data/objects/types/) for more information.",
        "example": "1"
      },
      "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."
            }
          }
        }
      },
      "id": {
        "x-scalar-ignore": true,
        "type": "string",
        "description": "A unique identifier for a Data Pipelines event, ensuring that each individual event is unique."
      },
      "received_at": {
        "x-scalar-ignore": true,
        "type": "string",
        "format": "date-time",
        "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
      },
      "sent_at": {
        "x-scalar-ignore": true,
        "type": "string",
        "format": "date-time",
        "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
      },
      "received_at_unix": {
        "x-scalar-ignore": true,
        "type": "integer",
        "description": "The Unix timestamp (in seconds) when Data Pipelines receives an event."
      },
      "sent_at_unix": {
        "x-scalar-ignore": true,
        "type": "integer",
        "description": "The Unix timestamp (in seconds) when a library sends an event to Data Pipelines."
      },
      "etl_identify": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "anonymous_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
            "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
          },
          "context": {
            "x-scalar-ignore": true,
            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
            "oneOf": [
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Non-mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "campaign": {
                    "type": "object",
                    "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                    "properties": {
                      "content": {
                        "type": "string"
                      },
                      "medium": {
                        "type": "string",
                        "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                      },
                      "name": {
                        "type": "string",
                        "description": "The campaign name."
                      },
                      "source": {
                        "type": "string",
                        "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                      },
                      "term": {
                        "type": "string",
                        "description": "The keyword term(s) a user came from."
                      }
                    },
                    "additionalProperties": {
                      "type": "string",
                      "x-additionalPropertiesName": "Additional UTM Parameters"
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "page": {
                    "x-scalar-ignore": true,
                    "type": "object",
                    "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                    "properties": {
                      "keywords": {
                        "type": "array",
                        "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                        "items": {
                          "type": "string"
                        }
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the page. Reserved for future use.\n"
                      },
                      "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."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              },
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "app": {
                    "type": "object",
                    "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                    "properties": {
                      "build": {
                        "type": "string",
                        "description": "The specific build number in the app."
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the app."
                      },
                      "namespace": {
                        "type": "string",
                        "description": "The app's namespace."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the app the call originated from."
                      }
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "device": {
                    "type": "object",
                    "description": "Contains information about the device the event originated from.\n",
                    "properties": {
                      "advertisingId": {
                        "type": "string",
                        "description": "The advertising ID is a unique, anonymous ID for advertising."
                      },
                      "id": {
                        "type": "string",
                        "description": "The device ID."
                      },
                      "manufacturer": {
                        "type": "string",
                        "description": "The device manufacturer."
                      },
                      "model": {
                        "type": "string",
                        "description": "The device model."
                      },
                      "name": {
                        "type": "string",
                        "description": "The device name."
                      },
                      "type": {
                        "type": "string",
                        "description": "The device type—android, iOS, etc.",
                        "enum": [
                          "android",
                          "ios"
                        ]
                      },
                      "version": {
                        "type": "string",
                        "description": "The firmware version for the device."
                      }
                    }
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "network": {
                    "type": "object",
                    "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                    "properties": {
                      "bluetooth": {
                        "type": "boolean",
                        "description": "Lets you know if bluetooth is enabled on a device."
                      },
                      "carrier": {
                        "type": "string",
                        "description": "The cellular carrier the phone uses."
                      },
                      "cellular": {
                        "type": "boolean",
                        "description": "Indicates whether the device's cellular connection is enabled or not."
                      },
                      "wifi": {
                        "type": "boolean",
                        "description": "Indicates whether a device's wifi connection is enabled or not."
                      }
                    }
                  },
                  "os": {
                    "type": "object",
                    "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The operating system running on the device."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the OS running on the device."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              }
            ]
          },
          "id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique identifier for a Data Pipelines event, ensuring that each individual event is unique."
          },
          "received_at": {
            "x-scalar-ignore": true,
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
          },
          "sent_at": {
            "x-scalar-ignore": true,
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
          },
          "traits": {
            "type": "object",
            "description": "Additional properties that you know about a person. We've listed some common/reserved traits below, but you can add any traits that you might use in another system.",
            "properties": {
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "We recommend that you pass date-time values as ISO 8601 date-time strings. We convert this value to fit destinations where appropriate."
              },
              "email": {
                "type": "string",
                "description": "A person's email address. If you pass an email address as the `userId`, Customer.io sets this trait for you."
              }
            },
            "additionalProperties": {
              "x-additionalPropertiesName": "Additional Traits",
              "description": "Traits that you want to set on a person. These can take any JSON shape."
            }
          },
          "user_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
            "example": "241ma8mf4a"
          }
        }
      },
      "etl_group": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "anonymous_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
            "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
          },
          "group_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "ID of the group",
            "example": "0e8c78ea9d97a7b8185e8632"
          },
          "id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique identifier for a Data Pipelines event, ensuring that each individual event is unique."
          },
          "objectTypeId": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "If you use Customer.io Journeys as a destination, this value is the type of group/object your group belongs to; object type IDs are stringified integers. If you don't include this value, we assume the object type ID is `1`. See [objects in Customer.io Journeys](/journeys/objects-data/objects/types/) for more information.",
            "example": "1"
          },
          "received_at": {
            "x-scalar-ignore": true,
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
          },
          "sent_at": {
            "x-scalar-ignore": true,
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
          },
          "traits": {
            "type": "object",
            "description": "Additional data points that the call assigns to the group.",
            "additionalProperties": {
              "x-additionalPropertiesName": "Additional Traits",
              "description": "Traits can have any name, like `account_name` or `total_employees`. These can take any JSON shape."
            }
          },
          "user_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
            "example": "241ma8mf4a"
          }
        }
      },
      "etl_tracks": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "anonymous_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
            "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
          },
          "context": {
            "x-scalar-ignore": true,
            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
            "oneOf": [
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Non-mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "campaign": {
                    "type": "object",
                    "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                    "properties": {
                      "content": {
                        "type": "string"
                      },
                      "medium": {
                        "type": "string",
                        "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                      },
                      "name": {
                        "type": "string",
                        "description": "The campaign name."
                      },
                      "source": {
                        "type": "string",
                        "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                      },
                      "term": {
                        "type": "string",
                        "description": "The keyword term(s) a user came from."
                      }
                    },
                    "additionalProperties": {
                      "type": "string",
                      "x-additionalPropertiesName": "Additional UTM Parameters"
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "page": {
                    "x-scalar-ignore": true,
                    "type": "object",
                    "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                    "properties": {
                      "keywords": {
                        "type": "array",
                        "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                        "items": {
                          "type": "string"
                        }
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the page. Reserved for future use.\n"
                      },
                      "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."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              },
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "app": {
                    "type": "object",
                    "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                    "properties": {
                      "build": {
                        "type": "string",
                        "description": "The specific build number in the app."
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the app."
                      },
                      "namespace": {
                        "type": "string",
                        "description": "The app's namespace."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the app the call originated from."
                      }
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "device": {
                    "type": "object",
                    "description": "Contains information about the device the event originated from.\n",
                    "properties": {
                      "advertisingId": {
                        "type": "string",
                        "description": "The advertising ID is a unique, anonymous ID for advertising."
                      },
                      "id": {
                        "type": "string",
                        "description": "The device ID."
                      },
                      "manufacturer": {
                        "type": "string",
                        "description": "The device manufacturer."
                      },
                      "model": {
                        "type": "string",
                        "description": "The device model."
                      },
                      "name": {
                        "type": "string",
                        "description": "The device name."
                      },
                      "type": {
                        "type": "string",
                        "description": "The device type—android, iOS, etc.",
                        "enum": [
                          "android",
                          "ios"
                        ]
                      },
                      "version": {
                        "type": "string",
                        "description": "The firmware version for the device."
                      }
                    }
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "network": {
                    "type": "object",
                    "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                    "properties": {
                      "bluetooth": {
                        "type": "boolean",
                        "description": "Lets you know if bluetooth is enabled on a device."
                      },
                      "carrier": {
                        "type": "string",
                        "description": "The cellular carrier the phone uses."
                      },
                      "cellular": {
                        "type": "boolean",
                        "description": "Indicates whether the device's cellular connection is enabled or not."
                      },
                      "wifi": {
                        "type": "boolean",
                        "description": "Indicates whether a device's wifi connection is enabled or not."
                      }
                    }
                  },
                  "os": {
                    "type": "object",
                    "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The operating system running on the device."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the OS running on the device."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              }
            ]
          },
          "event": {
            "type": "string",
            "description": "The slug of the event name, mapping to an event-specific table."
          },
          "event_text": {
            "type": "string",
            "description": "The name of the event."
          },
          "id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique identifier for a Data Pipelines event, ensuring that each individual event is unique."
          },
          "properties": {
            "additionalProperties": {
              "x-additionalPropertiesName": "Event Properties"
            },
            "description": "Additional properties sent with the page call. We've listed some common/reserved traits captured by our `Analytics.js` library, but you can add any properties that you might use in another system.",
            "type": "object"
          },
          "received_at": {
            "x-scalar-ignore": true,
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
          },
          "sent_at": {
            "x-scalar-ignore": true,
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
          },
          "user_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
            "example": "241ma8mf4a"
          }
        }
      },
      "etl_alias": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique identifier for a Data Pipelines event, ensuring that each individual event is unique."
          },
          "previous_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The anonymousId or userId value that you want to merge into the canonical profile."
          },
          "received_at": {
            "x-scalar-ignore": true,
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
          },
          "sent_at": {
            "x-scalar-ignore": true,
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
          },
          "user_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
            "example": "241ma8mf4a"
          }
        }
      },
      "etl_page": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "anonymous_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
            "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
          },
          "context": {
            "x-scalar-ignore": true,
            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
            "oneOf": [
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Non-mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "campaign": {
                    "type": "object",
                    "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                    "properties": {
                      "content": {
                        "type": "string"
                      },
                      "medium": {
                        "type": "string",
                        "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                      },
                      "name": {
                        "type": "string",
                        "description": "The campaign name."
                      },
                      "source": {
                        "type": "string",
                        "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                      },
                      "term": {
                        "type": "string",
                        "description": "The keyword term(s) a user came from."
                      }
                    },
                    "additionalProperties": {
                      "type": "string",
                      "x-additionalPropertiesName": "Additional UTM Parameters"
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "page": {
                    "x-scalar-ignore": true,
                    "type": "object",
                    "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                    "properties": {
                      "keywords": {
                        "type": "array",
                        "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                        "items": {
                          "type": "string"
                        }
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the page. Reserved for future use.\n"
                      },
                      "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."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              },
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "app": {
                    "type": "object",
                    "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                    "properties": {
                      "build": {
                        "type": "string",
                        "description": "The specific build number in the app."
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the app."
                      },
                      "namespace": {
                        "type": "string",
                        "description": "The app's namespace."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the app the call originated from."
                      }
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "device": {
                    "type": "object",
                    "description": "Contains information about the device the event originated from.\n",
                    "properties": {
                      "advertisingId": {
                        "type": "string",
                        "description": "The advertising ID is a unique, anonymous ID for advertising."
                      },
                      "id": {
                        "type": "string",
                        "description": "The device ID."
                      },
                      "manufacturer": {
                        "type": "string",
                        "description": "The device manufacturer."
                      },
                      "model": {
                        "type": "string",
                        "description": "The device model."
                      },
                      "name": {
                        "type": "string",
                        "description": "The device name."
                      },
                      "type": {
                        "type": "string",
                        "description": "The device type—android, iOS, etc.",
                        "enum": [
                          "android",
                          "ios"
                        ]
                      },
                      "version": {
                        "type": "string",
                        "description": "The firmware version for the device."
                      }
                    }
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "network": {
                    "type": "object",
                    "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                    "properties": {
                      "bluetooth": {
                        "type": "boolean",
                        "description": "Lets you know if bluetooth is enabled on a device."
                      },
                      "carrier": {
                        "type": "string",
                        "description": "The cellular carrier the phone uses."
                      },
                      "cellular": {
                        "type": "boolean",
                        "description": "Indicates whether the device's cellular connection is enabled or not."
                      },
                      "wifi": {
                        "type": "boolean",
                        "description": "Indicates whether a device's wifi connection is enabled or not."
                      }
                    }
                  },
                  "os": {
                    "type": "object",
                    "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The operating system running on the device."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the OS running on the device."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              }
            ]
          },
          "id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique identifier for a Data Pipelines event, ensuring that each individual event is unique."
          },
          "properties": {
            "additionalProperties": {
              "x-additionalPropertiesName": "Page Properties"
            },
            "description": "Additional properties sent with the page call. We've listed some common/reserved traits captured by our `Analytics.js` library, but you can add any properties that you might use in another system.",
            "properties": {
              "category": {
                "type": "string",
                "description": "The category of the page. This might be useful if you have a single page routes or have a flattened URL structure."
              },
              "path": {
                "type": "string",
                "description": "The path of the page. This defaults to `location.pathname`, but can be overridden.",
                "example": "/page"
              },
              "referrer": {
                "type": "string",
                "description": "The referrer of the page, if applicable. This defaults to `document.referrer`, but can be overridden.",
                "example": "http://www.google.com/search?q=example"
              },
              "search": {
                "type": "string",
                "description": "The search query in the URL, if present. This defaults to `location.search`, but can be overridden.",
                "example": "?q=sfgiants"
              },
              "title": {
                "type": "string",
                "description": "The title of the page. This defaults to `document.title`, but can be overridden.",
                "example": "Page | Example.com"
              },
              "url": {
                "type": "string",
                "description": "The URL of the page. This defaults to a canonical url if available, and falls back to `document.location.href`.",
                "example": "https://www.example.com/page/"
              }
            },
            "type": "object"
          },
          "received_at": {
            "x-scalar-ignore": true,
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
          },
          "sent_at": {
            "x-scalar-ignore": true,
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
          },
          "user_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
            "example": "241ma8mf4a"
          }
        }
      },
      "etl_screen": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "anonymous_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
            "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
          },
          "context": {
            "x-scalar-ignore": true,
            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
            "oneOf": [
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Non-mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "campaign": {
                    "type": "object",
                    "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                    "properties": {
                      "content": {
                        "type": "string"
                      },
                      "medium": {
                        "type": "string",
                        "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                      },
                      "name": {
                        "type": "string",
                        "description": "The campaign name."
                      },
                      "source": {
                        "type": "string",
                        "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                      },
                      "term": {
                        "type": "string",
                        "description": "The keyword term(s) a user came from."
                      }
                    },
                    "additionalProperties": {
                      "type": "string",
                      "x-additionalPropertiesName": "Additional UTM Parameters"
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "page": {
                    "x-scalar-ignore": true,
                    "type": "object",
                    "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                    "properties": {
                      "keywords": {
                        "type": "array",
                        "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                        "items": {
                          "type": "string"
                        }
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the page. Reserved for future use.\n"
                      },
                      "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."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              },
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "app": {
                    "type": "object",
                    "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                    "properties": {
                      "build": {
                        "type": "string",
                        "description": "The specific build number in the app."
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the app."
                      },
                      "namespace": {
                        "type": "string",
                        "description": "The app's namespace."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the app the call originated from."
                      }
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "device": {
                    "type": "object",
                    "description": "Contains information about the device the event originated from.\n",
                    "properties": {
                      "advertisingId": {
                        "type": "string",
                        "description": "The advertising ID is a unique, anonymous ID for advertising."
                      },
                      "id": {
                        "type": "string",
                        "description": "The device ID."
                      },
                      "manufacturer": {
                        "type": "string",
                        "description": "The device manufacturer."
                      },
                      "model": {
                        "type": "string",
                        "description": "The device model."
                      },
                      "name": {
                        "type": "string",
                        "description": "The device name."
                      },
                      "type": {
                        "type": "string",
                        "description": "The device type—android, iOS, etc.",
                        "enum": [
                          "android",
                          "ios"
                        ]
                      },
                      "version": {
                        "type": "string",
                        "description": "The firmware version for the device."
                      }
                    }
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "network": {
                    "type": "object",
                    "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                    "properties": {
                      "bluetooth": {
                        "type": "boolean",
                        "description": "Lets you know if bluetooth is enabled on a device."
                      },
                      "carrier": {
                        "type": "string",
                        "description": "The cellular carrier the phone uses."
                      },
                      "cellular": {
                        "type": "boolean",
                        "description": "Indicates whether the device's cellular connection is enabled or not."
                      },
                      "wifi": {
                        "type": "boolean",
                        "description": "Indicates whether a device's wifi connection is enabled or not."
                      }
                    }
                  },
                  "os": {
                    "type": "object",
                    "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The operating system running on the device."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the OS running on the device."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              }
            ]
          },
          "id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique identifier for a Data Pipelines event, ensuring that each individual event is unique."
          },
          "properties": {
            "additionalProperties": {
              "x-additionalPropertiesName": "Additional event properties",
              "description": "Properties that you sent in the event. These can take any JSON shape."
            },
            "description": "Additional properties that you sent in your screen event",
            "type": "object"
          },
          "received_at": {
            "x-scalar-ignore": true,
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
          },
          "sent_at": {
            "x-scalar-ignore": true,
            "type": "string",
            "format": "date-time",
            "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
          },
          "user_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
            "example": "241ma8mf4a"
          }
        }
      },
      "etl_identify_destination": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "anonymous_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
            "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
          },
          "context": {
            "x-scalar-ignore": true,
            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
            "oneOf": [
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Non-mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "campaign": {
                    "type": "object",
                    "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                    "properties": {
                      "content": {
                        "type": "string"
                      },
                      "medium": {
                        "type": "string",
                        "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                      },
                      "name": {
                        "type": "string",
                        "description": "The campaign name."
                      },
                      "source": {
                        "type": "string",
                        "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                      },
                      "term": {
                        "type": "string",
                        "description": "The keyword term(s) a user came from."
                      }
                    },
                    "additionalProperties": {
                      "type": "string",
                      "x-additionalPropertiesName": "Additional UTM Parameters"
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "page": {
                    "x-scalar-ignore": true,
                    "type": "object",
                    "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                    "properties": {
                      "keywords": {
                        "type": "array",
                        "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                        "items": {
                          "type": "string"
                        }
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the page. Reserved for future use.\n"
                      },
                      "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."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              },
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "app": {
                    "type": "object",
                    "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                    "properties": {
                      "build": {
                        "type": "string",
                        "description": "The specific build number in the app."
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the app."
                      },
                      "namespace": {
                        "type": "string",
                        "description": "The app's namespace."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the app the call originated from."
                      }
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "device": {
                    "type": "object",
                    "description": "Contains information about the device the event originated from.\n",
                    "properties": {
                      "advertisingId": {
                        "type": "string",
                        "description": "The advertising ID is a unique, anonymous ID for advertising."
                      },
                      "id": {
                        "type": "string",
                        "description": "The device ID."
                      },
                      "manufacturer": {
                        "type": "string",
                        "description": "The device manufacturer."
                      },
                      "model": {
                        "type": "string",
                        "description": "The device model."
                      },
                      "name": {
                        "type": "string",
                        "description": "The device name."
                      },
                      "type": {
                        "type": "string",
                        "description": "The device type—android, iOS, etc.",
                        "enum": [
                          "android",
                          "ios"
                        ]
                      },
                      "version": {
                        "type": "string",
                        "description": "The firmware version for the device."
                      }
                    }
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "network": {
                    "type": "object",
                    "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                    "properties": {
                      "bluetooth": {
                        "type": "boolean",
                        "description": "Lets you know if bluetooth is enabled on a device."
                      },
                      "carrier": {
                        "type": "string",
                        "description": "The cellular carrier the phone uses."
                      },
                      "cellular": {
                        "type": "boolean",
                        "description": "Indicates whether the device's cellular connection is enabled or not."
                      },
                      "wifi": {
                        "type": "boolean",
                        "description": "Indicates whether a device's wifi connection is enabled or not."
                      }
                    }
                  },
                  "os": {
                    "type": "object",
                    "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The operating system running on the device."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the OS running on the device."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              }
            ]
          },
          "id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique identifier for a Data Pipelines event, ensuring that each individual event is unique."
          },
          "received_at": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The Unix timestamp (in seconds) when Data Pipelines receives an event."
          },
          "sent_at": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The Unix timestamp (in seconds) when a library sends an event to Data Pipelines."
          },
          "traits": {
            "type": "object",
            "description": "Additional properties that you know about a person. We've listed some common/reserved traits below, but you can add any traits that you might use in another system.",
            "properties": {
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "description": "We recommend that you pass date-time values as ISO 8601 date-time strings. We convert this value to fit destinations where appropriate."
              },
              "email": {
                "type": "string",
                "description": "A person's email address. If you pass an email address as the `userId`, Customer.io sets this trait for you."
              }
            },
            "additionalProperties": {
              "x-additionalPropertiesName": "Additional Traits",
              "description": "Traits that you want to set on a person. These can take any JSON shape."
            }
          },
          "user_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
            "example": "241ma8mf4a"
          }
        }
      },
      "etl_group_destination": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "anonymous_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
            "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
          },
          "group_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "ID of the group",
            "example": "0e8c78ea9d97a7b8185e8632"
          },
          "id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique identifier for a Data Pipelines event, ensuring that each individual event is unique."
          },
          "objectTypeId": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "If you use Customer.io Journeys as a destination, this value is the type of group/object your group belongs to; object type IDs are stringified integers. If you don't include this value, we assume the object type ID is `1`. See [objects in Customer.io Journeys](/journeys/objects-data/objects/types/) for more information.",
            "example": "1"
          },
          "received_at": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The Unix timestamp (in seconds) when Data Pipelines receives an event."
          },
          "sent_at": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The Unix timestamp (in seconds) when a library sends an event to Data Pipelines."
          },
          "traits": {
            "type": "object",
            "description": "Additional data points that the call assigns to the group.",
            "additionalProperties": {
              "x-additionalPropertiesName": "Additional Traits",
              "description": "Traits can have any name, like `account_name` or `total_employees`. These can take any JSON shape."
            }
          },
          "user_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
            "example": "241ma8mf4a"
          }
        }
      },
      "etl_tracks_destination": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "anonymous_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
            "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
          },
          "context": {
            "x-scalar-ignore": true,
            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
            "oneOf": [
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Non-mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "campaign": {
                    "type": "object",
                    "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                    "properties": {
                      "content": {
                        "type": "string"
                      },
                      "medium": {
                        "type": "string",
                        "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                      },
                      "name": {
                        "type": "string",
                        "description": "The campaign name."
                      },
                      "source": {
                        "type": "string",
                        "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                      },
                      "term": {
                        "type": "string",
                        "description": "The keyword term(s) a user came from."
                      }
                    },
                    "additionalProperties": {
                      "type": "string",
                      "x-additionalPropertiesName": "Additional UTM Parameters"
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "page": {
                    "x-scalar-ignore": true,
                    "type": "object",
                    "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                    "properties": {
                      "keywords": {
                        "type": "array",
                        "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                        "items": {
                          "type": "string"
                        }
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the page. Reserved for future use.\n"
                      },
                      "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."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              },
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "app": {
                    "type": "object",
                    "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                    "properties": {
                      "build": {
                        "type": "string",
                        "description": "The specific build number in the app."
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the app."
                      },
                      "namespace": {
                        "type": "string",
                        "description": "The app's namespace."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the app the call originated from."
                      }
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "device": {
                    "type": "object",
                    "description": "Contains information about the device the event originated from.\n",
                    "properties": {
                      "advertisingId": {
                        "type": "string",
                        "description": "The advertising ID is a unique, anonymous ID for advertising."
                      },
                      "id": {
                        "type": "string",
                        "description": "The device ID."
                      },
                      "manufacturer": {
                        "type": "string",
                        "description": "The device manufacturer."
                      },
                      "model": {
                        "type": "string",
                        "description": "The device model."
                      },
                      "name": {
                        "type": "string",
                        "description": "The device name."
                      },
                      "type": {
                        "type": "string",
                        "description": "The device type—android, iOS, etc.",
                        "enum": [
                          "android",
                          "ios"
                        ]
                      },
                      "version": {
                        "type": "string",
                        "description": "The firmware version for the device."
                      }
                    }
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "network": {
                    "type": "object",
                    "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                    "properties": {
                      "bluetooth": {
                        "type": "boolean",
                        "description": "Lets you know if bluetooth is enabled on a device."
                      },
                      "carrier": {
                        "type": "string",
                        "description": "The cellular carrier the phone uses."
                      },
                      "cellular": {
                        "type": "boolean",
                        "description": "Indicates whether the device's cellular connection is enabled or not."
                      },
                      "wifi": {
                        "type": "boolean",
                        "description": "Indicates whether a device's wifi connection is enabled or not."
                      }
                    }
                  },
                  "os": {
                    "type": "object",
                    "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The operating system running on the device."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the OS running on the device."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              }
            ]
          },
          "event": {
            "type": "string",
            "description": "The slug of the event name, mapping to an event-specific table."
          },
          "event_text": {
            "type": "string",
            "description": "The name of the event."
          },
          "id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique identifier for a Data Pipelines event, ensuring that each individual event is unique."
          },
          "properties": {
            "additionalProperties": {
              "x-additionalPropertiesName": "Event Properties"
            },
            "description": "Additional properties sent with the page call. We've listed some common/reserved traits captured by our `Analytics.js` library, but you can add any properties that you might use in another system.",
            "type": "object"
          },
          "received_at": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The Unix timestamp (in seconds) when Data Pipelines receives an event."
          },
          "sent_at": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The Unix timestamp (in seconds) when a library sends an event to Data Pipelines."
          },
          "user_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
            "example": "241ma8mf4a"
          }
        }
      },
      "etl_alias_destination": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique identifier for a Data Pipelines event, ensuring that each individual event is unique."
          },
          "previous_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The anonymousId or userId value that you want to merge into the canonical profile."
          },
          "received_at": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The Unix timestamp (in seconds) when Data Pipelines receives an event."
          },
          "sent_at": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The Unix timestamp (in seconds) when a library sends an event to Data Pipelines."
          },
          "user_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
            "example": "241ma8mf4a"
          }
        }
      },
      "etl_page_destination": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "anonymous_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
            "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
          },
          "context": {
            "x-scalar-ignore": true,
            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
            "oneOf": [
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Non-mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "campaign": {
                    "type": "object",
                    "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                    "properties": {
                      "content": {
                        "type": "string"
                      },
                      "medium": {
                        "type": "string",
                        "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                      },
                      "name": {
                        "type": "string",
                        "description": "The campaign name."
                      },
                      "source": {
                        "type": "string",
                        "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                      },
                      "term": {
                        "type": "string",
                        "description": "The keyword term(s) a user came from."
                      }
                    },
                    "additionalProperties": {
                      "type": "string",
                      "x-additionalPropertiesName": "Additional UTM Parameters"
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "page": {
                    "x-scalar-ignore": true,
                    "type": "object",
                    "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                    "properties": {
                      "keywords": {
                        "type": "array",
                        "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                        "items": {
                          "type": "string"
                        }
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the page. Reserved for future use.\n"
                      },
                      "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."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              },
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "app": {
                    "type": "object",
                    "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                    "properties": {
                      "build": {
                        "type": "string",
                        "description": "The specific build number in the app."
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the app."
                      },
                      "namespace": {
                        "type": "string",
                        "description": "The app's namespace."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the app the call originated from."
                      }
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "device": {
                    "type": "object",
                    "description": "Contains information about the device the event originated from.\n",
                    "properties": {
                      "advertisingId": {
                        "type": "string",
                        "description": "The advertising ID is a unique, anonymous ID for advertising."
                      },
                      "id": {
                        "type": "string",
                        "description": "The device ID."
                      },
                      "manufacturer": {
                        "type": "string",
                        "description": "The device manufacturer."
                      },
                      "model": {
                        "type": "string",
                        "description": "The device model."
                      },
                      "name": {
                        "type": "string",
                        "description": "The device name."
                      },
                      "type": {
                        "type": "string",
                        "description": "The device type—android, iOS, etc.",
                        "enum": [
                          "android",
                          "ios"
                        ]
                      },
                      "version": {
                        "type": "string",
                        "description": "The firmware version for the device."
                      }
                    }
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "network": {
                    "type": "object",
                    "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                    "properties": {
                      "bluetooth": {
                        "type": "boolean",
                        "description": "Lets you know if bluetooth is enabled on a device."
                      },
                      "carrier": {
                        "type": "string",
                        "description": "The cellular carrier the phone uses."
                      },
                      "cellular": {
                        "type": "boolean",
                        "description": "Indicates whether the device's cellular connection is enabled or not."
                      },
                      "wifi": {
                        "type": "boolean",
                        "description": "Indicates whether a device's wifi connection is enabled or not."
                      }
                    }
                  },
                  "os": {
                    "type": "object",
                    "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The operating system running on the device."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the OS running on the device."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              }
            ]
          },
          "id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique identifier for a Data Pipelines event, ensuring that each individual event is unique."
          },
          "properties": {
            "additionalProperties": {
              "x-additionalPropertiesName": "Page Properties"
            },
            "description": "Additional properties sent with the page call. We've listed some common/reserved traits captured by our `Analytics.js` library, but you can add any properties that you might use in another system.",
            "properties": {
              "category": {
                "type": "string",
                "description": "The category of the page. This might be useful if you have a single page routes or have a flattened URL structure."
              },
              "path": {
                "type": "string",
                "description": "The path of the page. This defaults to `location.pathname`, but can be overridden.",
                "example": "/page"
              },
              "referrer": {
                "type": "string",
                "description": "The referrer of the page, if applicable. This defaults to `document.referrer`, but can be overridden.",
                "example": "http://www.google.com/search?q=example"
              },
              "search": {
                "type": "string",
                "description": "The search query in the URL, if present. This defaults to `location.search`, but can be overridden.",
                "example": "?q=sfgiants"
              },
              "title": {
                "type": "string",
                "description": "The title of the page. This defaults to `document.title`, but can be overridden.",
                "example": "Page | Example.com"
              },
              "url": {
                "type": "string",
                "description": "The URL of the page. This defaults to a canonical url if available, and falls back to `document.location.href`.",
                "example": "https://www.example.com/page/"
              }
            },
            "type": "object"
          },
          "received_at": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The Unix timestamp (in seconds) when Data Pipelines receives an event."
          },
          "sent_at": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The Unix timestamp (in seconds) when a library sends an event to Data Pipelines."
          },
          "user_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
            "example": "241ma8mf4a"
          }
        }
      },
      "etl_screen_destination": {
        "x-scalar-ignore": true,
        "type": "object",
        "properties": {
          "anonymous_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
            "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
          },
          "context": {
            "x-scalar-ignore": true,
            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
            "oneOf": [
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Non-mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "campaign": {
                    "type": "object",
                    "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                    "properties": {
                      "content": {
                        "type": "string"
                      },
                      "medium": {
                        "type": "string",
                        "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                      },
                      "name": {
                        "type": "string",
                        "description": "The campaign name."
                      },
                      "source": {
                        "type": "string",
                        "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                      },
                      "term": {
                        "type": "string",
                        "description": "The keyword term(s) a user came from."
                      }
                    },
                    "additionalProperties": {
                      "type": "string",
                      "x-additionalPropertiesName": "Additional UTM Parameters"
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "page": {
                    "x-scalar-ignore": true,
                    "type": "object",
                    "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                    "properties": {
                      "keywords": {
                        "type": "array",
                        "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                        "items": {
                          "type": "string"
                        }
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the page. Reserved for future use.\n"
                      },
                      "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."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              },
              {
                "x-scalar-ignore": true,
                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                "title": "Mobile",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                  },
                  "app": {
                    "type": "object",
                    "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                    "properties": {
                      "build": {
                        "type": "string",
                        "description": "The specific build number in the app."
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the app."
                      },
                      "namespace": {
                        "type": "string",
                        "description": "The app's namespace."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the app the call originated from."
                      }
                    }
                  },
                  "channel": {
                    "type": "string",
                    "enum": [
                      "browser",
                      "server",
                      "mobile"
                    ],
                    "description": "The channel the event originated from."
                  },
                  "device": {
                    "type": "object",
                    "description": "Contains information about the device the event originated from.\n",
                    "properties": {
                      "advertisingId": {
                        "type": "string",
                        "description": "The advertising ID is a unique, anonymous ID for advertising."
                      },
                      "id": {
                        "type": "string",
                        "description": "The device ID."
                      },
                      "manufacturer": {
                        "type": "string",
                        "description": "The device manufacturer."
                      },
                      "model": {
                        "type": "string",
                        "description": "The device model."
                      },
                      "name": {
                        "type": "string",
                        "description": "The device name."
                      },
                      "type": {
                        "type": "string",
                        "description": "The device type—android, iOS, etc.",
                        "enum": [
                          "android",
                          "ios"
                        ]
                      },
                      "version": {
                        "type": "string",
                        "description": "The firmware version for the device."
                      }
                    }
                  },
                  "ip": {
                    "type": "string",
                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                  },
                  "locale": {
                    "type": "string",
                    "description": "The locale string for the current user, e.g. `en-US`."
                  },
                  "network": {
                    "type": "object",
                    "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                    "properties": {
                      "bluetooth": {
                        "type": "boolean",
                        "description": "Lets you know if bluetooth is enabled on a device."
                      },
                      "carrier": {
                        "type": "string",
                        "description": "The cellular carrier the phone uses."
                      },
                      "cellular": {
                        "type": "boolean",
                        "description": "Indicates whether the device's cellular connection is enabled or not."
                      },
                      "wifi": {
                        "type": "boolean",
                        "description": "Indicates whether a device's wifi connection is enabled or not."
                      }
                    }
                  },
                  "os": {
                    "type": "object",
                    "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                    "properties": {
                      "name": {
                        "type": "string",
                        "description": "The operating system running on the device."
                      },
                      "version": {
                        "type": "string",
                        "description": "The version of the OS running on the device."
                      }
                    }
                  },
                  "userAgent": {
                    "type": "string",
                    "description": "The user agent of the device making the request"
                  }
                }
              }
            ]
          },
          "id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "A unique identifier for a Data Pipelines event, ensuring that each individual event is unique."
          },
          "properties": {
            "additionalProperties": {
              "x-additionalPropertiesName": "Additional event properties",
              "description": "Properties that you sent in the event. These can take any JSON shape."
            },
            "description": "Additional properties that you sent in your screen event",
            "type": "object"
          },
          "received_at": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The Unix timestamp (in seconds) when Data Pipelines receives an event."
          },
          "sent_at": {
            "x-scalar-ignore": true,
            "type": "integer",
            "description": "The Unix timestamp (in seconds) when a library sends an event to Data Pipelines."
          },
          "user_id": {
            "x-scalar-ignore": true,
            "type": "string",
            "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
            "example": "241ma8mf4a"
          }
        }
      }
    },
    "securitySchemes": {
      "Basic-Auth": {
        "type": "http",
        "scheme": "basic",
        "description": "The Data Pipelines API uses a basic authentication scheme with your API key. Because basic authorization typically expects a username and password combination, you'll use the API Key as the username and leave the password blank—base64 encoding your credentials in the format `API_key:`.\n"
      }
    },
    "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."
      },
      "429": {
        "description": "Your request is over the 10-per-second limit."
      }
    }
  },
  "openapi": "3.1.0",
  "info": {
    "version": "1.0.0",
    "title": "Pipelines API",
    "description": "# Overview\nIn general, you'll consume this API through one of our source libraries—our JavaScript client library or any of our server packages. But you can also integrate directly with our REST API if you don't want to install one of our libraries or you want to support a source that we don't have a native integration with.\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://cdp.customer.io |\n| EU | https://cdp-eu.customer.io |\n\nIf you're in our EU region, you'll need to specify the EU URL when you initialize our server-side libraries. If you use our JavaScript client library, we'll set your region and route data/calls automatically.\n\n# Authentication & rate limits\n\nOur API uses basic authorization with the API key from your **Customer.io API** integration. If you use Postman or another platform that helps you send API calls, this API key is the *Username*, and the *Password* is blank.\n\n# Get an API key\n\nYou can get a Pipelines API key by [setting up the **Customer.io API** integration](/integrations/data-in/connections/http-api/) in your workspace.\n\nNow you can use the key as a username with a blank password to authenticate and send requests to our API.\n\n## Rate and payload limits\n\nA request is limited to 32KB. A batch request is limited to 500KB total and 32KB per call in the request. If a request exceeds these limits, you will receive a 200 response, but the request will not go through.\n\nThe Data Pipelines API has a rate limit of 3000 requests per 3 seconds 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<div class=\"fly-panel fly-light regionUS\">\n<div class=\"fly-panel-body us-server\">\n<p class=\"text--bold\">Warning</p>\n<p>Rate limits are subject to change. We may adjust these thresholds to ensure stable performance for all customers.</p>\n</div></div>\n\n# Try out our postman collection\n\nWe've generated a Postman collection with all of the endpoints organized as you'll find them on this page, with a starter environment (mainly to contain your API key). For our API endpoints, **your API key is your username and your password is blank**.\n\nYou'll notice that payloads on this page can contain significantly more information than the payloads that appear in our collection. We've limited our collections to the fields that you'll _typically_ use when you send calls to our APIs and libraries, so it's easier to get started. But you can add additional fields to payloads—like `context`, `integrations`, and so on—if you want.\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[<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-287dd370-3d8b-4a71-80fe-75d6b7c7ff61?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D23697545-287dd370-3d8b-4a71-80fe-75d6b7c7ff61%26entityType%3Dcollection%26workspaceId%3D35e4a70d-66bd-4b3e-8a0c-57f9e32080dc#?env%5BCustomer.io%20Data%20Pipelines%20API%20Environment%5D=W3sia2V5IjoiY2RwX2FwaV91cmwiLCJ0eXBlIjoiZGVmYXVsdCIsInZhbHVlIjoiY2RwLmN1c3RvbWVyLmlvIiwiZW5hYmxlZCI6dHJ1ZX0seyJrZXkiOiJ3cml0ZV9rZXkiLCJ0eXBlIjoic2VjcmV0IiwidmFsdWUiOiIiLCJlbmFibGVkIjp0cnVlfV0=)\n\n# Deletions, suppressions, and other semantic events\n\nYou'll notice that this API only contains `POST` calls; we don't have `DELETE` operations. For delete operations, and other operations that don't have bespoke endpoints, we use *semantic events*.\n\nWhen you need to do things like deleting people, removing relationships, and other sorts of things, you'll send a request to the `/track` endpoint with a specific event `name` parameter. The `name` tells us what to do with the request.\n\nFor example, you can send a `track` event with the name `Delete Person` to remove a person from your workspace.\n\nSee [Semantic Events](/integrations/data-in/semantic-events/cio-journeys/) to see Customer.io-specific events.\n\nWe also support semantic events for other kinds of destinations. See [Semantic Events for other destinations](#semantic-events-for-other-destinations) below for more information.\n\n| Event Name | Description |\n|------|--------|\n| `Device Created or Updated` | Adds or updates a mobile device (by token), and associates it with a person |\n| `Device Deleted` | Deletes a device |\n| `User Deleted` | Removes a person from your workspace |\n| `User Suppressed` | Removes a person from your workspace and suppresses their identifiers so you can't add them back to Customer.io. |\n| `User Unsuppressed` | Unsuppresses an identifier so you can add someone back to Customer.io and message them again. |\n| `Relationship Deleted` | Remove a relationship between a person and an object|\n| `Object Deleted` | Remove an object (like an account or company) from your Customer.io workspace|\n| `Report Delivery Event` | Report delivery events for messages|\n\n## Semantic events for other destinations\n\nIn addition to events that have special meanings [in Customer.io](#deletions-suppressions-and-other-semantic-events), we have a number of other events that we support across different kinds of destinations. These uniform events ensure that we'll map event data to destinations consistently—so you can move from one provider to another without having to change your event names or payload structures.\n\nFor example, our ecommerce events work across any ecommerce platform we integrate with—even if those ecommerce platforms have different APIs or payload structures.\n\nSee [Semantic Events](/integrations/data-in/semantic-events/getting-started/) to learn more.\n\n* [A/B Test](/integrations/api/cdp/ab-test/)\n* [Ecommerce](/integrations/api/cdp/ecommerce/)\n* [Email](/integrations/api/cdp/email/)\n* [Live Chat](/integrations/api/cdp/live-chat/)\n* [Mobile App](/integrations/api/cdp/mobile-app/)\n* [Video](/integrations/api/cdp/video/)\n\n## Backfilling data\n\nBy default, Customer.io records a `timestamp` when we receive requests. If you're sending data to Customer.io in real time, you don't need to worry about the timestamp.\n\nIf you want to backfill requests, you can send a `timestamp`—an ISO 8601 date-time string—telling us when the request occurred. This provides a way to log `track` and `page` calls when the activities _actually_ took place.\n"
  },
  "servers": [
    {
      "url": "https://cdp.customer.io/v1",
      "description": "The base URL for all Data Pipelines calls in our United States (US) region."
    },
    {
      "url": "https://cdp-eu.customer.io/v1",
      "description": "The base URL for all Data Pipelines calls in our European Union (EU) region."
    }
  ],
  "paths": {
    "/identify": {
      "post": {
        "operationId": "identify",
        "summary": "Add and Update People",
        "description": "Identifies a person and assigns `traits` to them.\n\nIn most cases, you'll identify people with a `userId` or an `anonymousId`. But when you use Customer.io as a destination, you can pass an empty `userId` or `anonymousId`, and identify people by their `email` trait.\n\n**When you use our libraries, you'll typically only provide an ID and `traits`. The libraries fill in the rest of the payload automatically.**\n",
        "servers": [
          {
            "url": "https://cdp.customer.io/v1",
            "description": "This is a Data Pipeline API."
          }
        ],
        "security": [
          {
            "Basic-Auth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Strict-Mode",
            "in": "header",
            "description": "When set to `1`, enables strict validation that returns proper HTTP error codes (400/401) for validation failures. When not set or set to any other value, the API operates in permissive mode, logging errors but returning HTTP 200. [Learn more](/integrations/api/track-vs-cdp-api/#pipelines-strict-mode)\n",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "1"
              ]
            },
            "example": "1"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "x-scalar-ignore": true,
                "oneOf": [
                  {
                    "x-scalar-ignore": true,
                    "title": "Known User",
                    "properties": {
                      "userId": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
                        "example": "241ma8mf4a"
                      },
                      "anonymousId": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
                        "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
                      },
                      "context": {
                        "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                        "oneOf": [
                          {
                            "x-scalar-ignore": true,
                            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                            "title": "Non-mobile",
                            "properties": {
                              "active": {
                                "type": "boolean",
                                "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                              },
                              "campaign": {
                                "type": "object",
                                "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                                "properties": {
                                  "content": {
                                    "type": "string"
                                  },
                                  "medium": {
                                    "type": "string",
                                    "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                                  },
                                  "name": {
                                    "type": "string",
                                    "description": "The campaign name."
                                  },
                                  "source": {
                                    "type": "string",
                                    "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                                  },
                                  "term": {
                                    "type": "string",
                                    "description": "The keyword term(s) a user came from."
                                  }
                                },
                                "additionalProperties": {
                                  "type": "string",
                                  "x-additionalPropertiesName": "Additional UTM Parameters"
                                }
                              },
                              "channel": {
                                "type": "string",
                                "enum": [
                                  "browser",
                                  "server",
                                  "mobile"
                                ],
                                "description": "The channel the event originated from."
                              },
                              "ip": {
                                "type": "string",
                                "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                              },
                              "locale": {
                                "type": "string",
                                "description": "The locale string for the current user, e.g. `en-US`."
                              },
                              "page": {
                                "x-scalar-ignore": true,
                                "type": "object",
                                "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                                "properties": {
                                  "keywords": {
                                    "type": "array",
                                    "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "name": {
                                    "type": "string",
                                    "description": "The name of the page. Reserved for future use.\n"
                                  },
                                  "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."
                                  }
                                }
                              },
                              "userAgent": {
                                "type": "string",
                                "description": "The user agent of the device making the request"
                              }
                            }
                          },
                          {
                            "x-scalar-ignore": true,
                            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                            "title": "Mobile",
                            "properties": {
                              "active": {
                                "type": "boolean",
                                "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                              },
                              "app": {
                                "type": "object",
                                "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                                "properties": {
                                  "build": {
                                    "type": "string",
                                    "description": "The specific build number in the app."
                                  },
                                  "name": {
                                    "type": "string",
                                    "description": "The name of the app."
                                  },
                                  "namespace": {
                                    "type": "string",
                                    "description": "The app's namespace."
                                  },
                                  "version": {
                                    "type": "string",
                                    "description": "The version of the app the call originated from."
                                  }
                                }
                              },
                              "channel": {
                                "type": "string",
                                "enum": [
                                  "browser",
                                  "server",
                                  "mobile"
                                ],
                                "description": "The channel the event originated from."
                              },
                              "device": {
                                "type": "object",
                                "description": "Contains information about the device the event originated from.\n",
                                "properties": {
                                  "advertisingId": {
                                    "type": "string",
                                    "description": "The advertising ID is a unique, anonymous ID for advertising."
                                  },
                                  "id": {
                                    "type": "string",
                                    "description": "The device ID."
                                  },
                                  "manufacturer": {
                                    "type": "string",
                                    "description": "The device manufacturer."
                                  },
                                  "model": {
                                    "type": "string",
                                    "description": "The device model."
                                  },
                                  "name": {
                                    "type": "string",
                                    "description": "The device name."
                                  },
                                  "type": {
                                    "type": "string",
                                    "description": "The device type—android, iOS, etc.",
                                    "enum": [
                                      "android",
                                      "ios"
                                    ]
                                  },
                                  "version": {
                                    "type": "string",
                                    "description": "The firmware version for the device."
                                  }
                                }
                              },
                              "ip": {
                                "type": "string",
                                "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                              },
                              "locale": {
                                "type": "string",
                                "description": "The locale string for the current user, e.g. `en-US`."
                              },
                              "network": {
                                "type": "object",
                                "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                                "properties": {
                                  "bluetooth": {
                                    "type": "boolean",
                                    "description": "Lets you know if bluetooth is enabled on a device."
                                  },
                                  "carrier": {
                                    "type": "string",
                                    "description": "The cellular carrier the phone uses."
                                  },
                                  "cellular": {
                                    "type": "boolean",
                                    "description": "Indicates whether the device's cellular connection is enabled or not."
                                  },
                                  "wifi": {
                                    "type": "boolean",
                                    "description": "Indicates whether a device's wifi connection is enabled or not."
                                  }
                                }
                              },
                              "os": {
                                "type": "object",
                                "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                                "properties": {
                                  "name": {
                                    "type": "string",
                                    "description": "The operating system running on the device."
                                  },
                                  "version": {
                                    "type": "string",
                                    "description": "The version of the OS running on the device."
                                  }
                                }
                              },
                              "userAgent": {
                                "type": "string",
                                "description": "The user agent of the device making the request"
                              }
                            }
                          }
                        ]
                      },
                      "integrations": {
                        "x-scalar-ignore": true,
                        "type": "object",
                        "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                        "additionalProperties": {
                          "type": "boolean",
                          "x-additionalPropertiesName": "Enabled/Disabled integrations"
                        },
                        "example": {
                          "All": true,
                          "Salesforce": false
                        }
                      },
                      "messageId": {
                        "type": "string",
                        "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                      },
                      "originalTimestamp": {
                        "type": "string",
                        "format": "date-time",
                        "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                      },
                      "receivedAt": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                      },
                      "sentAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                      },
                      "timestamp": {
                        "type": "string",
                        "format": "date-time",
                        "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                      },
                      "traits": {
                        "type": "object",
                        "description": "Additional properties that you know about a person. We've listed some common/reserved traits below, but you can add any traits that you might use in another system.",
                        "properties": {
                          "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>`. To update channel preferences, use `\"cio_subscription_preferences.channels.<channel>\":<boolean>`.",
                            "type": "object",
                            "properties": {
                              "channels": {
                                "type": "object",
                                "description": "Contains channel subscription preferences. Keys are channel type names.",
                                "additionalProperties": {
                                  "x-additionalPropertiesName": "channel_type",
                                  "description": "Each property is a boolean keyed by the channel type name: `email`, `sms`, `push`, `in_app`, `whatsapp`, `slack`, `line`, or `inbox`. `true` means a person is subscribed to the channel; `false` means they are unsubscribed. Both the topic and channel must be subscribed for a message to send.",
                                  "type": "boolean"
                                },
                                "example": {
                                  "email": true,
                                  "push": false
                                }
                              },
                              "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"
                                },
                                "example": {
                                  "topic_1": true,
                                  "topic_2": false
                                }
                              }
                            }
                          },
                          "createdAt": {
                            "type": "string",
                            "format": "date-time",
                            "description": "We recommend that you pass date-time values as ISO 8601 date-time strings. We convert this value to fit destinations where appropriate."
                          },
                          "email": {
                            "type": "string",
                            "description": "A person's email address. If you pass an email address as the `userId`, Customer.io sets this trait for you."
                          },
                          "unsubscribed": {
                            "description": "If `true`, a person is unsubscribed from emails, SMS, WhatsApp, and push notifications (not in-app messages). Any casing of \"true\" (i.e. TRUE, true, tRUe, etc.), 1, or \"1\" means the person is unsubscribed. If `false`, absent, or any value not considered \"true\", a person is globally subscribed, or if you enabled a subscription center, a person will receive messages based on their `cio_subscription_preferences`.",
                            "type": "boolean"
                          }
                        },
                        "additionalProperties": {
                          "x-additionalPropertiesName": "Additional Traits",
                          "description": "Traits that you want to set on a person. These can take any JSON shape."
                        }
                      },
                      "version": {
                        "readOnly": true,
                        "type": "number",
                        "description": "The version of the API that received the event, automatically set by Customer.io."
                      }
                    },
                    "required": [
                      "userId"
                    ]
                  },
                  {
                    "x-scalar-ignore": true,
                    "title": "Anonymous User",
                    "properties": {
                      "anonymousId": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
                        "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
                      },
                      "context": {
                        "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                        "oneOf": [
                          {
                            "x-scalar-ignore": true,
                            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                            "title": "Non-mobile",
                            "properties": {
                              "active": {
                                "type": "boolean",
                                "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                              },
                              "campaign": {
                                "type": "object",
                                "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                                "properties": {
                                  "content": {
                                    "type": "string"
                                  },
                                  "medium": {
                                    "type": "string",
                                    "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                                  },
                                  "name": {
                                    "type": "string",
                                    "description": "The campaign name."
                                  },
                                  "source": {
                                    "type": "string",
                                    "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                                  },
                                  "term": {
                                    "type": "string",
                                    "description": "The keyword term(s) a user came from."
                                  }
                                },
                                "additionalProperties": {
                                  "type": "string",
                                  "x-additionalPropertiesName": "Additional UTM Parameters"
                                }
                              },
                              "channel": {
                                "type": "string",
                                "enum": [
                                  "browser",
                                  "server",
                                  "mobile"
                                ],
                                "description": "The channel the event originated from."
                              },
                              "ip": {
                                "type": "string",
                                "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                              },
                              "locale": {
                                "type": "string",
                                "description": "The locale string for the current user, e.g. `en-US`."
                              },
                              "page": {
                                "x-scalar-ignore": true,
                                "type": "object",
                                "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                                "properties": {
                                  "keywords": {
                                    "type": "array",
                                    "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "name": {
                                    "type": "string",
                                    "description": "The name of the page. Reserved for future use.\n"
                                  },
                                  "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."
                                  }
                                }
                              },
                              "userAgent": {
                                "type": "string",
                                "description": "The user agent of the device making the request"
                              }
                            }
                          },
                          {
                            "x-scalar-ignore": true,
                            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                            "title": "Mobile",
                            "properties": {
                              "active": {
                                "type": "boolean",
                                "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                              },
                              "app": {
                                "type": "object",
                                "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                                "properties": {
                                  "build": {
                                    "type": "string",
                                    "description": "The specific build number in the app."
                                  },
                                  "name": {
                                    "type": "string",
                                    "description": "The name of the app."
                                  },
                                  "namespace": {
                                    "type": "string",
                                    "description": "The app's namespace."
                                  },
                                  "version": {
                                    "type": "string",
                                    "description": "The version of the app the call originated from."
                                  }
                                }
                              },
                              "channel": {
                                "type": "string",
                                "enum": [
                                  "browser",
                                  "server",
                                  "mobile"
                                ],
                                "description": "The channel the event originated from."
                              },
                              "device": {
                                "type": "object",
                                "description": "Contains information about the device the event originated from.\n",
                                "properties": {
                                  "advertisingId": {
                                    "type": "string",
                                    "description": "The advertising ID is a unique, anonymous ID for advertising."
                                  },
                                  "id": {
                                    "type": "string",
                                    "description": "The device ID."
                                  },
                                  "manufacturer": {
                                    "type": "string",
                                    "description": "The device manufacturer."
                                  },
                                  "model": {
                                    "type": "string",
                                    "description": "The device model."
                                  },
                                  "name": {
                                    "type": "string",
                                    "description": "The device name."
                                  },
                                  "type": {
                                    "type": "string",
                                    "description": "The device type—android, iOS, etc.",
                                    "enum": [
                                      "android",
                                      "ios"
                                    ]
                                  },
                                  "version": {
                                    "type": "string",
                                    "description": "The firmware version for the device."
                                  }
                                }
                              },
                              "ip": {
                                "type": "string",
                                "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                              },
                              "locale": {
                                "type": "string",
                                "description": "The locale string for the current user, e.g. `en-US`."
                              },
                              "network": {
                                "type": "object",
                                "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                                "properties": {
                                  "bluetooth": {
                                    "type": "boolean",
                                    "description": "Lets you know if bluetooth is enabled on a device."
                                  },
                                  "carrier": {
                                    "type": "string",
                                    "description": "The cellular carrier the phone uses."
                                  },
                                  "cellular": {
                                    "type": "boolean",
                                    "description": "Indicates whether the device's cellular connection is enabled or not."
                                  },
                                  "wifi": {
                                    "type": "boolean",
                                    "description": "Indicates whether a device's wifi connection is enabled or not."
                                  }
                                }
                              },
                              "os": {
                                "type": "object",
                                "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                                "properties": {
                                  "name": {
                                    "type": "string",
                                    "description": "The operating system running on the device."
                                  },
                                  "version": {
                                    "type": "string",
                                    "description": "The version of the OS running on the device."
                                  }
                                }
                              },
                              "userAgent": {
                                "type": "string",
                                "description": "The user agent of the device making the request"
                              }
                            }
                          }
                        ]
                      },
                      "integrations": {
                        "x-scalar-ignore": true,
                        "type": "object",
                        "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                        "additionalProperties": {
                          "type": "boolean",
                          "x-additionalPropertiesName": "Enabled/Disabled integrations"
                        },
                        "example": {
                          "All": true,
                          "Salesforce": false
                        }
                      },
                      "messageId": {
                        "type": "string",
                        "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                      },
                      "originalTimestamp": {
                        "type": "string",
                        "format": "date-time",
                        "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                      },
                      "receivedAt": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                      },
                      "sentAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                      },
                      "timestamp": {
                        "type": "string",
                        "format": "date-time",
                        "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                      },
                      "traits": {
                        "type": "object",
                        "description": "Traits you know about the person. Customer.io ignores anonymous `identify` calls, but our JavaScript client stores these traits and attaches them when you later identify the person with a `userId`.",
                        "additionalProperties": {
                          "x-additionalPropertiesName": "Traits",
                          "description": "Traits that you want to set on a person. These can take any JSON shape."
                        }
                      },
                      "version": {
                        "readOnly": true,
                        "type": "number",
                        "description": "The version of the API that received the event, automatically set by Customer.io."
                      }
                    },
                    "required": [
                      "anonymousId"
                    ]
                  }
                ],
                "example": {
                  "userId": "97980cfea0067",
                  "traits": {
                    "email": "cool.person@example.com",
                    "name": "Cool Person",
                    "likes_baseball": true,
                    "games_attended": 5
                  }
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "json",
            "label": "JSON",
            "source": "{\n  \"userId\": \"97980cfea0067\",\n  \"traits\": {\n    \"email\": \"cool.person@example.com\",\n    \"name\": \"Cool Person\",\n    \"likes_baseball\": true,\n    \"games_attended\": 5\n  }\n}"
          },
          {
            "label": "cURL",
            "lang": "shell",
            "source": "curl --request POST \\\n  --url https://cdp.customer.io/v1/identify \\\n  -u api_key: \\\n  -H 'content-type: application/json' \\\n  --data-raw '\n  {\n      \"userId\": \"97980cfea0067\",\n      \"traits\": {\n          \"name\": \"Cool Person\",\n          \"email\": \"cool.person@example.com\",\n          \"likes_baseball\": true,\n          \"games_attended\": 5\n      }\n  }'\n"
          },
          {
            "label": "JavaScript (SDK)",
            "lang": "javascript",
            "source": "analytics.identify(\"97980cfea0067\", {\n  name: \"Cool Person\",\n  email: \"cool.person@example.com\",\n  likes_baseball: true,\n  games_attended: 5\n});\n"
          },
          {
            "label": "Node.js (SDK)",
            "lang": "javascript",
            "source": "analytics.identify({\n  userId: '019mr8mf4r',\n  traits: {\n    name: 'Cool Person',\n    email: 'cool.person@example.com',\n    plan: 'Enterprise',\n    friends: 42\n  }\n});\n"
          },
          {
            "label": "Python (SDK)",
            "lang": "python",
            "source": "analytics.identify('f4ca124298', {\n  email: 'cool.person@example.com'\n  first_name: 'cool',\n  last_name: 'person'\n})\n"
          },
          {
            "label": "Go (SDK)",
            "lang": "go",
            "source": "client.Enqueue(analytics.Identify{\n  UserId: \"019mr8mf4r\",\n  Traits: analytics.NewTraits().\n    SetName(\"Cool Person\").\n    SetEmail(\"cool.person@example.com\").\n    Set(\"plan\", \"Enterprise\").\n    Set(\"fav_number\", 42),\n})\n"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful request returns an empty object response."
          }
        }
      }
    },
    "/track": {
      "post": {
        "operationId": "track",
        "summary": "Track events",
        "description": "Send an event associated with a person. The `track` call is how you record the things that people do on your website or in your app.\n\nWhile this endpoint takes any `event` name you want to send, Customer.io also supports \"semantic events.\" These are specific `event` names (like `User Deleted` or `Device Created or Updated`) that perform special operations in Customer.io like deleting people, adding mobile devices to profiles, and so on. See the [Customer.io Semantic Events documentation](/integrations/api/cdp/customerio/) for complete schemas and examples.\n\n**When you use our libraries, you'll typically only provide an `event`, an ID for the person, and `properties`. The libraries fill in the rest of the payload automatically.**\n",
        "servers": [
          {
            "url": "https://cdp.customer.io/v1",
            "description": "This is a Data Pipeline API."
          }
        ],
        "security": [
          {
            "Basic-Auth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Strict-Mode",
            "in": "header",
            "description": "When set to `1`, enables strict validation that returns proper HTTP error codes (400/401) for validation failures. When not set or set to any other value, the API operates in permissive mode, logging errors but returning HTTP 200. [Learn more](/integrations/api/track-vs-cdp-api/#pipelines-strict-mode)\n",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "1"
              ]
            },
            "example": "1"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "x-scalar-ignore": true,
                "oneOf": [
                  {
                    "x-scalar-ignore": true,
                    "title": "Custom event",
                    "oneOf": [
                      {
                        "x-scalar-ignore": true,
                        "title": "Known User",
                        "properties": {
                          "event": {
                            "type": "string",
                            "description": "The name of the event",
                            "example": "new_account"
                          },
                          "userId": {
                            "x-scalar-ignore": true,
                            "type": "string",
                            "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
                            "example": "241ma8mf4a"
                          },
                          "context": {
                            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                            "oneOf": [
                              {
                                "x-scalar-ignore": true,
                                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                                "title": "Non-mobile",
                                "properties": {
                                  "active": {
                                    "type": "boolean",
                                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                  },
                                  "campaign": {
                                    "type": "object",
                                    "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                                    "properties": {
                                      "content": {
                                        "type": "string"
                                      },
                                      "medium": {
                                        "type": "string",
                                        "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                                      },
                                      "name": {
                                        "type": "string",
                                        "description": "The campaign name."
                                      },
                                      "source": {
                                        "type": "string",
                                        "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                                      },
                                      "term": {
                                        "type": "string",
                                        "description": "The keyword term(s) a user came from."
                                      }
                                    },
                                    "additionalProperties": {
                                      "type": "string",
                                      "x-additionalPropertiesName": "Additional UTM Parameters"
                                    }
                                  },
                                  "channel": {
                                    "type": "string",
                                    "enum": [
                                      "browser",
                                      "server",
                                      "mobile"
                                    ],
                                    "description": "The channel the event originated from."
                                  },
                                  "ip": {
                                    "type": "string",
                                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                  },
                                  "locale": {
                                    "type": "string",
                                    "description": "The locale string for the current user, e.g. `en-US`."
                                  },
                                  "page": {
                                    "x-scalar-ignore": true,
                                    "type": "object",
                                    "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                                    "properties": {
                                      "keywords": {
                                        "type": "array",
                                        "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                                        "items": {
                                          "type": "string"
                                        }
                                      },
                                      "name": {
                                        "type": "string",
                                        "description": "The name of the page. Reserved for future use.\n"
                                      },
                                      "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."
                                      }
                                    }
                                  },
                                  "userAgent": {
                                    "type": "string",
                                    "description": "The user agent of the device making the request"
                                  }
                                }
                              },
                              {
                                "x-scalar-ignore": true,
                                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                                "title": "Mobile",
                                "properties": {
                                  "active": {
                                    "type": "boolean",
                                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                  },
                                  "app": {
                                    "type": "object",
                                    "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                                    "properties": {
                                      "build": {
                                        "type": "string",
                                        "description": "The specific build number in the app."
                                      },
                                      "name": {
                                        "type": "string",
                                        "description": "The name of the app."
                                      },
                                      "namespace": {
                                        "type": "string",
                                        "description": "The app's namespace."
                                      },
                                      "version": {
                                        "type": "string",
                                        "description": "The version of the app the call originated from."
                                      }
                                    }
                                  },
                                  "channel": {
                                    "type": "string",
                                    "enum": [
                                      "browser",
                                      "server",
                                      "mobile"
                                    ],
                                    "description": "The channel the event originated from."
                                  },
                                  "device": {
                                    "type": "object",
                                    "description": "Contains information about the device the event originated from.\n",
                                    "properties": {
                                      "advertisingId": {
                                        "type": "string",
                                        "description": "The advertising ID is a unique, anonymous ID for advertising."
                                      },
                                      "id": {
                                        "type": "string",
                                        "description": "The device ID."
                                      },
                                      "manufacturer": {
                                        "type": "string",
                                        "description": "The device manufacturer."
                                      },
                                      "model": {
                                        "type": "string",
                                        "description": "The device model."
                                      },
                                      "name": {
                                        "type": "string",
                                        "description": "The device name."
                                      },
                                      "type": {
                                        "type": "string",
                                        "description": "The device type—android, iOS, etc.",
                                        "enum": [
                                          "android",
                                          "ios"
                                        ]
                                      },
                                      "version": {
                                        "type": "string",
                                        "description": "The firmware version for the device."
                                      }
                                    }
                                  },
                                  "ip": {
                                    "type": "string",
                                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                  },
                                  "locale": {
                                    "type": "string",
                                    "description": "The locale string for the current user, e.g. `en-US`."
                                  },
                                  "network": {
                                    "type": "object",
                                    "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                                    "properties": {
                                      "bluetooth": {
                                        "type": "boolean",
                                        "description": "Lets you know if bluetooth is enabled on a device."
                                      },
                                      "carrier": {
                                        "type": "string",
                                        "description": "The cellular carrier the phone uses."
                                      },
                                      "cellular": {
                                        "type": "boolean",
                                        "description": "Indicates whether the device's cellular connection is enabled or not."
                                      },
                                      "wifi": {
                                        "type": "boolean",
                                        "description": "Indicates whether a device's wifi connection is enabled or not."
                                      }
                                    }
                                  },
                                  "os": {
                                    "type": "object",
                                    "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                                    "properties": {
                                      "name": {
                                        "type": "string",
                                        "description": "The operating system running on the device."
                                      },
                                      "version": {
                                        "type": "string",
                                        "description": "The version of the OS running on the device."
                                      }
                                    }
                                  },
                                  "userAgent": {
                                    "type": "string",
                                    "description": "The user agent of the device making the request"
                                  }
                                }
                              }
                            ]
                          },
                          "integrations": {
                            "x-scalar-ignore": true,
                            "type": "object",
                            "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                            "additionalProperties": {
                              "type": "boolean",
                              "x-additionalPropertiesName": "Enabled/Disabled integrations"
                            },
                            "example": {
                              "All": true,
                              "Salesforce": false
                            }
                          },
                          "messageId": {
                            "type": "string",
                            "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                          },
                          "originalTimestamp": {
                            "type": "string",
                            "format": "date-time",
                            "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                          },
                          "properties": {
                            "additionalProperties": {
                              "x-additionalPropertiesName": "Event Properties",
                              "description": "Additional properties that you want to capture in the event. These can take any JSON shape."
                            },
                            "description": "Additional properties for your event.",
                            "type": "object"
                          },
                          "receivedAt": {
                            "type": "string",
                            "format": "date-time",
                            "readOnly": true,
                            "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                          },
                          "sentAt": {
                            "type": "string",
                            "format": "date-time",
                            "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                          },
                          "timestamp": {
                            "type": "string",
                            "format": "date-time",
                            "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                          },
                          "version": {
                            "readOnly": true,
                            "type": "number",
                            "description": "The version of the API that received the event, automatically set by Customer.io."
                          }
                        },
                        "required": [
                          "userId",
                          "event"
                        ]
                      },
                      {
                        "x-scalar-ignore": true,
                        "title": "Anonymous User",
                        "properties": {
                          "anonymousId": {
                            "x-scalar-ignore": true,
                            "type": "string",
                            "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
                            "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
                          },
                          "event": {
                            "type": "string",
                            "description": "The name of the event",
                            "example": "new_account"
                          },
                          "context": {
                            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                            "oneOf": [
                              {
                                "x-scalar-ignore": true,
                                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                                "title": "Non-mobile",
                                "properties": {
                                  "active": {
                                    "type": "boolean",
                                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                  },
                                  "campaign": {
                                    "type": "object",
                                    "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                                    "properties": {
                                      "content": {
                                        "type": "string"
                                      },
                                      "medium": {
                                        "type": "string",
                                        "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                                      },
                                      "name": {
                                        "type": "string",
                                        "description": "The campaign name."
                                      },
                                      "source": {
                                        "type": "string",
                                        "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                                      },
                                      "term": {
                                        "type": "string",
                                        "description": "The keyword term(s) a user came from."
                                      }
                                    },
                                    "additionalProperties": {
                                      "type": "string",
                                      "x-additionalPropertiesName": "Additional UTM Parameters"
                                    }
                                  },
                                  "channel": {
                                    "type": "string",
                                    "enum": [
                                      "browser",
                                      "server",
                                      "mobile"
                                    ],
                                    "description": "The channel the event originated from."
                                  },
                                  "ip": {
                                    "type": "string",
                                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                  },
                                  "locale": {
                                    "type": "string",
                                    "description": "The locale string for the current user, e.g. `en-US`."
                                  },
                                  "page": {
                                    "x-scalar-ignore": true,
                                    "type": "object",
                                    "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                                    "properties": {
                                      "keywords": {
                                        "type": "array",
                                        "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                                        "items": {
                                          "type": "string"
                                        }
                                      },
                                      "name": {
                                        "type": "string",
                                        "description": "The name of the page. Reserved for future use.\n"
                                      },
                                      "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."
                                      }
                                    }
                                  },
                                  "userAgent": {
                                    "type": "string",
                                    "description": "The user agent of the device making the request"
                                  }
                                }
                              },
                              {
                                "x-scalar-ignore": true,
                                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                                "title": "Mobile",
                                "properties": {
                                  "active": {
                                    "type": "boolean",
                                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                  },
                                  "app": {
                                    "type": "object",
                                    "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                                    "properties": {
                                      "build": {
                                        "type": "string",
                                        "description": "The specific build number in the app."
                                      },
                                      "name": {
                                        "type": "string",
                                        "description": "The name of the app."
                                      },
                                      "namespace": {
                                        "type": "string",
                                        "description": "The app's namespace."
                                      },
                                      "version": {
                                        "type": "string",
                                        "description": "The version of the app the call originated from."
                                      }
                                    }
                                  },
                                  "channel": {
                                    "type": "string",
                                    "enum": [
                                      "browser",
                                      "server",
                                      "mobile"
                                    ],
                                    "description": "The channel the event originated from."
                                  },
                                  "device": {
                                    "type": "object",
                                    "description": "Contains information about the device the event originated from.\n",
                                    "properties": {
                                      "advertisingId": {
                                        "type": "string",
                                        "description": "The advertising ID is a unique, anonymous ID for advertising."
                                      },
                                      "id": {
                                        "type": "string",
                                        "description": "The device ID."
                                      },
                                      "manufacturer": {
                                        "type": "string",
                                        "description": "The device manufacturer."
                                      },
                                      "model": {
                                        "type": "string",
                                        "description": "The device model."
                                      },
                                      "name": {
                                        "type": "string",
                                        "description": "The device name."
                                      },
                                      "type": {
                                        "type": "string",
                                        "description": "The device type—android, iOS, etc.",
                                        "enum": [
                                          "android",
                                          "ios"
                                        ]
                                      },
                                      "version": {
                                        "type": "string",
                                        "description": "The firmware version for the device."
                                      }
                                    }
                                  },
                                  "ip": {
                                    "type": "string",
                                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                  },
                                  "locale": {
                                    "type": "string",
                                    "description": "The locale string for the current user, e.g. `en-US`."
                                  },
                                  "network": {
                                    "type": "object",
                                    "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                                    "properties": {
                                      "bluetooth": {
                                        "type": "boolean",
                                        "description": "Lets you know if bluetooth is enabled on a device."
                                      },
                                      "carrier": {
                                        "type": "string",
                                        "description": "The cellular carrier the phone uses."
                                      },
                                      "cellular": {
                                        "type": "boolean",
                                        "description": "Indicates whether the device's cellular connection is enabled or not."
                                      },
                                      "wifi": {
                                        "type": "boolean",
                                        "description": "Indicates whether a device's wifi connection is enabled or not."
                                      }
                                    }
                                  },
                                  "os": {
                                    "type": "object",
                                    "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                                    "properties": {
                                      "name": {
                                        "type": "string",
                                        "description": "The operating system running on the device."
                                      },
                                      "version": {
                                        "type": "string",
                                        "description": "The version of the OS running on the device."
                                      }
                                    }
                                  },
                                  "userAgent": {
                                    "type": "string",
                                    "description": "The user agent of the device making the request"
                                  }
                                }
                              }
                            ]
                          },
                          "integrations": {
                            "x-scalar-ignore": true,
                            "type": "object",
                            "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                            "additionalProperties": {
                              "type": "boolean",
                              "x-additionalPropertiesName": "Enabled/Disabled integrations"
                            },
                            "example": {
                              "All": true,
                              "Salesforce": false
                            }
                          },
                          "messageId": {
                            "type": "string",
                            "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                          },
                          "originalTimestamp": {
                            "type": "string",
                            "format": "date-time",
                            "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                          },
                          "properties": {
                            "additionalProperties": {
                              "x-additionalPropertiesName": "Event Properties",
                              "description": "Additional properties that you want to capture in the event. These can take any JSON shape."
                            },
                            "description": "Additional properties for your event.",
                            "type": "object"
                          },
                          "receivedAt": {
                            "type": "string",
                            "format": "date-time",
                            "readOnly": true,
                            "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                          },
                          "sentAt": {
                            "type": "string",
                            "format": "date-time",
                            "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                          },
                          "timestamp": {
                            "type": "string",
                            "format": "date-time",
                            "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                          },
                          "version": {
                            "readOnly": true,
                            "type": "number",
                            "description": "The version of the API that received the event, automatically set by Customer.io."
                          }
                        },
                        "required": [
                          "event",
                          "anonymousId"
                        ]
                      },
                      {
                        "x-scalar-ignore": true,
                        "title": "Group",
                        "properties": {
                          "event": {
                            "type": "string",
                            "description": "The name of the event",
                            "example": "new_account"
                          },
                          "groupId": {
                            "type": "string",
                            "description": "The ID of the group you want to attribute an event to. Note that not all destinations allow groups (or their downstream equivalent) to perform groups."
                          },
                          "context": {
                            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                            "oneOf": [
                              {
                                "x-scalar-ignore": true,
                                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                                "title": "Non-mobile",
                                "properties": {
                                  "active": {
                                    "type": "boolean",
                                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                  },
                                  "campaign": {
                                    "type": "object",
                                    "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                                    "properties": {
                                      "content": {
                                        "type": "string"
                                      },
                                      "medium": {
                                        "type": "string",
                                        "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                                      },
                                      "name": {
                                        "type": "string",
                                        "description": "The campaign name."
                                      },
                                      "source": {
                                        "type": "string",
                                        "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                                      },
                                      "term": {
                                        "type": "string",
                                        "description": "The keyword term(s) a user came from."
                                      }
                                    },
                                    "additionalProperties": {
                                      "type": "string",
                                      "x-additionalPropertiesName": "Additional UTM Parameters"
                                    }
                                  },
                                  "channel": {
                                    "type": "string",
                                    "enum": [
                                      "browser",
                                      "server",
                                      "mobile"
                                    ],
                                    "description": "The channel the event originated from."
                                  },
                                  "ip": {
                                    "type": "string",
                                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                  },
                                  "locale": {
                                    "type": "string",
                                    "description": "The locale string for the current user, e.g. `en-US`."
                                  },
                                  "page": {
                                    "x-scalar-ignore": true,
                                    "type": "object",
                                    "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                                    "properties": {
                                      "keywords": {
                                        "type": "array",
                                        "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                                        "items": {
                                          "type": "string"
                                        }
                                      },
                                      "name": {
                                        "type": "string",
                                        "description": "The name of the page. Reserved for future use.\n"
                                      },
                                      "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."
                                      }
                                    }
                                  },
                                  "userAgent": {
                                    "type": "string",
                                    "description": "The user agent of the device making the request"
                                  }
                                }
                              },
                              {
                                "x-scalar-ignore": true,
                                "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                                "title": "Mobile",
                                "properties": {
                                  "active": {
                                    "type": "boolean",
                                    "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                  },
                                  "app": {
                                    "type": "object",
                                    "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                                    "properties": {
                                      "build": {
                                        "type": "string",
                                        "description": "The specific build number in the app."
                                      },
                                      "name": {
                                        "type": "string",
                                        "description": "The name of the app."
                                      },
                                      "namespace": {
                                        "type": "string",
                                        "description": "The app's namespace."
                                      },
                                      "version": {
                                        "type": "string",
                                        "description": "The version of the app the call originated from."
                                      }
                                    }
                                  },
                                  "channel": {
                                    "type": "string",
                                    "enum": [
                                      "browser",
                                      "server",
                                      "mobile"
                                    ],
                                    "description": "The channel the event originated from."
                                  },
                                  "device": {
                                    "type": "object",
                                    "description": "Contains information about the device the event originated from.\n",
                                    "properties": {
                                      "advertisingId": {
                                        "type": "string",
                                        "description": "The advertising ID is a unique, anonymous ID for advertising."
                                      },
                                      "id": {
                                        "type": "string",
                                        "description": "The device ID."
                                      },
                                      "manufacturer": {
                                        "type": "string",
                                        "description": "The device manufacturer."
                                      },
                                      "model": {
                                        "type": "string",
                                        "description": "The device model."
                                      },
                                      "name": {
                                        "type": "string",
                                        "description": "The device name."
                                      },
                                      "type": {
                                        "type": "string",
                                        "description": "The device type—android, iOS, etc.",
                                        "enum": [
                                          "android",
                                          "ios"
                                        ]
                                      },
                                      "version": {
                                        "type": "string",
                                        "description": "The firmware version for the device."
                                      }
                                    }
                                  },
                                  "ip": {
                                    "type": "string",
                                    "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                  },
                                  "locale": {
                                    "type": "string",
                                    "description": "The locale string for the current user, e.g. `en-US`."
                                  },
                                  "network": {
                                    "type": "object",
                                    "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                                    "properties": {
                                      "bluetooth": {
                                        "type": "boolean",
                                        "description": "Lets you know if bluetooth is enabled on a device."
                                      },
                                      "carrier": {
                                        "type": "string",
                                        "description": "The cellular carrier the phone uses."
                                      },
                                      "cellular": {
                                        "type": "boolean",
                                        "description": "Indicates whether the device's cellular connection is enabled or not."
                                      },
                                      "wifi": {
                                        "type": "boolean",
                                        "description": "Indicates whether a device's wifi connection is enabled or not."
                                      }
                                    }
                                  },
                                  "os": {
                                    "type": "object",
                                    "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                                    "properties": {
                                      "name": {
                                        "type": "string",
                                        "description": "The operating system running on the device."
                                      },
                                      "version": {
                                        "type": "string",
                                        "description": "The version of the OS running on the device."
                                      }
                                    }
                                  },
                                  "userAgent": {
                                    "type": "string",
                                    "description": "The user agent of the device making the request"
                                  }
                                }
                              }
                            ]
                          },
                          "integrations": {
                            "x-scalar-ignore": true,
                            "type": "object",
                            "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                            "additionalProperties": {
                              "type": "boolean",
                              "x-additionalPropertiesName": "Enabled/Disabled integrations"
                            },
                            "example": {
                              "All": true,
                              "Salesforce": false
                            }
                          },
                          "messageId": {
                            "type": "string",
                            "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                          },
                          "originalTimestamp": {
                            "type": "string",
                            "format": "date-time",
                            "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                          },
                          "properties": {
                            "additionalProperties": {
                              "x-additionalPropertiesName": "Event Properties",
                              "description": "Additional properties that you want to capture in the event. These can take any JSON shape."
                            },
                            "description": "Additional properties for your event.",
                            "type": "object"
                          },
                          "receivedAt": {
                            "type": "string",
                            "format": "date-time",
                            "readOnly": true,
                            "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                          },
                          "sentAt": {
                            "type": "string",
                            "format": "date-time",
                            "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                          },
                          "timestamp": {
                            "type": "string",
                            "format": "date-time",
                            "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                          },
                          "version": {
                            "readOnly": true,
                            "type": "number",
                            "description": "The version of the API that received the event, automatically set by Customer.io."
                          }
                        },
                        "required": [
                          "event",
                          "groupId"
                        ]
                      }
                    ]
                  },
                  {
                    "title": "Create or Update Device",
                    "description": "Add or update a device. If a device (represented by `device.token`) exists, does not exist, we'll create it. If the device token already exists, we'll update the it.",
                    "type": "object",
                    "required": [
                      "event",
                      "userId",
                      "context",
                      "event",
                      "userId",
                      "context"
                    ],
                    "properties": {
                      "context": {
                        "type": "object",
                        "required": [
                          "device",
                          "device"
                        ],
                        "description": "Information about the device performing the event.",
                        "properties": {
                          "device": {
                            "type": "object",
                            "required": [
                              "token",
                              "token"
                            ],
                            "description": "Device information.",
                            "properties": {
                              "token": {
                                "type": "string",
                                "description": "The device token."
                              },
                              "type": {
                                "type": "string",
                                "description": "The device type.",
                                "enum": [
                                  "ios",
                                  "android",
                                  "ios",
                                  "android"
                                ]
                              }
                            }
                          },
                          "app": {
                            "type": "object",
                            "description": "Information about your app.",
                            "properties": {
                              "namespace": {
                                "type": "string",
                                "description": "The bundle ID (iOS) or package name (Android) of your app. We map it to the device's `app_identifier` attribute, so that we know [which of your apps](/messaging/channels/push/developer-guide/#device-app-identifier) the device belongs to. If you have a single app, you don't need to send it."
                              }
                            }
                          }
                        },
                        "additionalProperties": {
                          "x-AdditionalPropertiesName": "Additional Event Properties"
                        }
                      },
                      "event": {
                        "type": "string",
                        "description": "The event name.",
                        "enum": [
                          "Device Created or Updated",
                          "Device Created or Updated"
                        ],
                        "example": "Device Created or Updated"
                      },
                      "userId": {
                        "type": "string",
                        "description": "The user's unique identifier.",
                        "example": "42"
                      }
                    },
                    "example": {
                      "context": {
                        "device": {
                          "token": "string",
                          "type": "ios"
                        },
                        "app": {
                          "namespace": "com.example.yourapp"
                        }
                      },
                      "event": "Device Created or Updated",
                      "userId": "42",
                      "type": "track",
                      "timestamp": "2021-07-14T19:10:25.000Z"
                    },
                    "x-scalar-ignore": true
                  },
                  {
                    "title": "Delete Device",
                    "description": "Delete a device.",
                    "type": "object",
                    "required": [
                      "event",
                      "userId",
                      "context",
                      "event",
                      "userId",
                      "context"
                    ],
                    "properties": {
                      "context": {
                        "type": "object",
                        "required": [
                          "device",
                          "device"
                        ],
                        "description": "Information about the device performing the event. Our SDKs typically collect these properties automatically.",
                        "properties": {
                          "device": {
                            "type": "object",
                            "required": [
                              "token",
                              "token"
                            ],
                            "description": "Device information.",
                            "properties": {
                              "token": {
                                "type": "string",
                                "description": "The device token."
                              },
                              "type": {
                                "type": "string",
                                "description": "The device type.",
                                "enum": [
                                  "ios",
                                  "android",
                                  "ios",
                                  "android"
                                ]
                              }
                            }
                          }
                        },
                        "additionalProperties": {
                          "x-AdditionalPropertiesName": "Additional Event Properties"
                        }
                      },
                      "event": {
                        "type": "string",
                        "description": "The event name.",
                        "enum": [
                          "Device Deleted",
                          "Device Deleted"
                        ]
                      },
                      "userId": {
                        "type": "string",
                        "description": "The user's unique identifier."
                      }
                    },
                    "example": {
                      "context": {
                        "device": {
                          "token": "string",
                          "type": "ios"
                        }
                      },
                      "event": "Device Deleted",
                      "userId": "42",
                      "type": "track",
                      "timestamp": "2021-07-14T19:10:25.000Z"
                    },
                    "x-scalar-ignore": true
                  },
                  {
                    "title": "Delete Person",
                    "description": "Remove a person from your Customer.io environment.",
                    "type": "object",
                    "required": [
                      "event",
                      "userId",
                      "event",
                      "userId"
                    ],
                    "properties": {
                      "event": {
                        "type": "string",
                        "description": "The event name.",
                        "enum": [
                          "User Deleted",
                          "User Deleted"
                        ]
                      },
                      "userId": {
                        "type": "string",
                        "description": "The user's unique identifier or their email address. If you provide an email address, we'll look up the person by their email address and delete them."
                      },
                      "properties": {
                        "description": "Properties for the event. These aren't typically useful in Customer.io when deleting people, but you might use them in other places—like an analytics tool (e.g. Mixpanel).",
                        "type": "object"
                      }
                    },
                    "example": {
                      "event": "User Deleted",
                      "userId": "42",
                      "type": "track",
                      "timestamp": "2021-07-14T19:10:25.000Z"
                    },
                    "x-scalar-ignore": true
                  },
                  {
                    "title": "Delete Relationship",
                    "description": "Remove a relationship between a person and an object in Customer.io.",
                    "type": "object",
                    "required": [
                      "event",
                      "userId",
                      "properties",
                      "event",
                      "userId",
                      "properties"
                    ],
                    "properties": {
                      "event": {
                        "type": "string",
                        "description": "The event name.",
                        "enum": [
                          "Relationship Deleted",
                          "Relationship Deleted"
                        ]
                      },
                      "properties": {
                        "description": "Properties for the event. In this case, you'll need to provide the `objectId`. You should also provide the `objectTypeId` if you have more than 1 object type; if you don't include it, we'll assume it's `1`.",
                        "properties": {
                          "objectId": {
                            "type": "string",
                            "description": "A person is related to a group/object. This is the group/object you want to remove the person from."
                          },
                          "objectTypeId": {
                            "type": "integer",
                            "description": "The type of group/object the `objectId` represents. In Customer.io, each type of group/object has a an integer value, starting at 1 and incrementing. For example, if you have two types of groups/objects, you might have `1` represent accounts and `2` might represent companies.\n\nIf you leave this value blank, we'll assume it's `1`.\n",
                            "default": 1
                          }
                        },
                        "required": [
                          "objectId",
                          "objectId"
                        ],
                        "type": "object"
                      },
                      "userId": {
                        "type": "string",
                        "description": "The user's unique identifier or their email address. If you provide an email address, we'll look up the person by their email address."
                      }
                    },
                    "example": {
                      "event": "Relationship Deleted",
                      "properties": {
                        "objectId": "acme",
                        "objectTypeId": "1"
                      },
                      "userId": "1",
                      "type": "track"
                    },
                    "x-scalar-ignore": true
                  },
                  {
                    "title": "Delete Object",
                    "description": "Remove a group (also called an \"object\") from Customer.io Journeys.",
                    "type": "object",
                    "required": [
                      "event",
                      "anonymousId",
                      "properties",
                      "event",
                      "anonymousId",
                      "properties"
                    ],
                    "properties": {
                      "anonymousId": {
                        "type": "string",
                        "description": "While you must set a value, it can be anything; we don't use it. Customer.io requires events to be performed by people, but the \"performer\" is irrelevant to this event."
                      },
                      "event": {
                        "type": "string",
                        "description": "The event name.",
                        "enum": [
                          "Object Deleted",
                          "Object Deleted"
                        ]
                      },
                      "properties": {
                        "description": "Properties for the event. In this case, you'll need to provide the `objectId`. You should also provide the `objectTypeId` if you have more than 1 object type; if you don't include it, we'll assume it's `1`.",
                        "properties": {
                          "objectId": {
                            "type": "string",
                            "description": "This is the group/object you want to remove."
                          },
                          "objectTypeId": {
                            "type": "integer",
                            "description": "The type of group/object the `objectId` represents. In Customer.io, each type of group/object has a an integer value, starting at 1 and incrementing. For example, if you have two types of groups/objects, you might have `1` represent accounts and `2` might represent companies.\n\nIf you leave this value blank, we'll assume it's `1`.\n",
                            "default": 1
                          }
                        },
                        "type": "object"
                      }
                    },
                    "example": {
                      "anonymousId": "value-not-used",
                      "event": "Object Deleted",
                      "properties": {
                        "objectId": "acme",
                        "objectTypeId": "1"
                      },
                      "type": "track"
                    },
                    "x-scalar-ignore": true
                  },
                  {
                    "title": "Suppress Person",
                    "description": "Remove a person from your Customer.io workspace and prevent them from being added back.",
                    "type": "object",
                    "required": [
                      "event",
                      "userId",
                      "event",
                      "userId"
                    ],
                    "properties": {
                      "event": {
                        "type": "string",
                        "description": "The event name.",
                        "enum": [
                          "User Suppressed",
                          "User Suppressed"
                        ]
                      },
                      "userId": {
                        "type": "string",
                        "description": "The user's unique identifier."
                      },
                      "properties": {
                        "additionalProperties": {
                          "x-AdditionalPropertiesName": "Additional Event Properties"
                        },
                        "description": "Properties for the event. These aren't typically useful in Customer.io when suppressing people, but you might use them in other places—like an analytics tool (e.g. Mixpanel).",
                        "type": "object"
                      },
                      "timestamp": {
                        "type": "string",
                        "format": "date-time",
                        "description": "The ISO-8601 timestamp when the event occurred."
                      }
                    },
                    "example": {
                      "event": "User Suppressed",
                      "userId": "42",
                      "timestamp": "2021-07-14T19:10:25.000Z",
                      "type": "track"
                    },
                    "x-scalar-ignore": true
                  },
                  {
                    "title": "Unsuppress Person",
                    "description": "Allow a userId to be added back to your Customer.io workspace.",
                    "type": "object",
                    "required": [
                      "event",
                      "userId",
                      "event",
                      "userId"
                    ],
                    "properties": {
                      "event": {
                        "type": "string",
                        "description": "The event name.",
                        "enum": [
                          "User Unsuppressed",
                          "User Unsuppressed"
                        ]
                      },
                      "userId": {
                        "type": "string",
                        "description": "The user's unique identifier."
                      },
                      "properties": {
                        "additionalProperties": {
                          "x-AdditionalPropertiesName": "Additional Event Properties"
                        },
                        "description": "Properties for the event. These aren't typically useful in Customer.io when unsuppressing people, but you might use them in other places—like an analytics tool (e.g. Mixpanel).",
                        "type": "object"
                      },
                      "timestamp": {
                        "type": "string",
                        "format": "date-time",
                        "description": "The ISO-8601 timestamp when the event occurred."
                      }
                    },
                    "example": {
                      "event": "User Unsuppressed",
                      "userId": "42",
                      "timestamp": "2021-07-14T19:10:25.000Z",
                      "type": "track"
                    },
                    "x-scalar-ignore": true
                  },
                  {
                    "title": "Report Delivery Event",
                    "description": "Reports delivery events for messages.",
                    "type": "object",
                    "required": [
                      "event",
                      "properties",
                      "event",
                      "properties"
                    ],
                    "properties": {
                      "event": {
                        "type": "string",
                        "description": "The event name.",
                        "enum": [
                          "Report Delivery Event",
                          "Report Delivery Event"
                        ]
                      },
                      "properties": {
                        "additionalProperties": {
                          "x-AdditionalPropertiesName": "Additional Event Properties"
                        },
                        "description": "Properties for the event. These aren't typically useful in Customer.io when suppressing people, but you might use them in other places—like an analytics tool (e.g. Mixpanel).",
                        "properties": {
                          "actionValue": {
                            "type": "string",
                            "description": "For in-app messages that are `clicked`, this value represents the value of the action the recipient clicked."
                          },
                          "deliveryId": {
                            "type": "string",
                            "description": "The ID of the message delivery."
                          },
                          "href": {
                            "type": "string",
                            "description": "For in-app messages that are `clicked`, this value represents the URL/link the recipient clicked."
                          },
                          "metric": {
                            "type": "string",
                            "enum": [
                              "delivered",
                              "clicked",
                              "converted",
                              "opened",
                              "delivered",
                              "clicked",
                              "converted",
                              "opened"
                            ],
                            "description": "The metric you're reporting. Remember, these are metrics that occur outside of Customer.io—after the message is sent. Because this event typically tracks in-app messages, you'll generally see metrics like delivered, opened, clicked, etc."
                          },
                          "reason": {
                            "type": "string",
                            "description": "If the message failed for some reason, this field contains the reason why."
                          },
                          "recipient": {
                            "type": "string",
                            "description": "The recipient of the message. This field changes depending on the type of message. For in-app messages, this is the person's `deviceId`; for SMS it's the recipient's phone number; for push notifications, it's their device token."
                          }
                        },
                        "type": "object"
                      },
                      "timestamp": {
                        "type": "string",
                        "format": "date-time",
                        "description": "The ISO-8601 timestamp when the event occurred."
                      }
                    },
                    "example": {
                      "event": "Report Delivery Event",
                      "properties": {
                        "actionValue": "enable_push",
                        "deliveryId": "42",
                        "href": "myapp://settings/enable_push",
                        "metric": "clicked",
                        "recipient": "device_token"
                      },
                      "timestamp": "2021-07-14T19:10:25.000Z",
                      "type": "track"
                    },
                    "x-scalar-ignore": true
                  },
                  {
                    "x-scalar-ignore": true,
                    "title": "Report Content Event",
                    "description": "Reports impressions and clicks for anonymous messages.",
                    "type": "object",
                    "required": [
                      "event",
                      "properties",
                      "event",
                      "properties"
                    ],
                    "properties": {
                      "event": {
                        "type": "string",
                        "description": "The event name.",
                        "enum": [
                          "Report Content Event",
                          "Report Content Event"
                        ]
                      },
                      "properties": {
                        "additionalProperties": {
                          "x-AdditionalPropertiesName": "Additional Event Properties"
                        },
                        "description": "Properties for the event. These aren't typically useful in Customer.io when suppressing people, but you might use them in other places—like an analytics tool (e.g. Mixpanel).",
                        "properties": {
                          "actionType": {
                            "type": "string",
                            "enum": [
                              "viewed_content",
                              "clicked_content",
                              "viewed_content",
                              "clicked_content"
                            ],
                            "description": "The type of activity that occurred on the message."
                          },
                          "contentId": {
                            "type": "integer",
                            "description": "The ID of the anonymous in-app message that the person interacted with.",
                            "example": 5
                          },
                          "templateId": {
                            "type": "integer",
                            "description": "The ID of the message inside the contentId.",
                            "example": 10
                          }
                        },
                        "required": [
                          "activityType",
                          "activityType"
                        ],
                        "type": "object"
                      },
                      "timestamp": {
                        "type": "string",
                        "format": "date-time",
                        "description": "The ISO-8601 timestamp when the event occurred."
                      }
                    },
                    "example": {
                      "event": "Report Content Event",
                      "properties": {
                        "actionType": "clicked_content",
                        "contentId": 5,
                        "templateId": 10
                      },
                      "timestamp": "2024-12-14T19:10:25.000Z",
                      "type": "track"
                    }
                  }
                ],
                "example": {
                  "event": "Course Started",
                  "userId": "AiUGstSDIg",
                  "properties": {
                    "title": "Intro to Customer.io"
                  },
                  "timestamp": "2015-12-12T19:11:01.249Z",
                  "anonymousId": "23adfd82-aa0f-45a7-a756-24f2a7a4c895",
                  "context": {
                    "library": {
                      "name": "analytics.js",
                      "version": "2.11.1"
                    },
                    "page": {
                      "path": "/",
                      "referrer": "https://www.google.com/",
                      "search": "?q=analytics",
                      "title": "Customer.io Docs",
                      "url": "https://docs.customer.io"
                    },
                    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_0) AppleWebKit/537.36 (KHTML like Gecko) Chrome/46.0.2490.86 Safari/537.36",
                    "ip": "108.0.78.21"
                  },
                  "integrations": null,
                  "messageId": "ajs-f8ca1e4de5024d9430b3928bd8ac6b96",
                  "sentAt": "2015-12-12T19:11:01.169Z",
                  "originalTimestamp": "2015-12-12T19:11:01.152Z"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "json",
            "label": "JSON",
            "source": "{\n  \"event\": \"Course Started\",\n  \"userId\": \"AiUGstSDIg\",\n  \"properties\": {\n    \"title\": \"Intro to Customer.io\"\n  },\n  \"timestamp\": \"2015-12-12T19:11:01.249Z\",\n  \"anonymousId\": \"23adfd82-aa0f-45a7-a756-24f2a7a4c895\",\n  \"context\": {\n    \"library\": {\n      \"name\": \"analytics.js\",\n      \"version\": \"2.11.1\"\n    },\n    \"page\": {\n      \"path\": \"/\",\n      \"referrer\": \"https://www.google.com/\",\n      \"search\": \"?q=analytics\",\n      \"title\": \"Customer.io Docs\",\n      \"url\": \"https://docs.customer.io\"\n    },\n    \"userAgent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_0) AppleWebKit/537.36 (KHTML like Gecko) Chrome/46.0.2490.86 Safari/537.36\",\n    \"ip\": \"108.0.78.21\"\n  },\n  \"integrations\": null,\n  \"messageId\": \"ajs-f8ca1e4de5024d9430b3928bd8ac6b96\",\n  \"sentAt\": \"2015-12-12T19:11:01.169Z\",\n  \"originalTimestamp\": \"2015-12-12T19:11:01.152Z\"\n}"
          },
          {
            "label": "cURL",
            "lang": "shell",
            "source": "curl --request POST \\\n  --url https://cdp.customer.io/v1/track \\\n  -u api_key: \\\n  -H 'content-type: application/json' \\\n  --data-raw '\n  {\n      \"userId\": \"97980cfea0067\",\n      \"event\": \"Course Started\",\n      \"properties\": {\n          \"title\": \"Intro to Customer.io\"\n      }\n  }'\n"
          },
          {
            "label": "JavaScript (SDK)",
            "lang": "javascript",
            "source": "analytics.track(\"video_watched\", {\n  video_name: \"Cool New Video\"\n  length: 1.56\n  speed: 1.25\n  finished: false\n});\n"
          },
          {
            "label": "Node.js (SDK)",
            "lang": "javascript",
            "source": "analytics.track({\n  userId: '019mr8mf4r',\n  event: 'added_to_cart',\n  properties: {\n    product: \"shoes\",\n    revenue: 39.95,\n    qty: 1,\n    size: 9\n  }\n});\n"
          },
          {
            "label": "Python (SDK)",
            "lang": "python",
            "source": "analytics.track('f4ca124298', 'class_started', {\n  title: 'How to use Customer.io',\n  progress: '2%',\n  category: 'getting started'\n})\n"
          },
          {
            "label": "Go (SDK)",
            "lang": "go",
            "source": "client.Enqueue(analytics.Track{\n  UserId: \"f4ca124298\",\n  Event:  \"added_to_cart\",\n  Properties: analytics.NewProperties().\n    Set(\"product\", \"shoes\"),\n    Set(\"price\", 39.95),\n})\n"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful request returns an empty object response."
          }
        }
      }
    },
    "/page": {
      "post": {
        "operationId": "page",
        "summary": "Track pageviews",
        "description": "Sends a page view event. If you use our JavaScript source, it automatically records `page` events whenever it loads (every page). If you use a single-page app, you'll need to call the `page` method people change routes.\n\nThe request consists of the page `name` and additional properties about the page.\n\nIf you use our JavaScript library, the page name and URL are automatically gathered and passed as event properties.\n\n**When you use our libraries, you'll typically only provide a user ID/anonymous ID and the `name` of the page. The libraries fill in the rest of the payload automatically.**\n",
        "servers": [
          {
            "url": "https://cdp.customer.io/v1",
            "description": "This is a Data Pipeline API."
          }
        ],
        "security": [
          {
            "Basic-Auth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Strict-Mode",
            "in": "header",
            "description": "When set to `1`, enables strict validation that returns proper HTTP error codes (400/401) for validation failures. When not set or set to any other value, the API operates in permissive mode, logging errors but returning HTTP 200. [Learn more](/integrations/api/track-vs-cdp-api/#pipelines-strict-mode)\n",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "1"
              ]
            },
            "example": "1"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "x-scalar-ignore": true,
                "oneOf": [
                  {
                    "x-scalar-ignore": true,
                    "title": "Known User",
                    "properties": {
                      "userId": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
                        "example": "241ma8mf4a"
                      },
                      "context": {
                        "x-scalar-ignore": true,
                        "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                        "title": "Non-mobile",
                        "properties": {
                          "active": {
                            "type": "boolean",
                            "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                          },
                          "campaign": {
                            "type": "object",
                            "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                            "properties": {
                              "content": {
                                "type": "string"
                              },
                              "medium": {
                                "type": "string",
                                "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                              },
                              "name": {
                                "type": "string",
                                "description": "The campaign name."
                              },
                              "source": {
                                "type": "string",
                                "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                              },
                              "term": {
                                "type": "string",
                                "description": "The keyword term(s) a user came from."
                              }
                            },
                            "additionalProperties": {
                              "type": "string",
                              "x-additionalPropertiesName": "Additional UTM Parameters"
                            }
                          },
                          "channel": {
                            "type": "string",
                            "enum": [
                              "browser",
                              "server",
                              "mobile"
                            ],
                            "description": "The channel the event originated from."
                          },
                          "ip": {
                            "type": "string",
                            "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                          },
                          "locale": {
                            "type": "string",
                            "description": "The locale string for the current user, e.g. `en-US`."
                          },
                          "page": {
                            "x-scalar-ignore": true,
                            "type": "object",
                            "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                            "properties": {
                              "keywords": {
                                "type": "array",
                                "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "name": {
                                "type": "string",
                                "description": "The name of the page. Reserved for future use.\n"
                              },
                              "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."
                              }
                            }
                          },
                          "userAgent": {
                            "type": "string",
                            "description": "The user agent of the device making the request"
                          }
                        }
                      },
                      "integrations": {
                        "x-scalar-ignore": true,
                        "type": "object",
                        "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                        "additionalProperties": {
                          "type": "boolean",
                          "x-additionalPropertiesName": "Enabled/Disabled integrations"
                        },
                        "example": {
                          "All": true,
                          "Salesforce": false
                        }
                      },
                      "messageId": {
                        "type": "string",
                        "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the page.",
                        "example": "home"
                      },
                      "originalTimestamp": {
                        "type": "string",
                        "format": "date-time",
                        "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                      },
                      "properties": {
                        "additionalProperties": {
                          "x-additionalPropertiesName": "Page Properties"
                        },
                        "description": "Additional `page` properties. Analytics.js automatically collects `url`, `title`, `referrer`, `path`, and `search` properties. But, if you use our other sources or you write your own integration, you should consider sending these properties yourself. Destination actions that take `page` events often rely on the `url` and `title` properties.",
                        "properties": {
                          "category": {
                            "type": "string",
                            "description": "The category of the page. This might be useful if you have a single page routes or have a flattened URL structure."
                          },
                          "path": {
                            "type": "string",
                            "description": "The path of the page. This defaults to `location.pathname`, but can be overridden.",
                            "example": "/page"
                          },
                          "referrer": {
                            "type": "string",
                            "description": "The referrer of the page, if applicable. This defaults to `document.referrer`, but can be overridden.",
                            "example": "http://www.google.com/search?q=example"
                          },
                          "search": {
                            "type": "string",
                            "description": "The search query in the URL, if present. This defaults to `location.search`, but can be overridden.",
                            "example": "?q=sfgiants"
                          },
                          "title": {
                            "type": "string",
                            "description": "The title of the page. This defaults to `document.title`, but can be overridden.",
                            "example": "Page | Example.com"
                          },
                          "url": {
                            "type": "string",
                            "description": "The URL of the page. This defaults to a canonical url if available, and falls back to `document.location.href`.",
                            "example": "https://www.example.com/page/"
                          }
                        },
                        "type": "object"
                      },
                      "receivedAt": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                      },
                      "sentAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                      },
                      "timestamp": {
                        "type": "string",
                        "format": "date-time",
                        "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                      },
                      "version": {
                        "readOnly": true,
                        "type": "number",
                        "description": "The version of the API that received the event, automatically set by Customer.io."
                      }
                    },
                    "required": [
                      "userId"
                    ]
                  },
                  {
                    "x-scalar-ignore": true,
                    "title": "Anonymous User",
                    "properties": {
                      "anonymousId": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
                        "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
                      },
                      "context": {
                        "x-scalar-ignore": true,
                        "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                        "title": "Non-mobile",
                        "properties": {
                          "active": {
                            "type": "boolean",
                            "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                          },
                          "campaign": {
                            "type": "object",
                            "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                            "properties": {
                              "content": {
                                "type": "string"
                              },
                              "medium": {
                                "type": "string",
                                "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                              },
                              "name": {
                                "type": "string",
                                "description": "The campaign name."
                              },
                              "source": {
                                "type": "string",
                                "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                              },
                              "term": {
                                "type": "string",
                                "description": "The keyword term(s) a user came from."
                              }
                            },
                            "additionalProperties": {
                              "type": "string",
                              "x-additionalPropertiesName": "Additional UTM Parameters"
                            }
                          },
                          "channel": {
                            "type": "string",
                            "enum": [
                              "browser",
                              "server",
                              "mobile"
                            ],
                            "description": "The channel the event originated from."
                          },
                          "ip": {
                            "type": "string",
                            "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                          },
                          "locale": {
                            "type": "string",
                            "description": "The locale string for the current user, e.g. `en-US`."
                          },
                          "page": {
                            "x-scalar-ignore": true,
                            "type": "object",
                            "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                            "properties": {
                              "keywords": {
                                "type": "array",
                                "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "name": {
                                "type": "string",
                                "description": "The name of the page. Reserved for future use.\n"
                              },
                              "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."
                              }
                            }
                          },
                          "userAgent": {
                            "type": "string",
                            "description": "The user agent of the device making the request"
                          }
                        }
                      },
                      "integrations": {
                        "x-scalar-ignore": true,
                        "type": "object",
                        "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                        "additionalProperties": {
                          "type": "boolean",
                          "x-additionalPropertiesName": "Enabled/Disabled integrations"
                        },
                        "example": {
                          "All": true,
                          "Salesforce": false
                        }
                      },
                      "messageId": {
                        "type": "string",
                        "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the page.",
                        "example": "home"
                      },
                      "originalTimestamp": {
                        "type": "string",
                        "format": "date-time",
                        "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                      },
                      "properties": {
                        "additionalProperties": {
                          "x-additionalPropertiesName": "Page Properties"
                        },
                        "description": "Additional properties for your event.",
                        "properties": {
                          "category": {
                            "type": "string",
                            "description": "The category of the page. This might be useful if you have a single page routes or have a flattened URL structure."
                          },
                          "path": {
                            "type": "string",
                            "description": "The path of the page. This defaults to location.pathname, but can be overridden.",
                            "example": "/page"
                          },
                          "referrer": {
                            "type": "string",
                            "description": "The referrer of the page, if applicable. This defaults to document.referrer, but can be overridden.",
                            "example": "http://www.google.com/search?q=example"
                          },
                          "search": {
                            "type": "string",
                            "description": "The search query in the URL, if present. This defaults to location.search, but can be overridden.",
                            "example": "?q=sfgiants"
                          },
                          "title": {
                            "type": "string",
                            "description": "The title of the page. This defaults to `document.title`, but can be overridden.",
                            "example": "Page | Example.com"
                          },
                          "url": {
                            "type": "string",
                            "description": "The URL of the page."
                          }
                        },
                        "type": "object"
                      },
                      "receivedAt": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                      },
                      "sentAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                      },
                      "timestamp": {
                        "type": "string",
                        "format": "date-time",
                        "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                      },
                      "version": {
                        "readOnly": true,
                        "type": "number",
                        "description": "The version of the API that received the event, automatically set by Customer.io."
                      }
                    },
                    "required": [
                      "anonymousId"
                    ]
                  }
                ],
                "example": {
                  "userId": "97980cfea0067",
                  "context": {
                    "ip": "8.8.8.8",
                    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML like Gecko) Chrome/40.0.2214.115 Safari/537.36"
                  },
                  "integrations": {
                    "All": true,
                    "Mixpanel": false,
                    "Salesforce": false
                  },
                  "messageId": "022bb90c-bbac-11e4-8dfc-aa07a5b093db",
                  "name": "Home",
                  "properties": {
                    "title": "Welcome | ACME, Inc.",
                    "url": "https://www.example.com"
                  },
                  "sentAt": "2015-02-23T22:28:55.111Z",
                  "timestamp": "2015-02-23T22:28:55.111Z",
                  "anonymousId": "507f191e810c19729de860ea",
                  "channel": "browser"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "json",
            "label": "JSON",
            "source": "{\n  \"userId\": \"97980cfea0067\",\n  \"context\": {\n    \"ip\": \"8.8.8.8\",\n    \"userAgent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML like Gecko) Chrome/40.0.2214.115 Safari/537.36\"\n  },\n  \"integrations\": {\n    \"All\": true,\n    \"Mixpanel\": false,\n    \"Salesforce\": false\n  },\n  \"messageId\": \"022bb90c-bbac-11e4-8dfc-aa07a5b093db\",\n  \"name\": \"Home\",\n  \"properties\": {\n    \"title\": \"Welcome | ACME, Inc.\",\n    \"url\": \"https://www.example.com\"\n  },\n  \"sentAt\": \"2015-02-23T22:28:55.111Z\",\n  \"timestamp\": \"2015-02-23T22:28:55.111Z\",\n  \"anonymousId\": \"507f191e810c19729de860ea\",\n  \"channel\": \"browser\"\n}"
          },
          {
            "label": "cURL",
            "lang": "shell",
            "source": "curl --request POST \\\n  --url https://cdp.customer.io/v1/page \\\n  -u api_key: \\\n  -H 'content-type: application/json' \\\n  --data-raw '\n  {\n      \"userId\": \"f4ca124298\",\n      \"name\": \"Home\",\n      \"properties\": {\n          \"title\": \"Welcome | ACME, Inc.\",\n          \"url\": \"https://www.example.com\"\n      }\n  }'\n"
          },
          {
            "label": "JavaScript (SDK)",
            "lang": "javascript",
            "source": "analytics.page(\"Retail Page\",\"shoes\", {\n  affiliate: \"Pro annual\",\n  accountType: \"Facebook\"\n});\n"
          },
          {
            "label": "Node.js (SDK)",
            "lang": "javascript",
            "source": "analytics.page({\n  userId: '019mr8mf4r',\n  category: 'Docs',\n  name: 'Customer.io Data Pipelines',\n  properties: {\n    url: 'https://customer.io/cdp/',\n    path: '/cdp/',\n    title: 'Customer.io Data Pipelines',\n    referrer: 'https://customer.io'\n  }\n});\n"
          },
          {
            "label": "Python (SDK)",
            "lang": "python",
            "source": "analytics.page('<user_id>', 'Retail Page', 'shoes', {\n    'url': 'https://example.com/products/showes'\n})\n"
          },
          {
            "label": "Go (SDK)",
            "lang": "go",
            "source": "client.Enqueue(analytics.Page{\n  UserId: \"f4ca124298\",\n  Name:   \"Customer.io Data Pipelines\",\n  Category: \"Docs\",\n  Properties: analytics.NewProperties().\n    SetURL(\"https://customer.io/cdp/\"),\n})\n"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful request returns an empty object response."
          }
        }
      }
    },
    "/screen": {
      "post": {
        "operationId": "screen",
        "summary": "Track mobile screenviews",
        "description": "Sends a screen view event for mobile devices. Screen events help you understand the screens that people use in your app. You should send a screen call whenever a user requests a page of your app.\n",
        "servers": [
          {
            "url": "https://cdp.customer.io/v1",
            "description": "This is a Data Pipeline API."
          }
        ],
        "security": [
          {
            "Basic-Auth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Strict-Mode",
            "in": "header",
            "description": "When set to `1`, enables strict validation that returns proper HTTP error codes (400/401) for validation failures. When not set or set to any other value, the API operates in permissive mode, logging errors but returning HTTP 200. [Learn more](/integrations/api/track-vs-cdp-api/#pipelines-strict-mode)\n",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "1"
              ]
            },
            "example": "1"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "x-scalar-ignore": true,
                "oneOf": [
                  {
                    "x-scalar-ignore": true,
                    "title": "Known User",
                    "properties": {
                      "userId": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
                        "example": "241ma8mf4a"
                      },
                      "context": {
                        "x-scalar-ignore": true,
                        "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                        "title": "Mobile",
                        "properties": {
                          "active": {
                            "type": "boolean",
                            "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                          },
                          "app": {
                            "type": "object",
                            "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                            "properties": {
                              "build": {
                                "type": "string",
                                "description": "The specific build number in the app."
                              },
                              "name": {
                                "type": "string",
                                "description": "The name of the app."
                              },
                              "namespace": {
                                "type": "string",
                                "description": "The app's namespace."
                              },
                              "version": {
                                "type": "string",
                                "description": "The version of the app the call originated from."
                              }
                            }
                          },
                          "channel": {
                            "type": "string",
                            "enum": [
                              "browser",
                              "server",
                              "mobile"
                            ],
                            "description": "The channel the event originated from."
                          },
                          "device": {
                            "type": "object",
                            "description": "Contains information about the device the event originated from.\n",
                            "properties": {
                              "advertisingId": {
                                "type": "string",
                                "description": "The advertising ID is a unique, anonymous ID for advertising."
                              },
                              "id": {
                                "type": "string",
                                "description": "The device ID."
                              },
                              "manufacturer": {
                                "type": "string",
                                "description": "The device manufacturer."
                              },
                              "model": {
                                "type": "string",
                                "description": "The device model."
                              },
                              "name": {
                                "type": "string",
                                "description": "The device name."
                              },
                              "type": {
                                "type": "string",
                                "description": "The device type—android, iOS, etc.",
                                "enum": [
                                  "android",
                                  "ios"
                                ]
                              },
                              "version": {
                                "type": "string",
                                "description": "The firmware version for the device."
                              }
                            }
                          },
                          "ip": {
                            "type": "string",
                            "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                          },
                          "locale": {
                            "type": "string",
                            "description": "The locale string for the current user, e.g. `en-US`."
                          },
                          "network": {
                            "type": "object",
                            "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                            "properties": {
                              "bluetooth": {
                                "type": "boolean",
                                "description": "Lets you know if bluetooth is enabled on a device."
                              },
                              "carrier": {
                                "type": "string",
                                "description": "The cellular carrier the phone uses."
                              },
                              "cellular": {
                                "type": "boolean",
                                "description": "Indicates whether the device's cellular connection is enabled or not."
                              },
                              "wifi": {
                                "type": "boolean",
                                "description": "Indicates whether a device's wifi connection is enabled or not."
                              }
                            }
                          },
                          "os": {
                            "type": "object",
                            "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                            "properties": {
                              "name": {
                                "type": "string",
                                "description": "The operating system running on the device."
                              },
                              "version": {
                                "type": "string",
                                "description": "The version of the OS running on the device."
                              }
                            }
                          },
                          "userAgent": {
                            "type": "string",
                            "description": "The user agent of the device making the request"
                          }
                        }
                      },
                      "integrations": {
                        "x-scalar-ignore": true,
                        "type": "object",
                        "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                        "additionalProperties": {
                          "type": "boolean",
                          "x-additionalPropertiesName": "Enabled/Disabled integrations"
                        },
                        "example": {
                          "All": true,
                          "Salesforce": false
                        }
                      },
                      "messageId": {
                        "type": "string",
                        "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the screen the person visited.",
                        "example": "home"
                      },
                      "originalTimestamp": {
                        "type": "string",
                        "format": "date-time",
                        "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                      },
                      "properties": {
                        "additionalProperties": {
                          "x-additionalPropertiesName": "Screen Properties"
                        },
                        "description": "Additional properties for your screen.",
                        "type": "object"
                      },
                      "receivedAt": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                      },
                      "sentAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                      },
                      "timestamp": {
                        "type": "string",
                        "format": "date-time",
                        "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                      },
                      "version": {
                        "readOnly": true,
                        "type": "number",
                        "description": "The version of the API that received the event, automatically set by Customer.io."
                      }
                    },
                    "required": [
                      "userId"
                    ]
                  },
                  {
                    "x-scalar-ignore": true,
                    "title": "Anonymous User",
                    "properties": {
                      "anonymousId": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
                        "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
                      },
                      "context": {
                        "x-scalar-ignore": true,
                        "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                        "title": "Mobile",
                        "properties": {
                          "active": {
                            "type": "boolean",
                            "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                          },
                          "app": {
                            "type": "object",
                            "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                            "properties": {
                              "build": {
                                "type": "string",
                                "description": "The specific build number in the app."
                              },
                              "name": {
                                "type": "string",
                                "description": "The name of the app."
                              },
                              "namespace": {
                                "type": "string",
                                "description": "The app's namespace."
                              },
                              "version": {
                                "type": "string",
                                "description": "The version of the app the call originated from."
                              }
                            }
                          },
                          "channel": {
                            "type": "string",
                            "enum": [
                              "browser",
                              "server",
                              "mobile"
                            ],
                            "description": "The channel the event originated from."
                          },
                          "device": {
                            "type": "object",
                            "description": "Contains information about the device the event originated from.\n",
                            "properties": {
                              "advertisingId": {
                                "type": "string",
                                "description": "The advertising ID is a unique, anonymous ID for advertising."
                              },
                              "id": {
                                "type": "string",
                                "description": "The device ID."
                              },
                              "manufacturer": {
                                "type": "string",
                                "description": "The device manufacturer."
                              },
                              "model": {
                                "type": "string",
                                "description": "The device model."
                              },
                              "name": {
                                "type": "string",
                                "description": "The device name."
                              },
                              "type": {
                                "type": "string",
                                "description": "The device type—android, iOS, etc.",
                                "enum": [
                                  "android",
                                  "ios"
                                ]
                              },
                              "version": {
                                "type": "string",
                                "description": "The firmware version for the device."
                              }
                            }
                          },
                          "ip": {
                            "type": "string",
                            "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                          },
                          "locale": {
                            "type": "string",
                            "description": "The locale string for the current user, e.g. `en-US`."
                          },
                          "network": {
                            "type": "object",
                            "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                            "properties": {
                              "bluetooth": {
                                "type": "boolean",
                                "description": "Lets you know if bluetooth is enabled on a device."
                              },
                              "carrier": {
                                "type": "string",
                                "description": "The cellular carrier the phone uses."
                              },
                              "cellular": {
                                "type": "boolean",
                                "description": "Indicates whether the device's cellular connection is enabled or not."
                              },
                              "wifi": {
                                "type": "boolean",
                                "description": "Indicates whether a device's wifi connection is enabled or not."
                              }
                            }
                          },
                          "os": {
                            "type": "object",
                            "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                            "properties": {
                              "name": {
                                "type": "string",
                                "description": "The operating system running on the device."
                              },
                              "version": {
                                "type": "string",
                                "description": "The version of the OS running on the device."
                              }
                            }
                          },
                          "userAgent": {
                            "type": "string",
                            "description": "The user agent of the device making the request"
                          }
                        }
                      },
                      "integrations": {
                        "x-scalar-ignore": true,
                        "type": "object",
                        "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                        "additionalProperties": {
                          "type": "boolean",
                          "x-additionalPropertiesName": "Enabled/Disabled integrations"
                        },
                        "example": {
                          "All": true,
                          "Salesforce": false
                        }
                      },
                      "messageId": {
                        "type": "string",
                        "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                      },
                      "name": {
                        "type": "string",
                        "description": "The name of the screen the person visited.",
                        "example": "home"
                      },
                      "originalTimestamp": {
                        "type": "string",
                        "format": "date-time",
                        "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                      },
                      "properties": {
                        "additionalProperties": {
                          "x-additionalPropertiesName": "Screen Properties"
                        },
                        "description": "Additional properties for your screen.",
                        "type": "object"
                      },
                      "receivedAt": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                      },
                      "sentAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                      },
                      "timestamp": {
                        "type": "string",
                        "format": "date-time",
                        "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                      },
                      "version": {
                        "readOnly": true,
                        "type": "number",
                        "description": "The version of the API that received the event, automatically set by Customer.io."
                      }
                    },
                    "required": [
                      "anonymousId"
                    ]
                  }
                ],
                "example": {
                  "userId": "97980cfea0067",
                  "context": {
                    "ip": "8.8.8.8"
                  },
                  "integrations": {
                    "All": true,
                    "Salesforce": false
                  },
                  "messageId": "022bb90c-bbac-11e4-8dfc-aa07a5b093db",
                  "name": "feed",
                  "properties": {
                    "subscriptions": [
                      "baseball",
                      "basketball"
                    ]
                  },
                  "sentAt": "2015-02-23T22:28:55.111Z",
                  "timestamp": "2015-02-23T22:28:55.111Z",
                  "anonymousId": "507f191e810c19729de860ea"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "json",
            "label": "JSON",
            "source": "{\n  \"userId\": \"97980cfea0067\",\n  \"context\": {\n    \"ip\": \"8.8.8.8\"\n  },\n  \"integrations\": {\n    \"All\": true,\n    \"Salesforce\": false\n  },\n  \"messageId\": \"022bb90c-bbac-11e4-8dfc-aa07a5b093db\",\n  \"name\": \"feed\",\n  \"properties\": {\n    \"subscriptions\": [\n      \"baseball\",\n      \"basketball\"\n    ]\n  },\n  \"sentAt\": \"2015-02-23T22:28:55.111Z\",\n  \"timestamp\": \"2015-02-23T22:28:55.111Z\",\n  \"anonymousId\": \"507f191e810c19729de860ea\"\n}"
          },
          {
            "label": "cURL",
            "lang": "shell",
            "source": "curl --request POST \\\n  --url https://cdp.customer.io/v1/screen \\\n  -u api_key: \\\n  -H 'content-type: application/json' \\\n  --data-raw '\n  {\n      \"userId\": \"f4ca124298\",\n      \"name\": \"feed\",\n      \"properties\": {\n          \"subscriptions\": [\n              \"baseball\",\n              \"basketball\"\n          ]\n      }\n  }'\n"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful request returns an empty object response."
          }
        }
      }
    },
    "/group": {
      "post": {
        "operationId": "group",
        "summary": "Create objects and relationships",
        "description": "Group calls add people to a group. Groups could be a companies, accounts, online classes, and so on. How groups are represented in your destination depends on the destination. Some destinations have concepts of \"groups\"; Customer.io's destination calls groups \"objects.\"\n\n**When you use our libraries, you'll typically only provide an ID for the user, the `groupId`, and `traits`. The libraries fill in the rest of the payload automatically.**\n",
        "servers": [
          {
            "url": "https://cdp.customer.io/v1",
            "description": "This is a Data Pipeline API."
          }
        ],
        "security": [
          {
            "Basic-Auth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Strict-Mode",
            "in": "header",
            "description": "When set to `1`, enables strict validation that returns proper HTTP error codes (400/401) for validation failures. When not set or set to any other value, the API operates in permissive mode, logging errors but returning HTTP 200. [Learn more](/integrations/api/track-vs-cdp-api/#pipelines-strict-mode)\n",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "1"
              ]
            },
            "example": "1"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "x-scalar-ignore": true,
                "oneOf": [
                  {
                    "x-scalar-ignore": true,
                    "title": "Known User",
                    "properties": {
                      "groupId": {
                        "type": "string",
                        "description": "ID of the group",
                        "example": "0e8c78ea9d97a7b8185e8632"
                      },
                      "context": {
                        "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                        "oneOf": [
                          {
                            "x-scalar-ignore": true,
                            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                            "title": "Non-mobile",
                            "properties": {
                              "active": {
                                "type": "boolean",
                                "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                              },
                              "campaign": {
                                "type": "object",
                                "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                                "properties": {
                                  "content": {
                                    "type": "string"
                                  },
                                  "medium": {
                                    "type": "string",
                                    "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                                  },
                                  "name": {
                                    "type": "string",
                                    "description": "The campaign name."
                                  },
                                  "source": {
                                    "type": "string",
                                    "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                                  },
                                  "term": {
                                    "type": "string",
                                    "description": "The keyword term(s) a user came from."
                                  }
                                },
                                "additionalProperties": {
                                  "type": "string",
                                  "x-additionalPropertiesName": "Additional UTM Parameters"
                                }
                              },
                              "channel": {
                                "type": "string",
                                "enum": [
                                  "browser",
                                  "server",
                                  "mobile"
                                ],
                                "description": "The channel the event originated from."
                              },
                              "ip": {
                                "type": "string",
                                "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                              },
                              "locale": {
                                "type": "string",
                                "description": "The locale string for the current user, e.g. `en-US`."
                              },
                              "page": {
                                "x-scalar-ignore": true,
                                "type": "object",
                                "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                                "properties": {
                                  "keywords": {
                                    "type": "array",
                                    "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "name": {
                                    "type": "string",
                                    "description": "The name of the page. Reserved for future use.\n"
                                  },
                                  "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."
                                  }
                                }
                              },
                              "userAgent": {
                                "type": "string",
                                "description": "The user agent of the device making the request"
                              }
                            }
                          },
                          {
                            "x-scalar-ignore": true,
                            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                            "title": "Mobile",
                            "properties": {
                              "active": {
                                "type": "boolean",
                                "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                              },
                              "app": {
                                "type": "object",
                                "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                                "properties": {
                                  "build": {
                                    "type": "string",
                                    "description": "The specific build number in the app."
                                  },
                                  "name": {
                                    "type": "string",
                                    "description": "The name of the app."
                                  },
                                  "namespace": {
                                    "type": "string",
                                    "description": "The app's namespace."
                                  },
                                  "version": {
                                    "type": "string",
                                    "description": "The version of the app the call originated from."
                                  }
                                }
                              },
                              "channel": {
                                "type": "string",
                                "enum": [
                                  "browser",
                                  "server",
                                  "mobile"
                                ],
                                "description": "The channel the event originated from."
                              },
                              "device": {
                                "type": "object",
                                "description": "Contains information about the device the event originated from.\n",
                                "properties": {
                                  "advertisingId": {
                                    "type": "string",
                                    "description": "The advertising ID is a unique, anonymous ID for advertising."
                                  },
                                  "id": {
                                    "type": "string",
                                    "description": "The device ID."
                                  },
                                  "manufacturer": {
                                    "type": "string",
                                    "description": "The device manufacturer."
                                  },
                                  "model": {
                                    "type": "string",
                                    "description": "The device model."
                                  },
                                  "name": {
                                    "type": "string",
                                    "description": "The device name."
                                  },
                                  "type": {
                                    "type": "string",
                                    "description": "The device type—android, iOS, etc.",
                                    "enum": [
                                      "android",
                                      "ios"
                                    ]
                                  },
                                  "version": {
                                    "type": "string",
                                    "description": "The firmware version for the device."
                                  }
                                }
                              },
                              "ip": {
                                "type": "string",
                                "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                              },
                              "locale": {
                                "type": "string",
                                "description": "The locale string for the current user, e.g. `en-US`."
                              },
                              "network": {
                                "type": "object",
                                "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                                "properties": {
                                  "bluetooth": {
                                    "type": "boolean",
                                    "description": "Lets you know if bluetooth is enabled on a device."
                                  },
                                  "carrier": {
                                    "type": "string",
                                    "description": "The cellular carrier the phone uses."
                                  },
                                  "cellular": {
                                    "type": "boolean",
                                    "description": "Indicates whether the device's cellular connection is enabled or not."
                                  },
                                  "wifi": {
                                    "type": "boolean",
                                    "description": "Indicates whether a device's wifi connection is enabled or not."
                                  }
                                }
                              },
                              "os": {
                                "type": "object",
                                "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                                "properties": {
                                  "name": {
                                    "type": "string",
                                    "description": "The operating system running on the device."
                                  },
                                  "version": {
                                    "type": "string",
                                    "description": "The version of the OS running on the device."
                                  }
                                }
                              },
                              "userAgent": {
                                "type": "string",
                                "description": "The user agent of the device making the request"
                              }
                            }
                          }
                        ]
                      },
                      "integrations": {
                        "x-scalar-ignore": true,
                        "type": "object",
                        "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                        "additionalProperties": {
                          "type": "boolean",
                          "x-additionalPropertiesName": "Enabled/Disabled integrations"
                        },
                        "example": {
                          "All": true,
                          "Salesforce": false
                        }
                      },
                      "messageId": {
                        "type": "string",
                        "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                      },
                      "originalTimestamp": {
                        "type": "string",
                        "format": "date-time",
                        "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                      },
                      "receivedAt": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                      },
                      "sentAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                      },
                      "timestamp": {
                        "type": "string",
                        "format": "date-time",
                        "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                      },
                      "traits": {
                        "type": "object",
                        "description": "Additional information about the group.",
                        "properties": {
                          "objectTypeId": {
                            "x-scalar-ignore": true,
                            "type": "string",
                            "description": "If you use Customer.io Journeys as a destination, this value is the type of group/object your group belongs to; object type IDs are stringified integers. If you don't include this value, we assume the object type ID is `1`. See [objects in Customer.io Journeys](/journeys/objects-data/objects/types/) for more information.",
                            "example": "1"
                          },
                          "relationshipAttributes": {
                            "type": "object",
                            "description": "Attributes that you want to set for the relationship between the person and the group.",
                            "example": {
                              "role": "primary_contact"
                            }
                          }
                        },
                        "additionalProperties": {
                          "x-additionalPropertiesName": "Group Traits",
                          "example": {
                            "name": "Acme",
                            "industry": "Technology",
                            "road_runner_accidents": "329,",
                            "plan": "enterprise,",
                            "total_billed": 830
                          }
                        }
                      },
                      "userId": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
                        "example": "241ma8mf4a"
                      },
                      "version": {
                        "readOnly": true,
                        "type": "number",
                        "description": "The version of the API that received the event, automatically set by Customer.io."
                      }
                    },
                    "required": [
                      "groupId"
                    ]
                  },
                  {
                    "x-scalar-ignore": true,
                    "title": "Anonymous User",
                    "properties": {
                      "groupId": {
                        "type": "string",
                        "description": "ID of the group",
                        "example": "0e8c78ea9d97a7b8185e8632"
                      },
                      "anonymousId": {
                        "x-scalar-ignore": true,
                        "type": "string",
                        "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
                        "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
                      },
                      "context": {
                        "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                        "oneOf": [
                          {
                            "x-scalar-ignore": true,
                            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                            "title": "Non-mobile",
                            "properties": {
                              "active": {
                                "type": "boolean",
                                "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                              },
                              "campaign": {
                                "type": "object",
                                "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                                "properties": {
                                  "content": {
                                    "type": "string"
                                  },
                                  "medium": {
                                    "type": "string",
                                    "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                                  },
                                  "name": {
                                    "type": "string",
                                    "description": "The campaign name."
                                  },
                                  "source": {
                                    "type": "string",
                                    "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                                  },
                                  "term": {
                                    "type": "string",
                                    "description": "The keyword term(s) a user came from."
                                  }
                                },
                                "additionalProperties": {
                                  "type": "string",
                                  "x-additionalPropertiesName": "Additional UTM Parameters"
                                }
                              },
                              "channel": {
                                "type": "string",
                                "enum": [
                                  "browser",
                                  "server",
                                  "mobile"
                                ],
                                "description": "The channel the event originated from."
                              },
                              "ip": {
                                "type": "string",
                                "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                              },
                              "locale": {
                                "type": "string",
                                "description": "The locale string for the current user, e.g. `en-US`."
                              },
                              "page": {
                                "x-scalar-ignore": true,
                                "type": "object",
                                "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                                "properties": {
                                  "keywords": {
                                    "type": "array",
                                    "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                                    "items": {
                                      "type": "string"
                                    }
                                  },
                                  "name": {
                                    "type": "string",
                                    "description": "The name of the page. Reserved for future use.\n"
                                  },
                                  "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."
                                  }
                                }
                              },
                              "userAgent": {
                                "type": "string",
                                "description": "The user agent of the device making the request"
                              }
                            }
                          },
                          {
                            "x-scalar-ignore": true,
                            "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                            "title": "Mobile",
                            "properties": {
                              "active": {
                                "type": "boolean",
                                "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                              },
                              "app": {
                                "type": "object",
                                "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                                "properties": {
                                  "build": {
                                    "type": "string",
                                    "description": "The specific build number in the app."
                                  },
                                  "name": {
                                    "type": "string",
                                    "description": "The name of the app."
                                  },
                                  "namespace": {
                                    "type": "string",
                                    "description": "The app's namespace."
                                  },
                                  "version": {
                                    "type": "string",
                                    "description": "The version of the app the call originated from."
                                  }
                                }
                              },
                              "channel": {
                                "type": "string",
                                "enum": [
                                  "browser",
                                  "server",
                                  "mobile"
                                ],
                                "description": "The channel the event originated from."
                              },
                              "device": {
                                "type": "object",
                                "description": "Contains information about the device the event originated from.\n",
                                "properties": {
                                  "advertisingId": {
                                    "type": "string",
                                    "description": "The advertising ID is a unique, anonymous ID for advertising."
                                  },
                                  "id": {
                                    "type": "string",
                                    "description": "The device ID."
                                  },
                                  "manufacturer": {
                                    "type": "string",
                                    "description": "The device manufacturer."
                                  },
                                  "model": {
                                    "type": "string",
                                    "description": "The device model."
                                  },
                                  "name": {
                                    "type": "string",
                                    "description": "The device name."
                                  },
                                  "type": {
                                    "type": "string",
                                    "description": "The device type—android, iOS, etc.",
                                    "enum": [
                                      "android",
                                      "ios"
                                    ]
                                  },
                                  "version": {
                                    "type": "string",
                                    "description": "The firmware version for the device."
                                  }
                                }
                              },
                              "ip": {
                                "type": "string",
                                "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                              },
                              "locale": {
                                "type": "string",
                                "description": "The locale string for the current user, e.g. `en-US`."
                              },
                              "network": {
                                "type": "object",
                                "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                                "properties": {
                                  "bluetooth": {
                                    "type": "boolean",
                                    "description": "Lets you know if bluetooth is enabled on a device."
                                  },
                                  "carrier": {
                                    "type": "string",
                                    "description": "The cellular carrier the phone uses."
                                  },
                                  "cellular": {
                                    "type": "boolean",
                                    "description": "Indicates whether the device's cellular connection is enabled or not."
                                  },
                                  "wifi": {
                                    "type": "boolean",
                                    "description": "Indicates whether a device's wifi connection is enabled or not."
                                  }
                                }
                              },
                              "os": {
                                "type": "object",
                                "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                                "properties": {
                                  "name": {
                                    "type": "string",
                                    "description": "The operating system running on the device."
                                  },
                                  "version": {
                                    "type": "string",
                                    "description": "The version of the OS running on the device."
                                  }
                                }
                              },
                              "userAgent": {
                                "type": "string",
                                "description": "The user agent of the device making the request"
                              }
                            }
                          }
                        ]
                      },
                      "integrations": {
                        "x-scalar-ignore": true,
                        "type": "object",
                        "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                        "additionalProperties": {
                          "type": "boolean",
                          "x-additionalPropertiesName": "Enabled/Disabled integrations"
                        },
                        "example": {
                          "All": true,
                          "Salesforce": false
                        }
                      },
                      "messageId": {
                        "type": "string",
                        "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                      },
                      "originalTimestamp": {
                        "type": "string",
                        "format": "date-time",
                        "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                      },
                      "receivedAt": {
                        "type": "string",
                        "format": "date-time",
                        "readOnly": true,
                        "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                      },
                      "sentAt": {
                        "type": "string",
                        "format": "date-time",
                        "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                      },
                      "timestamp": {
                        "type": "string",
                        "format": "date-time",
                        "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                      },
                      "traits": {
                        "type": "object",
                        "description": "Additional information about the group.",
                        "properties": {
                          "objectTypeId": {
                            "x-scalar-ignore": true,
                            "type": "string",
                            "description": "If you use Customer.io Journeys as a destination, this value is the type of group/object your group belongs to; object type IDs are stringified integers. If you don't include this value, we assume the object type ID is `1`. See [objects in Customer.io Journeys](/journeys/objects-data/objects/types/) for more information.",
                            "example": "1"
                          },
                          "relationshipAttributes": {
                            "type": "object",
                            "description": "Attributes that you want to set for the relationship between the person and the group.",
                            "example": {
                              "role": "primary_contact"
                            }
                          }
                        },
                        "additionalProperties": {
                          "x-additionalPropertiesName": "Group Traits",
                          "description": "Attributes that you want to associate with the group.",
                          "example": {
                            "name": "Acme",
                            "industry": "Technology",
                            "road_runner_accidents": "329,",
                            "plan": "enterprise,",
                            "total_billed": 830
                          }
                        }
                      },
                      "version": {
                        "readOnly": true,
                        "type": "number",
                        "description": "The version of the API that received the event, automatically set by Customer.io."
                      }
                    },
                    "required": [
                      "groupId"
                    ]
                  }
                ],
                "example": {
                  "groupId": "0e8c78ea9d97a7b8185e8632,",
                  "context": {
                    "ip": "8.8.8.8",
                    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36"
                  },
                  "integrations": {
                    "All": true,
                    "Mixpanel": false,
                    "Salesforce": false
                  },
                  "messageId": "022bb90c-bbac-11e4-8dfc-aa07a5b093db,",
                  "sentAt": "2015-02-23T22:28:55.111Z,",
                  "timestamp": "2015-02-23T22:28:55.111Z,",
                  "traits": {
                    "name": "ACME, Inc.",
                    "industry": "Technology",
                    "employees": 329,
                    "plan": "enterprise",
                    "total billed": 830
                  },
                  "userId": "97980cfea0067",
                  "anonymousId": "507f191e810c19729de860ea,",
                  "channel": "browser,"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "json",
            "label": "JSON",
            "source": "{\n  \"groupId\": \"0e8c78ea9d97a7b8185e8632,\",\n  \"context\": {\n    \"ip\": \"8.8.8.8\",\n    \"userAgent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36\"\n  },\n  \"integrations\": {\n    \"All\": true,\n    \"Mixpanel\": false,\n    \"Salesforce\": false\n  },\n  \"messageId\": \"022bb90c-bbac-11e4-8dfc-aa07a5b093db,\",\n  \"sentAt\": \"2015-02-23T22:28:55.111Z,\",\n  \"timestamp\": \"2015-02-23T22:28:55.111Z,\",\n  \"traits\": {\n    \"name\": \"ACME, Inc.\",\n    \"industry\": \"Technology\",\n    \"employees\": 329,\n    \"plan\": \"enterprise\",\n    \"total billed\": 830\n  },\n  \"userId\": \"97980cfea0067\",\n  \"anonymousId\": \"507f191e810c19729de860ea,\",\n  \"channel\": \"browser,\"\n}"
          },
          {
            "label": "cURL",
            "lang": "shell",
            "source": "curl --request POST \\\n  --url https://cdp.customer.io/v1/group \\\n  -u api_key: \\\n  -H 'content-type: application/json' \\\n  --data-raw '\n  {\n      \"userId\": \"97980cfea0067\",\n      \"groupId\": \"0e8c78ea9d97a7b8185e8632\",\n      \"traits\": {\n          \"objectTypeId\": 2,\n          \"name\": \"ACME, Inc.\",\n          \"industry\": \"Technology\",\n          \"employees\": 329,\n          \"plan\": \"enterprise\",\n          \"total billed\": 830\n      }\n  }'\n"
          },
          {
            "label": "JavaScript (SDK)",
            "lang": "javascript",
            "source": "analytics.group(\"0e8c78ea9d97a7b8185e8632\", {\n  objectTypeId: 2,\n  name: \"Acme\",\n  industry: \"Technology\",\n  road_runner_accidents: 329,\n  plan: \"enterprise\",\n  \"total billed\": 830\n});\n"
          },
          {
            "label": "Node.js (SDK)",
            "lang": "javascript",
            "source": "analytics.group({\n  userId: '019mr8mf4r',\n  groupId: '56',\n  traits: {\n    objectTypeId: 2,\n    name: 'ACME, Inc.',\n    description: 'Giant anvils'\n  }\n});\n"
          },
          {
            "label": "Python (SDK)",
            "lang": "python",
            "source": "analytics.group('user_id', 'group_id', {\n  'objectTypeId': 2,\n  'name': 'ACME, Inc.',\n  'domain': 'Giant anvils'\n})\n"
          },
          {
            "label": "Go (SDK)",
            "lang": "go",
            "source": "client.Enqueue(analytics.Group{\n  UserId:  \"019mr8mf4r\",\n  GroupId: \"56\",\n  Traits: map[string]interface{}{\n    \"objectTypeId\": 2,\n    \"name\":        \"ACME, Inc.\",\n    \"description\": \"Giant anvils\",\n  },\n})\n"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful request returns an empty object response."
          }
        }
      }
    },
    "/alias": {
      "post": {
        "operationId": "alias",
        "summary": "Merge profiles",
        "description": "*You **only** need to use this method to support a few select destinations like Mixpanel.*\n\nThe `alias` method reconciles identifiers in systems that don't automatically handle identity changes—like when a person graduates from an anonymous user to an identified user.\n\nFor example, a person typically has an `anonymousId` until you identify them by `userId`. Most destinations will automatically associate data from the anonymous ID with the new user ID when you send an `identify` call. But a select few destinations, like [Mixpanel](/integrations/data-out/connections/mixpanel/), won't! The `alias` call tells Mixpanel to represent the `anonymousId` with the new `userId`.\n\nIf you need to use the `alias` call, you'll want to send it before you identify someone with a `userId`.\n\nIf you use our web or server-side libraries, and you've already identified someone, we assume that this is the `userId` that you want to keep. Otherwise, you need to pass both the `previousId` and the `userId`.\n\n**When you use our libraries, you'll typically only provide the `previousId` and `userId`. The libraries fill in the rest of the payload automatically.**\n",
        "servers": [
          {
            "url": "https://cdp.customer.io/v1",
            "description": "This is a Data Pipeline API."
          }
        ],
        "security": [
          {
            "Basic-Auth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Strict-Mode",
            "in": "header",
            "description": "When set to `1`, enables strict validation that returns proper HTTP error codes (400/401) for validation failures. When not set or set to any other value, the API operates in permissive mode, logging errors but returning HTTP 200. [Learn more](/integrations/api/track-vs-cdp-api/#pipelines-strict-mode)\n",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "1"
              ]
            },
            "example": "1"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "x-scalar-ignore": true,
                "type": "object",
                "required": [
                  "previousId",
                  "userId"
                ],
                "properties": {
                  "previousId": {
                    "type": "string",
                    "description": "The anonymousId or userId value that you want to merge into the canonical profile."
                  },
                  "userId": {
                    "type": "string",
                    "description": "The userId that you want to keep. This is required if you haven't already identified someone with one of our web or server-side libraries.\n"
                  }
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "json",
            "label": "JSON",
            "source": "{\n  \"previousId\": \"\",\n  \"userId\": \"\"\n}"
          },
          {
            "label": "cURL",
            "lang": "shell",
            "source": "curl --request POST \\\n  --url https://cdp.customer.io/v1/alias \\\n  -u api_key: \\\n  -H 'content-type: application/json' \\\n  -d '{\"previousId\":\"23adfd82-aa0f-45a7-a756-24f2a7a4c895\",\"userId\":\"97980cfea0067\"}'\n"
          },
          {
            "label": "JavaScript (SDK)",
            "lang": "javascript",
            "source": "analytics.alias(\"old-id\",\"new-id\");\n"
          },
          {
            "label": "Node.js (SDK)",
            "lang": "javascript",
            "source": "analytics.alias({ previousId: 'anonymous_user', userId: 'identified@example.com' })\n"
          },
          {
            "label": "Python (SDK)",
            "lang": "python",
            "source": "analytics.alias(previous_id, user_id)\n"
          },
          {
            "label": "Go (SDK)",
            "lang": "go",
            "source": "client.Enqueue(analytics.Alias{\n  PreviousId: anonymousUser,\n  UserId:     \"019mr8mf4r\",\n})\n"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful request returns an empty object response."
          }
        }
      }
    },
    "/batch": {
      "post": {
        "operationId": "batch",
        "summary": "Batch requests",
        "description": "The batch method helps you send an array of `identify`, `group`, `track`, `page`, `screen`, and/or `alias` requests in a single call, so you don't have to send multiple requests. Our server-side sources use this method automatically to increase performance.\n\nRequests are limited to 500KB total per request and 32KB per call in the request. A top-level `context` object is the default for every call in the batch: we apply it to each call that doesn't include its own `context`. Set `integrations` on individual calls; a top-level `integrations` object has no effect.\n",
        "servers": [
          {
            "url": "https://cdp.customer.io/v1",
            "description": "This is a Data Pipeline API."
          }
        ],
        "security": [
          {
            "Basic-Auth": []
          }
        ],
        "parameters": [
          {
            "name": "X-Strict-Mode",
            "in": "header",
            "description": "When set to `1`, enables strict validation that returns proper HTTP error codes (400/401) for validation failures. When not set or set to any other value, the API operates in permissive mode, logging errors but returning HTTP 200. [Learn more](/integrations/api/track-vs-cdp-api/#pipelines-strict-mode)\n",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "1"
              ]
            },
            "example": "1"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "x-scalar-ignore": true,
                "type": "object",
                "properties": {
                  "batch": {
                    "type": "array",
                    "description": "A group of requests you want to send to Data Pipelines in the call. Each request must include a `type` so we know which endpoint to route it to.",
                    "items": {
                      "anyOf": [
                        {
                          "title": "Identify",
                          "oneOf": [
                            {
                              "properties": {
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "identify"
                                  ],
                                  "description": "The kind of request. Required in a `batch` call, where the endpoint can't tell us the type; the single-request endpoints set it for you."
                                },
                                "userId": {
                                  "x-scalar-ignore": true,
                                  "type": "string",
                                  "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
                                  "example": "241ma8mf4a"
                                },
                                "anonymousId": {
                                  "x-scalar-ignore": true,
                                  "type": "string",
                                  "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
                                  "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
                                },
                                "context": {
                                  "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                                  "oneOf": [
                                    {
                                      "x-scalar-ignore": true,
                                      "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                                      "title": "Non-mobile",
                                      "properties": {
                                        "active": {
                                          "type": "boolean",
                                          "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                        },
                                        "campaign": {
                                          "type": "object",
                                          "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                                          "properties": {
                                            "content": {
                                              "type": "string"
                                            },
                                            "medium": {
                                              "type": "string",
                                              "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                                            },
                                            "name": {
                                              "type": "string",
                                              "description": "The campaign name."
                                            },
                                            "source": {
                                              "type": "string",
                                              "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                                            },
                                            "term": {
                                              "type": "string",
                                              "description": "The keyword term(s) a user came from."
                                            }
                                          },
                                          "additionalProperties": {
                                            "type": "string",
                                            "x-additionalPropertiesName": "Additional UTM Parameters"
                                          }
                                        },
                                        "channel": {
                                          "type": "string",
                                          "enum": [
                                            "browser",
                                            "server",
                                            "mobile"
                                          ],
                                          "description": "The channel the event originated from."
                                        },
                                        "ip": {
                                          "type": "string",
                                          "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                        },
                                        "locale": {
                                          "type": "string",
                                          "description": "The locale string for the current user, e.g. `en-US`."
                                        },
                                        "page": {
                                          "x-scalar-ignore": true,
                                          "type": "object",
                                          "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                                          "properties": {
                                            "keywords": {
                                              "type": "array",
                                              "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                                              "items": {
                                                "type": "string"
                                              }
                                            },
                                            "name": {
                                              "type": "string",
                                              "description": "The name of the page. Reserved for future use.\n"
                                            },
                                            "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."
                                            }
                                          }
                                        },
                                        "userAgent": {
                                          "type": "string",
                                          "description": "The user agent of the device making the request"
                                        }
                                      }
                                    },
                                    {
                                      "x-scalar-ignore": true,
                                      "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                                      "title": "Mobile",
                                      "properties": {
                                        "active": {
                                          "type": "boolean",
                                          "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                        },
                                        "app": {
                                          "type": "object",
                                          "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                                          "properties": {
                                            "build": {
                                              "type": "string",
                                              "description": "The specific build number in the app."
                                            },
                                            "name": {
                                              "type": "string",
                                              "description": "The name of the app."
                                            },
                                            "namespace": {
                                              "type": "string",
                                              "description": "The app's namespace."
                                            },
                                            "version": {
                                              "type": "string",
                                              "description": "The version of the app the call originated from."
                                            }
                                          }
                                        },
                                        "channel": {
                                          "type": "string",
                                          "enum": [
                                            "browser",
                                            "server",
                                            "mobile"
                                          ],
                                          "description": "The channel the event originated from."
                                        },
                                        "device": {
                                          "type": "object",
                                          "description": "Contains information about the device the event originated from.\n",
                                          "properties": {
                                            "advertisingId": {
                                              "type": "string",
                                              "description": "The advertising ID is a unique, anonymous ID for advertising."
                                            },
                                            "id": {
                                              "type": "string",
                                              "description": "The device ID."
                                            },
                                            "manufacturer": {
                                              "type": "string",
                                              "description": "The device manufacturer."
                                            },
                                            "model": {
                                              "type": "string",
                                              "description": "The device model."
                                            },
                                            "name": {
                                              "type": "string",
                                              "description": "The device name."
                                            },
                                            "type": {
                                              "type": "string",
                                              "description": "The device type—android, iOS, etc.",
                                              "enum": [
                                                "android",
                                                "ios"
                                              ]
                                            },
                                            "version": {
                                              "type": "string",
                                              "description": "The firmware version for the device."
                                            }
                                          }
                                        },
                                        "ip": {
                                          "type": "string",
                                          "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                        },
                                        "locale": {
                                          "type": "string",
                                          "description": "The locale string for the current user, e.g. `en-US`."
                                        },
                                        "network": {
                                          "type": "object",
                                          "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                                          "properties": {
                                            "bluetooth": {
                                              "type": "boolean",
                                              "description": "Lets you know if bluetooth is enabled on a device."
                                            },
                                            "carrier": {
                                              "type": "string",
                                              "description": "The cellular carrier the phone uses."
                                            },
                                            "cellular": {
                                              "type": "boolean",
                                              "description": "Indicates whether the device's cellular connection is enabled or not."
                                            },
                                            "wifi": {
                                              "type": "boolean",
                                              "description": "Indicates whether a device's wifi connection is enabled or not."
                                            }
                                          }
                                        },
                                        "os": {
                                          "type": "object",
                                          "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                                          "properties": {
                                            "name": {
                                              "type": "string",
                                              "description": "The operating system running on the device."
                                            },
                                            "version": {
                                              "type": "string",
                                              "description": "The version of the OS running on the device."
                                            }
                                          }
                                        },
                                        "userAgent": {
                                          "type": "string",
                                          "description": "The user agent of the device making the request"
                                        }
                                      }
                                    }
                                  ]
                                },
                                "integrations": {
                                  "x-scalar-ignore": true,
                                  "type": "object",
                                  "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                                  "additionalProperties": {
                                    "type": "boolean",
                                    "x-additionalPropertiesName": "Enabled/Disabled integrations"
                                  },
                                  "example": {
                                    "All": true,
                                    "Salesforce": false
                                  }
                                },
                                "messageId": {
                                  "type": "string",
                                  "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                                },
                                "originalTimestamp": {
                                  "type": "string",
                                  "format": "date-time",
                                  "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                                },
                                "receivedAt": {
                                  "type": "string",
                                  "format": "date-time",
                                  "readOnly": true,
                                  "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                                },
                                "sentAt": {
                                  "type": "string",
                                  "format": "date-time",
                                  "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                                },
                                "timestamp": {
                                  "type": "string",
                                  "format": "date-time",
                                  "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                                },
                                "traits": {
                                  "type": "object",
                                  "description": "Additional properties that you know about a person. We've listed some common/reserved traits below, but you can add any traits that you might use in another system.",
                                  "properties": {
                                    "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>`. To update channel preferences, use `\"cio_subscription_preferences.channels.<channel>\":<boolean>`.",
                                      "type": "object",
                                      "properties": {
                                        "channels": {
                                          "type": "object",
                                          "description": "Contains channel subscription preferences. Keys are channel type names.",
                                          "additionalProperties": {
                                            "x-additionalPropertiesName": "channel_type",
                                            "description": "Each property is a boolean keyed by the channel type name: `email`, `sms`, `push`, `in_app`, `whatsapp`, `slack`, `line`, or `inbox`. `true` means a person is subscribed to the channel; `false` means they are unsubscribed. Both the topic and channel must be subscribed for a message to send.",
                                            "type": "boolean"
                                          },
                                          "example": {
                                            "email": true,
                                            "push": false
                                          }
                                        },
                                        "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"
                                          },
                                          "example": {
                                            "topic_1": true,
                                            "topic_2": false
                                          }
                                        }
                                      }
                                    },
                                    "createdAt": {
                                      "type": "string",
                                      "format": "date-time",
                                      "description": "We recommend that you pass date-time values as ISO 8601 date-time strings. We convert this value to fit destinations where appropriate."
                                    },
                                    "email": {
                                      "type": "string",
                                      "description": "A person's email address. If you pass an email address as the `userId`, Customer.io sets this trait for you."
                                    },
                                    "unsubscribed": {
                                      "description": "If `true`, a person is unsubscribed from emails, SMS, WhatsApp, and push notifications (not in-app messages). Any casing of \"true\" (i.e. TRUE, true, tRUe, etc.), 1, or \"1\" means the person is unsubscribed. If `false`, absent, or any value not considered \"true\", a person is globally subscribed, or if you enabled a subscription center, a person will receive messages based on their `cio_subscription_preferences`.",
                                      "type": "boolean"
                                    }
                                  },
                                  "additionalProperties": {
                                    "x-additionalPropertiesName": "Additional Traits",
                                    "description": "Traits that you want to set on a person. These can take any JSON shape."
                                  }
                                },
                                "version": {
                                  "readOnly": true,
                                  "type": "number",
                                  "description": "The version of the API that received the event, automatically set by Customer.io."
                                }
                              },
                              "required": [
                                "userId",
                                "type"
                              ],
                              "title": "Known User"
                            },
                            {
                              "properties": {
                                "anonymousId": {
                                  "x-scalar-ignore": true,
                                  "type": "string",
                                  "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
                                  "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "identify"
                                  ],
                                  "description": "The kind of request. Required in a `batch` call, where the endpoint can't tell us the type; the single-request endpoints set it for you."
                                },
                                "context": {
                                  "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                                  "oneOf": [
                                    {
                                      "x-scalar-ignore": true,
                                      "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                                      "title": "Non-mobile",
                                      "properties": {
                                        "active": {
                                          "type": "boolean",
                                          "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                        },
                                        "campaign": {
                                          "type": "object",
                                          "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                                          "properties": {
                                            "content": {
                                              "type": "string"
                                            },
                                            "medium": {
                                              "type": "string",
                                              "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                                            },
                                            "name": {
                                              "type": "string",
                                              "description": "The campaign name."
                                            },
                                            "source": {
                                              "type": "string",
                                              "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                                            },
                                            "term": {
                                              "type": "string",
                                              "description": "The keyword term(s) a user came from."
                                            }
                                          },
                                          "additionalProperties": {
                                            "type": "string",
                                            "x-additionalPropertiesName": "Additional UTM Parameters"
                                          }
                                        },
                                        "channel": {
                                          "type": "string",
                                          "enum": [
                                            "browser",
                                            "server",
                                            "mobile"
                                          ],
                                          "description": "The channel the event originated from."
                                        },
                                        "ip": {
                                          "type": "string",
                                          "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                        },
                                        "locale": {
                                          "type": "string",
                                          "description": "The locale string for the current user, e.g. `en-US`."
                                        },
                                        "page": {
                                          "x-scalar-ignore": true,
                                          "type": "object",
                                          "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                                          "properties": {
                                            "keywords": {
                                              "type": "array",
                                              "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                                              "items": {
                                                "type": "string"
                                              }
                                            },
                                            "name": {
                                              "type": "string",
                                              "description": "The name of the page. Reserved for future use.\n"
                                            },
                                            "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."
                                            }
                                          }
                                        },
                                        "userAgent": {
                                          "type": "string",
                                          "description": "The user agent of the device making the request"
                                        }
                                      }
                                    },
                                    {
                                      "x-scalar-ignore": true,
                                      "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                                      "title": "Mobile",
                                      "properties": {
                                        "active": {
                                          "type": "boolean",
                                          "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                        },
                                        "app": {
                                          "type": "object",
                                          "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                                          "properties": {
                                            "build": {
                                              "type": "string",
                                              "description": "The specific build number in the app."
                                            },
                                            "name": {
                                              "type": "string",
                                              "description": "The name of the app."
                                            },
                                            "namespace": {
                                              "type": "string",
                                              "description": "The app's namespace."
                                            },
                                            "version": {
                                              "type": "string",
                                              "description": "The version of the app the call originated from."
                                            }
                                          }
                                        },
                                        "channel": {
                                          "type": "string",
                                          "enum": [
                                            "browser",
                                            "server",
                                            "mobile"
                                          ],
                                          "description": "The channel the event originated from."
                                        },
                                        "device": {
                                          "type": "object",
                                          "description": "Contains information about the device the event originated from.\n",
                                          "properties": {
                                            "advertisingId": {
                                              "type": "string",
                                              "description": "The advertising ID is a unique, anonymous ID for advertising."
                                            },
                                            "id": {
                                              "type": "string",
                                              "description": "The device ID."
                                            },
                                            "manufacturer": {
                                              "type": "string",
                                              "description": "The device manufacturer."
                                            },
                                            "model": {
                                              "type": "string",
                                              "description": "The device model."
                                            },
                                            "name": {
                                              "type": "string",
                                              "description": "The device name."
                                            },
                                            "type": {
                                              "type": "string",
                                              "description": "The device type—android, iOS, etc.",
                                              "enum": [
                                                "android",
                                                "ios"
                                              ]
                                            },
                                            "version": {
                                              "type": "string",
                                              "description": "The firmware version for the device."
                                            }
                                          }
                                        },
                                        "ip": {
                                          "type": "string",
                                          "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                        },
                                        "locale": {
                                          "type": "string",
                                          "description": "The locale string for the current user, e.g. `en-US`."
                                        },
                                        "network": {
                                          "type": "object",
                                          "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                                          "properties": {
                                            "bluetooth": {
                                              "type": "boolean",
                                              "description": "Lets you know if bluetooth is enabled on a device."
                                            },
                                            "carrier": {
                                              "type": "string",
                                              "description": "The cellular carrier the phone uses."
                                            },
                                            "cellular": {
                                              "type": "boolean",
                                              "description": "Indicates whether the device's cellular connection is enabled or not."
                                            },
                                            "wifi": {
                                              "type": "boolean",
                                              "description": "Indicates whether a device's wifi connection is enabled or not."
                                            }
                                          }
                                        },
                                        "os": {
                                          "type": "object",
                                          "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                                          "properties": {
                                            "name": {
                                              "type": "string",
                                              "description": "The operating system running on the device."
                                            },
                                            "version": {
                                              "type": "string",
                                              "description": "The version of the OS running on the device."
                                            }
                                          }
                                        },
                                        "userAgent": {
                                          "type": "string",
                                          "description": "The user agent of the device making the request"
                                        }
                                      }
                                    }
                                  ]
                                },
                                "integrations": {
                                  "x-scalar-ignore": true,
                                  "type": "object",
                                  "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                                  "additionalProperties": {
                                    "type": "boolean",
                                    "x-additionalPropertiesName": "Enabled/Disabled integrations"
                                  },
                                  "example": {
                                    "All": true,
                                    "Salesforce": false
                                  }
                                },
                                "messageId": {
                                  "type": "string",
                                  "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                                },
                                "originalTimestamp": {
                                  "type": "string",
                                  "format": "date-time",
                                  "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                                },
                                "receivedAt": {
                                  "type": "string",
                                  "format": "date-time",
                                  "readOnly": true,
                                  "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                                },
                                "sentAt": {
                                  "type": "string",
                                  "format": "date-time",
                                  "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                                },
                                "timestamp": {
                                  "type": "string",
                                  "format": "date-time",
                                  "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                                },
                                "traits": {
                                  "type": "object",
                                  "description": "Traits you know about the person. Customer.io ignores anonymous `identify` calls, but our JavaScript client stores these traits and attaches them when you later identify the person with a `userId`.",
                                  "additionalProperties": {
                                    "x-additionalPropertiesName": "Traits",
                                    "description": "Traits that you want to set on a person. These can take any JSON shape."
                                  }
                                },
                                "version": {
                                  "readOnly": true,
                                  "type": "number",
                                  "description": "The version of the API that received the event, automatically set by Customer.io."
                                }
                              },
                              "required": [
                                "anonymousId",
                                "type"
                              ],
                              "title": "Anonymous User"
                            }
                          ]
                        },
                        {
                          "title": "Track",
                          "oneOf": [
                            {
                              "properties": {
                                "event": {
                                  "type": "string",
                                  "description": "The name of the event",
                                  "example": "new_account"
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "track"
                                  ],
                                  "description": "The kind of request. Required in a `batch` call, where the endpoint can't tell us the type; the single-request endpoints set it for you."
                                },
                                "userId": {
                                  "x-scalar-ignore": true,
                                  "type": "string",
                                  "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
                                  "example": "241ma8mf4a"
                                },
                                "context": {
                                  "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                                  "oneOf": [
                                    {
                                      "x-scalar-ignore": true,
                                      "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                                      "title": "Non-mobile",
                                      "properties": {
                                        "active": {
                                          "type": "boolean",
                                          "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                        },
                                        "campaign": {
                                          "type": "object",
                                          "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                                          "properties": {
                                            "content": {
                                              "type": "string"
                                            },
                                            "medium": {
                                              "type": "string",
                                              "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                                            },
                                            "name": {
                                              "type": "string",
                                              "description": "The campaign name."
                                            },
                                            "source": {
                                              "type": "string",
                                              "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                                            },
                                            "term": {
                                              "type": "string",
                                              "description": "The keyword term(s) a user came from."
                                            }
                                          },
                                          "additionalProperties": {
                                            "type": "string",
                                            "x-additionalPropertiesName": "Additional UTM Parameters"
                                          }
                                        },
                                        "channel": {
                                          "type": "string",
                                          "enum": [
                                            "browser",
                                            "server",
                                            "mobile"
                                          ],
                                          "description": "The channel the event originated from."
                                        },
                                        "ip": {
                                          "type": "string",
                                          "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                        },
                                        "locale": {
                                          "type": "string",
                                          "description": "The locale string for the current user, e.g. `en-US`."
                                        },
                                        "page": {
                                          "x-scalar-ignore": true,
                                          "type": "object",
                                          "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                                          "properties": {
                                            "keywords": {
                                              "type": "array",
                                              "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                                              "items": {
                                                "type": "string"
                                              }
                                            },
                                            "name": {
                                              "type": "string",
                                              "description": "The name of the page. Reserved for future use.\n"
                                            },
                                            "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."
                                            }
                                          }
                                        },
                                        "userAgent": {
                                          "type": "string",
                                          "description": "The user agent of the device making the request"
                                        }
                                      }
                                    },
                                    {
                                      "x-scalar-ignore": true,
                                      "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                                      "title": "Mobile",
                                      "properties": {
                                        "active": {
                                          "type": "boolean",
                                          "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                        },
                                        "app": {
                                          "type": "object",
                                          "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                                          "properties": {
                                            "build": {
                                              "type": "string",
                                              "description": "The specific build number in the app."
                                            },
                                            "name": {
                                              "type": "string",
                                              "description": "The name of the app."
                                            },
                                            "namespace": {
                                              "type": "string",
                                              "description": "The app's namespace."
                                            },
                                            "version": {
                                              "type": "string",
                                              "description": "The version of the app the call originated from."
                                            }
                                          }
                                        },
                                        "channel": {
                                          "type": "string",
                                          "enum": [
                                            "browser",
                                            "server",
                                            "mobile"
                                          ],
                                          "description": "The channel the event originated from."
                                        },
                                        "device": {
                                          "type": "object",
                                          "description": "Contains information about the device the event originated from.\n",
                                          "properties": {
                                            "advertisingId": {
                                              "type": "string",
                                              "description": "The advertising ID is a unique, anonymous ID for advertising."
                                            },
                                            "id": {
                                              "type": "string",
                                              "description": "The device ID."
                                            },
                                            "manufacturer": {
                                              "type": "string",
                                              "description": "The device manufacturer."
                                            },
                                            "model": {
                                              "type": "string",
                                              "description": "The device model."
                                            },
                                            "name": {
                                              "type": "string",
                                              "description": "The device name."
                                            },
                                            "type": {
                                              "type": "string",
                                              "description": "The device type—android, iOS, etc.",
                                              "enum": [
                                                "android",
                                                "ios"
                                              ]
                                            },
                                            "version": {
                                              "type": "string",
                                              "description": "The firmware version for the device."
                                            }
                                          }
                                        },
                                        "ip": {
                                          "type": "string",
                                          "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                        },
                                        "locale": {
                                          "type": "string",
                                          "description": "The locale string for the current user, e.g. `en-US`."
                                        },
                                        "network": {
                                          "type": "object",
                                          "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                                          "properties": {
                                            "bluetooth": {
                                              "type": "boolean",
                                              "description": "Lets you know if bluetooth is enabled on a device."
                                            },
                                            "carrier": {
                                              "type": "string",
                                              "description": "The cellular carrier the phone uses."
                                            },
                                            "cellular": {
                                              "type": "boolean",
                                              "description": "Indicates whether the device's cellular connection is enabled or not."
                                            },
                                            "wifi": {
                                              "type": "boolean",
                                              "description": "Indicates whether a device's wifi connection is enabled or not."
                                            }
                                          }
                                        },
                                        "os": {
                                          "type": "object",
                                          "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                                          "properties": {
                                            "name": {
                                              "type": "string",
                                              "description": "The operating system running on the device."
                                            },
                                            "version": {
                                              "type": "string",
                                              "description": "The version of the OS running on the device."
                                            }
                                          }
                                        },
                                        "userAgent": {
                                          "type": "string",
                                          "description": "The user agent of the device making the request"
                                        }
                                      }
                                    }
                                  ]
                                },
                                "integrations": {
                                  "x-scalar-ignore": true,
                                  "type": "object",
                                  "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                                  "additionalProperties": {
                                    "type": "boolean",
                                    "x-additionalPropertiesName": "Enabled/Disabled integrations"
                                  },
                                  "example": {
                                    "All": true,
                                    "Salesforce": false
                                  }
                                },
                                "messageId": {
                                  "type": "string",
                                  "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                                },
                                "originalTimestamp": {
                                  "type": "string",
                                  "format": "date-time",
                                  "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                                },
                                "properties": {
                                  "additionalProperties": {
                                    "x-additionalPropertiesName": "Event Properties",
                                    "description": "Additional properties that you want to capture in the event. These can take any JSON shape."
                                  },
                                  "description": "Additional properties for your event.",
                                  "type": "object"
                                },
                                "receivedAt": {
                                  "type": "string",
                                  "format": "date-time",
                                  "readOnly": true,
                                  "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                                },
                                "sentAt": {
                                  "type": "string",
                                  "format": "date-time",
                                  "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                                },
                                "timestamp": {
                                  "type": "string",
                                  "format": "date-time",
                                  "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                                },
                                "version": {
                                  "readOnly": true,
                                  "type": "number",
                                  "description": "The version of the API that received the event, automatically set by Customer.io."
                                }
                              },
                              "required": [
                                "userId",
                                "event",
                                "type"
                              ],
                              "title": "Known User"
                            },
                            {
                              "properties": {
                                "anonymousId": {
                                  "x-scalar-ignore": true,
                                  "type": "string",
                                  "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
                                  "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
                                },
                                "event": {
                                  "type": "string",
                                  "description": "The name of the event",
                                  "example": "new_account"
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "track"
                                  ],
                                  "description": "The kind of request. Required in a `batch` call, where the endpoint can't tell us the type; the single-request endpoints set it for you."
                                },
                                "context": {
                                  "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                                  "oneOf": [
                                    {
                                      "x-scalar-ignore": true,
                                      "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                                      "title": "Non-mobile",
                                      "properties": {
                                        "active": {
                                          "type": "boolean",
                                          "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                        },
                                        "campaign": {
                                          "type": "object",
                                          "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                                          "properties": {
                                            "content": {
                                              "type": "string"
                                            },
                                            "medium": {
                                              "type": "string",
                                              "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                                            },
                                            "name": {
                                              "type": "string",
                                              "description": "The campaign name."
                                            },
                                            "source": {
                                              "type": "string",
                                              "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                                            },
                                            "term": {
                                              "type": "string",
                                              "description": "The keyword term(s) a user came from."
                                            }
                                          },
                                          "additionalProperties": {
                                            "type": "string",
                                            "x-additionalPropertiesName": "Additional UTM Parameters"
                                          }
                                        },
                                        "channel": {
                                          "type": "string",
                                          "enum": [
                                            "browser",
                                            "server",
                                            "mobile"
                                          ],
                                          "description": "The channel the event originated from."
                                        },
                                        "ip": {
                                          "type": "string",
                                          "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                        },
                                        "locale": {
                                          "type": "string",
                                          "description": "The locale string for the current user, e.g. `en-US`."
                                        },
                                        "page": {
                                          "x-scalar-ignore": true,
                                          "type": "object",
                                          "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                                          "properties": {
                                            "keywords": {
                                              "type": "array",
                                              "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                                              "items": {
                                                "type": "string"
                                              }
                                            },
                                            "name": {
                                              "type": "string",
                                              "description": "The name of the page. Reserved for future use.\n"
                                            },
                                            "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."
                                            }
                                          }
                                        },
                                        "userAgent": {
                                          "type": "string",
                                          "description": "The user agent of the device making the request"
                                        }
                                      }
                                    },
                                    {
                                      "x-scalar-ignore": true,
                                      "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                                      "title": "Mobile",
                                      "properties": {
                                        "active": {
                                          "type": "boolean",
                                          "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                        },
                                        "app": {
                                          "type": "object",
                                          "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                                          "properties": {
                                            "build": {
                                              "type": "string",
                                              "description": "The specific build number in the app."
                                            },
                                            "name": {
                                              "type": "string",
                                              "description": "The name of the app."
                                            },
                                            "namespace": {
                                              "type": "string",
                                              "description": "The app's namespace."
                                            },
                                            "version": {
                                              "type": "string",
                                              "description": "The version of the app the call originated from."
                                            }
                                          }
                                        },
                                        "channel": {
                                          "type": "string",
                                          "enum": [
                                            "browser",
                                            "server",
                                            "mobile"
                                          ],
                                          "description": "The channel the event originated from."
                                        },
                                        "device": {
                                          "type": "object",
                                          "description": "Contains information about the device the event originated from.\n",
                                          "properties": {
                                            "advertisingId": {
                                              "type": "string",
                                              "description": "The advertising ID is a unique, anonymous ID for advertising."
                                            },
                                            "id": {
                                              "type": "string",
                                              "description": "The device ID."
                                            },
                                            "manufacturer": {
                                              "type": "string",
                                              "description": "The device manufacturer."
                                            },
                                            "model": {
                                              "type": "string",
                                              "description": "The device model."
                                            },
                                            "name": {
                                              "type": "string",
                                              "description": "The device name."
                                            },
                                            "type": {
                                              "type": "string",
                                              "description": "The device type—android, iOS, etc.",
                                              "enum": [
                                                "android",
                                                "ios"
                                              ]
                                            },
                                            "version": {
                                              "type": "string",
                                              "description": "The firmware version for the device."
                                            }
                                          }
                                        },
                                        "ip": {
                                          "type": "string",
                                          "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                        },
                                        "locale": {
                                          "type": "string",
                                          "description": "The locale string for the current user, e.g. `en-US`."
                                        },
                                        "network": {
                                          "type": "object",
                                          "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                                          "properties": {
                                            "bluetooth": {
                                              "type": "boolean",
                                              "description": "Lets you know if bluetooth is enabled on a device."
                                            },
                                            "carrier": {
                                              "type": "string",
                                              "description": "The cellular carrier the phone uses."
                                            },
                                            "cellular": {
                                              "type": "boolean",
                                              "description": "Indicates whether the device's cellular connection is enabled or not."
                                            },
                                            "wifi": {
                                              "type": "boolean",
                                              "description": "Indicates whether a device's wifi connection is enabled or not."
                                            }
                                          }
                                        },
                                        "os": {
                                          "type": "object",
                                          "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                                          "properties": {
                                            "name": {
                                              "type": "string",
                                              "description": "The operating system running on the device."
                                            },
                                            "version": {
                                              "type": "string",
                                              "description": "The version of the OS running on the device."
                                            }
                                          }
                                        },
                                        "userAgent": {
                                          "type": "string",
                                          "description": "The user agent of the device making the request"
                                        }
                                      }
                                    }
                                  ]
                                },
                                "integrations": {
                                  "x-scalar-ignore": true,
                                  "type": "object",
                                  "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                                  "additionalProperties": {
                                    "type": "boolean",
                                    "x-additionalPropertiesName": "Enabled/Disabled integrations"
                                  },
                                  "example": {
                                    "All": true,
                                    "Salesforce": false
                                  }
                                },
                                "messageId": {
                                  "type": "string",
                                  "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                                },
                                "originalTimestamp": {
                                  "type": "string",
                                  "format": "date-time",
                                  "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                                },
                                "properties": {
                                  "additionalProperties": {
                                    "x-additionalPropertiesName": "Event Properties",
                                    "description": "Additional properties that you want to capture in the event. These can take any JSON shape."
                                  },
                                  "description": "Additional properties for your event.",
                                  "type": "object"
                                },
                                "receivedAt": {
                                  "type": "string",
                                  "format": "date-time",
                                  "readOnly": true,
                                  "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                                },
                                "sentAt": {
                                  "type": "string",
                                  "format": "date-time",
                                  "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                                },
                                "timestamp": {
                                  "type": "string",
                                  "format": "date-time",
                                  "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                                },
                                "version": {
                                  "readOnly": true,
                                  "type": "number",
                                  "description": "The version of the API that received the event, automatically set by Customer.io."
                                }
                              },
                              "required": [
                                "event",
                                "anonymousId",
                                "type"
                              ],
                              "title": "Anonymous User"
                            },
                            {
                              "properties": {
                                "event": {
                                  "type": "string",
                                  "description": "The name of the event",
                                  "example": "new_account"
                                },
                                "groupId": {
                                  "type": "string",
                                  "description": "The ID of the group you want to attribute an event to. Note that not all destinations allow groups (or their downstream equivalent) to perform groups."
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "track"
                                  ],
                                  "description": "The kind of request. Required in a `batch` call, where the endpoint can't tell us the type; the single-request endpoints set it for you."
                                },
                                "context": {
                                  "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                                  "oneOf": [
                                    {
                                      "x-scalar-ignore": true,
                                      "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                                      "title": "Non-mobile",
                                      "properties": {
                                        "active": {
                                          "type": "boolean",
                                          "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                        },
                                        "campaign": {
                                          "type": "object",
                                          "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                                          "properties": {
                                            "content": {
                                              "type": "string"
                                            },
                                            "medium": {
                                              "type": "string",
                                              "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                                            },
                                            "name": {
                                              "type": "string",
                                              "description": "The campaign name."
                                            },
                                            "source": {
                                              "type": "string",
                                              "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                                            },
                                            "term": {
                                              "type": "string",
                                              "description": "The keyword term(s) a user came from."
                                            }
                                          },
                                          "additionalProperties": {
                                            "type": "string",
                                            "x-additionalPropertiesName": "Additional UTM Parameters"
                                          }
                                        },
                                        "channel": {
                                          "type": "string",
                                          "enum": [
                                            "browser",
                                            "server",
                                            "mobile"
                                          ],
                                          "description": "The channel the event originated from."
                                        },
                                        "ip": {
                                          "type": "string",
                                          "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                        },
                                        "locale": {
                                          "type": "string",
                                          "description": "The locale string for the current user, e.g. `en-US`."
                                        },
                                        "page": {
                                          "x-scalar-ignore": true,
                                          "type": "object",
                                          "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                                          "properties": {
                                            "keywords": {
                                              "type": "array",
                                              "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                                              "items": {
                                                "type": "string"
                                              }
                                            },
                                            "name": {
                                              "type": "string",
                                              "description": "The name of the page. Reserved for future use.\n"
                                            },
                                            "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."
                                            }
                                          }
                                        },
                                        "userAgent": {
                                          "type": "string",
                                          "description": "The user agent of the device making the request"
                                        }
                                      }
                                    },
                                    {
                                      "x-scalar-ignore": true,
                                      "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                                      "title": "Mobile",
                                      "properties": {
                                        "active": {
                                          "type": "boolean",
                                          "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                        },
                                        "app": {
                                          "type": "object",
                                          "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                                          "properties": {
                                            "build": {
                                              "type": "string",
                                              "description": "The specific build number in the app."
                                            },
                                            "name": {
                                              "type": "string",
                                              "description": "The name of the app."
                                            },
                                            "namespace": {
                                              "type": "string",
                                              "description": "The app's namespace."
                                            },
                                            "version": {
                                              "type": "string",
                                              "description": "The version of the app the call originated from."
                                            }
                                          }
                                        },
                                        "channel": {
                                          "type": "string",
                                          "enum": [
                                            "browser",
                                            "server",
                                            "mobile"
                                          ],
                                          "description": "The channel the event originated from."
                                        },
                                        "device": {
                                          "type": "object",
                                          "description": "Contains information about the device the event originated from.\n",
                                          "properties": {
                                            "advertisingId": {
                                              "type": "string",
                                              "description": "The advertising ID is a unique, anonymous ID for advertising."
                                            },
                                            "id": {
                                              "type": "string",
                                              "description": "The device ID."
                                            },
                                            "manufacturer": {
                                              "type": "string",
                                              "description": "The device manufacturer."
                                            },
                                            "model": {
                                              "type": "string",
                                              "description": "The device model."
                                            },
                                            "name": {
                                              "type": "string",
                                              "description": "The device name."
                                            },
                                            "type": {
                                              "type": "string",
                                              "description": "The device type—android, iOS, etc.",
                                              "enum": [
                                                "android",
                                                "ios"
                                              ]
                                            },
                                            "version": {
                                              "type": "string",
                                              "description": "The firmware version for the device."
                                            }
                                          }
                                        },
                                        "ip": {
                                          "type": "string",
                                          "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                        },
                                        "locale": {
                                          "type": "string",
                                          "description": "The locale string for the current user, e.g. `en-US`."
                                        },
                                        "network": {
                                          "type": "object",
                                          "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                                          "properties": {
                                            "bluetooth": {
                                              "type": "boolean",
                                              "description": "Lets you know if bluetooth is enabled on a device."
                                            },
                                            "carrier": {
                                              "type": "string",
                                              "description": "The cellular carrier the phone uses."
                                            },
                                            "cellular": {
                                              "type": "boolean",
                                              "description": "Indicates whether the device's cellular connection is enabled or not."
                                            },
                                            "wifi": {
                                              "type": "boolean",
                                              "description": "Indicates whether a device's wifi connection is enabled or not."
                                            }
                                          }
                                        },
                                        "os": {
                                          "type": "object",
                                          "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                                          "properties": {
                                            "name": {
                                              "type": "string",
                                              "description": "The operating system running on the device."
                                            },
                                            "version": {
                                              "type": "string",
                                              "description": "The version of the OS running on the device."
                                            }
                                          }
                                        },
                                        "userAgent": {
                                          "type": "string",
                                          "description": "The user agent of the device making the request"
                                        }
                                      }
                                    }
                                  ]
                                },
                                "integrations": {
                                  "x-scalar-ignore": true,
                                  "type": "object",
                                  "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                                  "additionalProperties": {
                                    "type": "boolean",
                                    "x-additionalPropertiesName": "Enabled/Disabled integrations"
                                  },
                                  "example": {
                                    "All": true,
                                    "Salesforce": false
                                  }
                                },
                                "messageId": {
                                  "type": "string",
                                  "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                                },
                                "originalTimestamp": {
                                  "type": "string",
                                  "format": "date-time",
                                  "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                                },
                                "properties": {
                                  "additionalProperties": {
                                    "x-additionalPropertiesName": "Event Properties",
                                    "description": "Additional properties that you want to capture in the event. These can take any JSON shape."
                                  },
                                  "description": "Additional properties for your event.",
                                  "type": "object"
                                },
                                "receivedAt": {
                                  "type": "string",
                                  "format": "date-time",
                                  "readOnly": true,
                                  "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                                },
                                "sentAt": {
                                  "type": "string",
                                  "format": "date-time",
                                  "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                                },
                                "timestamp": {
                                  "type": "string",
                                  "format": "date-time",
                                  "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                                },
                                "version": {
                                  "readOnly": true,
                                  "type": "number",
                                  "description": "The version of the API that received the event, automatically set by Customer.io."
                                }
                              },
                              "required": [
                                "event",
                                "groupId",
                                "type"
                              ],
                              "title": "Group"
                            }
                          ]
                        },
                        {
                          "title": "Page",
                          "oneOf": [
                            {
                              "properties": {
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "page"
                                  ],
                                  "description": "The kind of request. Required in a `batch` call, where the endpoint can't tell us the type; the single-request endpoints set it for you."
                                },
                                "userId": {
                                  "x-scalar-ignore": true,
                                  "type": "string",
                                  "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
                                  "example": "241ma8mf4a"
                                },
                                "context": {
                                  "x-scalar-ignore": true,
                                  "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                                  "title": "Non-mobile",
                                  "properties": {
                                    "active": {
                                      "type": "boolean",
                                      "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                    },
                                    "campaign": {
                                      "type": "object",
                                      "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                                      "properties": {
                                        "content": {
                                          "type": "string"
                                        },
                                        "medium": {
                                          "type": "string",
                                          "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                                        },
                                        "name": {
                                          "type": "string",
                                          "description": "The campaign name."
                                        },
                                        "source": {
                                          "type": "string",
                                          "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                                        },
                                        "term": {
                                          "type": "string",
                                          "description": "The keyword term(s) a user came from."
                                        }
                                      },
                                      "additionalProperties": {
                                        "type": "string",
                                        "x-additionalPropertiesName": "Additional UTM Parameters"
                                      }
                                    },
                                    "channel": {
                                      "type": "string",
                                      "enum": [
                                        "browser",
                                        "server",
                                        "mobile"
                                      ],
                                      "description": "The channel the event originated from."
                                    },
                                    "ip": {
                                      "type": "string",
                                      "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                    },
                                    "locale": {
                                      "type": "string",
                                      "description": "The locale string for the current user, e.g. `en-US`."
                                    },
                                    "page": {
                                      "x-scalar-ignore": true,
                                      "type": "object",
                                      "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                                      "properties": {
                                        "keywords": {
                                          "type": "array",
                                          "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                                          "items": {
                                            "type": "string"
                                          }
                                        },
                                        "name": {
                                          "type": "string",
                                          "description": "The name of the page. Reserved for future use.\n"
                                        },
                                        "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."
                                        }
                                      }
                                    },
                                    "userAgent": {
                                      "type": "string",
                                      "description": "The user agent of the device making the request"
                                    }
                                  }
                                },
                                "integrations": {
                                  "x-scalar-ignore": true,
                                  "type": "object",
                                  "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                                  "additionalProperties": {
                                    "type": "boolean",
                                    "x-additionalPropertiesName": "Enabled/Disabled integrations"
                                  },
                                  "example": {
                                    "All": true,
                                    "Salesforce": false
                                  }
                                },
                                "messageId": {
                                  "type": "string",
                                  "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                                },
                                "name": {
                                  "type": "string",
                                  "description": "The name of the page.",
                                  "example": "home"
                                },
                                "originalTimestamp": {
                                  "type": "string",
                                  "format": "date-time",
                                  "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                                },
                                "properties": {
                                  "additionalProperties": {
                                    "x-additionalPropertiesName": "Page Properties"
                                  },
                                  "description": "Additional `page` properties. Analytics.js automatically collects `url`, `title`, `referrer`, `path`, and `search` properties. But, if you use our other sources or you write your own integration, you should consider sending these properties yourself. Destination actions that take `page` events often rely on the `url` and `title` properties.",
                                  "properties": {
                                    "category": {
                                      "type": "string",
                                      "description": "The category of the page. This might be useful if you have a single page routes or have a flattened URL structure."
                                    },
                                    "path": {
                                      "type": "string",
                                      "description": "The path of the page. This defaults to `location.pathname`, but can be overridden.",
                                      "example": "/page"
                                    },
                                    "referrer": {
                                      "type": "string",
                                      "description": "The referrer of the page, if applicable. This defaults to `document.referrer`, but can be overridden.",
                                      "example": "http://www.google.com/search?q=example"
                                    },
                                    "search": {
                                      "type": "string",
                                      "description": "The search query in the URL, if present. This defaults to `location.search`, but can be overridden.",
                                      "example": "?q=sfgiants"
                                    },
                                    "title": {
                                      "type": "string",
                                      "description": "The title of the page. This defaults to `document.title`, but can be overridden.",
                                      "example": "Page | Example.com"
                                    },
                                    "url": {
                                      "type": "string",
                                      "description": "The URL of the page. This defaults to a canonical url if available, and falls back to `document.location.href`.",
                                      "example": "https://www.example.com/page/"
                                    }
                                  },
                                  "type": "object"
                                },
                                "receivedAt": {
                                  "type": "string",
                                  "format": "date-time",
                                  "readOnly": true,
                                  "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                                },
                                "sentAt": {
                                  "type": "string",
                                  "format": "date-time",
                                  "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                                },
                                "timestamp": {
                                  "type": "string",
                                  "format": "date-time",
                                  "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                                },
                                "version": {
                                  "readOnly": true,
                                  "type": "number",
                                  "description": "The version of the API that received the event, automatically set by Customer.io."
                                }
                              },
                              "required": [
                                "userId",
                                "type"
                              ],
                              "title": "Known User"
                            },
                            {
                              "properties": {
                                "anonymousId": {
                                  "x-scalar-ignore": true,
                                  "type": "string",
                                  "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
                                  "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "page"
                                  ],
                                  "description": "The kind of request. Required in a `batch` call, where the endpoint can't tell us the type; the single-request endpoints set it for you."
                                },
                                "context": {
                                  "x-scalar-ignore": true,
                                  "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                                  "title": "Non-mobile",
                                  "properties": {
                                    "active": {
                                      "type": "boolean",
                                      "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                    },
                                    "campaign": {
                                      "type": "object",
                                      "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                                      "properties": {
                                        "content": {
                                          "type": "string"
                                        },
                                        "medium": {
                                          "type": "string",
                                          "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                                        },
                                        "name": {
                                          "type": "string",
                                          "description": "The campaign name."
                                        },
                                        "source": {
                                          "type": "string",
                                          "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                                        },
                                        "term": {
                                          "type": "string",
                                          "description": "The keyword term(s) a user came from."
                                        }
                                      },
                                      "additionalProperties": {
                                        "type": "string",
                                        "x-additionalPropertiesName": "Additional UTM Parameters"
                                      }
                                    },
                                    "channel": {
                                      "type": "string",
                                      "enum": [
                                        "browser",
                                        "server",
                                        "mobile"
                                      ],
                                      "description": "The channel the event originated from."
                                    },
                                    "ip": {
                                      "type": "string",
                                      "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                    },
                                    "locale": {
                                      "type": "string",
                                      "description": "The locale string for the current user, e.g. `en-US`."
                                    },
                                    "page": {
                                      "x-scalar-ignore": true,
                                      "type": "object",
                                      "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                                      "properties": {
                                        "keywords": {
                                          "type": "array",
                                          "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                                          "items": {
                                            "type": "string"
                                          }
                                        },
                                        "name": {
                                          "type": "string",
                                          "description": "The name of the page. Reserved for future use.\n"
                                        },
                                        "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."
                                        }
                                      }
                                    },
                                    "userAgent": {
                                      "type": "string",
                                      "description": "The user agent of the device making the request"
                                    }
                                  }
                                },
                                "integrations": {
                                  "x-scalar-ignore": true,
                                  "type": "object",
                                  "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                                  "additionalProperties": {
                                    "type": "boolean",
                                    "x-additionalPropertiesName": "Enabled/Disabled integrations"
                                  },
                                  "example": {
                                    "All": true,
                                    "Salesforce": false
                                  }
                                },
                                "messageId": {
                                  "type": "string",
                                  "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                                },
                                "name": {
                                  "type": "string",
                                  "description": "The name of the page.",
                                  "example": "home"
                                },
                                "originalTimestamp": {
                                  "type": "string",
                                  "format": "date-time",
                                  "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                                },
                                "properties": {
                                  "additionalProperties": {
                                    "x-additionalPropertiesName": "Page Properties"
                                  },
                                  "description": "Additional properties for your event.",
                                  "properties": {
                                    "category": {
                                      "type": "string",
                                      "description": "The category of the page. This might be useful if you have a single page routes or have a flattened URL structure."
                                    },
                                    "path": {
                                      "type": "string",
                                      "description": "The path of the page. This defaults to location.pathname, but can be overridden.",
                                      "example": "/page"
                                    },
                                    "referrer": {
                                      "type": "string",
                                      "description": "The referrer of the page, if applicable. This defaults to document.referrer, but can be overridden.",
                                      "example": "http://www.google.com/search?q=example"
                                    },
                                    "search": {
                                      "type": "string",
                                      "description": "The search query in the URL, if present. This defaults to location.search, but can be overridden.",
                                      "example": "?q=sfgiants"
                                    },
                                    "title": {
                                      "type": "string",
                                      "description": "The title of the page. This defaults to `document.title`, but can be overridden.",
                                      "example": "Page | Example.com"
                                    },
                                    "url": {
                                      "type": "string",
                                      "description": "The URL of the page."
                                    }
                                  },
                                  "type": "object"
                                },
                                "receivedAt": {
                                  "type": "string",
                                  "format": "date-time",
                                  "readOnly": true,
                                  "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                                },
                                "sentAt": {
                                  "type": "string",
                                  "format": "date-time",
                                  "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                                },
                                "timestamp": {
                                  "type": "string",
                                  "format": "date-time",
                                  "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                                },
                                "version": {
                                  "readOnly": true,
                                  "type": "number",
                                  "description": "The version of the API that received the event, automatically set by Customer.io."
                                }
                              },
                              "required": [
                                "anonymousId",
                                "type"
                              ],
                              "title": "Anonymous User"
                            }
                          ]
                        },
                        {
                          "title": "Screen",
                          "oneOf": [
                            {
                              "properties": {
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "screen"
                                  ],
                                  "description": "The kind of request. Required in a `batch` call, where the endpoint can't tell us the type; the single-request endpoints set it for you."
                                },
                                "userId": {
                                  "x-scalar-ignore": true,
                                  "type": "string",
                                  "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
                                  "example": "241ma8mf4a"
                                },
                                "context": {
                                  "x-scalar-ignore": true,
                                  "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                                  "title": "Mobile",
                                  "properties": {
                                    "active": {
                                      "type": "boolean",
                                      "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                    },
                                    "app": {
                                      "type": "object",
                                      "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                                      "properties": {
                                        "build": {
                                          "type": "string",
                                          "description": "The specific build number in the app."
                                        },
                                        "name": {
                                          "type": "string",
                                          "description": "The name of the app."
                                        },
                                        "namespace": {
                                          "type": "string",
                                          "description": "The app's namespace."
                                        },
                                        "version": {
                                          "type": "string",
                                          "description": "The version of the app the call originated from."
                                        }
                                      }
                                    },
                                    "channel": {
                                      "type": "string",
                                      "enum": [
                                        "browser",
                                        "server",
                                        "mobile"
                                      ],
                                      "description": "The channel the event originated from."
                                    },
                                    "device": {
                                      "type": "object",
                                      "description": "Contains information about the device the event originated from.\n",
                                      "properties": {
                                        "advertisingId": {
                                          "type": "string",
                                          "description": "The advertising ID is a unique, anonymous ID for advertising."
                                        },
                                        "id": {
                                          "type": "string",
                                          "description": "The device ID."
                                        },
                                        "manufacturer": {
                                          "type": "string",
                                          "description": "The device manufacturer."
                                        },
                                        "model": {
                                          "type": "string",
                                          "description": "The device model."
                                        },
                                        "name": {
                                          "type": "string",
                                          "description": "The device name."
                                        },
                                        "type": {
                                          "type": "string",
                                          "description": "The device type—android, iOS, etc.",
                                          "enum": [
                                            "android",
                                            "ios"
                                          ]
                                        },
                                        "version": {
                                          "type": "string",
                                          "description": "The firmware version for the device."
                                        }
                                      }
                                    },
                                    "ip": {
                                      "type": "string",
                                      "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                    },
                                    "locale": {
                                      "type": "string",
                                      "description": "The locale string for the current user, e.g. `en-US`."
                                    },
                                    "network": {
                                      "type": "object",
                                      "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                                      "properties": {
                                        "bluetooth": {
                                          "type": "boolean",
                                          "description": "Lets you know if bluetooth is enabled on a device."
                                        },
                                        "carrier": {
                                          "type": "string",
                                          "description": "The cellular carrier the phone uses."
                                        },
                                        "cellular": {
                                          "type": "boolean",
                                          "description": "Indicates whether the device's cellular connection is enabled or not."
                                        },
                                        "wifi": {
                                          "type": "boolean",
                                          "description": "Indicates whether a device's wifi connection is enabled or not."
                                        }
                                      }
                                    },
                                    "os": {
                                      "type": "object",
                                      "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                                      "properties": {
                                        "name": {
                                          "type": "string",
                                          "description": "The operating system running on the device."
                                        },
                                        "version": {
                                          "type": "string",
                                          "description": "The version of the OS running on the device."
                                        }
                                      }
                                    },
                                    "userAgent": {
                                      "type": "string",
                                      "description": "The user agent of the device making the request"
                                    }
                                  }
                                },
                                "integrations": {
                                  "x-scalar-ignore": true,
                                  "type": "object",
                                  "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                                  "additionalProperties": {
                                    "type": "boolean",
                                    "x-additionalPropertiesName": "Enabled/Disabled integrations"
                                  },
                                  "example": {
                                    "All": true,
                                    "Salesforce": false
                                  }
                                },
                                "messageId": {
                                  "type": "string",
                                  "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                                },
                                "name": {
                                  "type": "string",
                                  "description": "The name of the screen the person visited.",
                                  "example": "home"
                                },
                                "originalTimestamp": {
                                  "type": "string",
                                  "format": "date-time",
                                  "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                                },
                                "properties": {
                                  "additionalProperties": {
                                    "x-additionalPropertiesName": "Screen Properties"
                                  },
                                  "description": "Additional properties for your screen.",
                                  "type": "object"
                                },
                                "receivedAt": {
                                  "type": "string",
                                  "format": "date-time",
                                  "readOnly": true,
                                  "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                                },
                                "sentAt": {
                                  "type": "string",
                                  "format": "date-time",
                                  "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                                },
                                "timestamp": {
                                  "type": "string",
                                  "format": "date-time",
                                  "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                                },
                                "version": {
                                  "readOnly": true,
                                  "type": "number",
                                  "description": "The version of the API that received the event, automatically set by Customer.io."
                                }
                              },
                              "required": [
                                "userId",
                                "type"
                              ],
                              "title": "Known User"
                            },
                            {
                              "properties": {
                                "anonymousId": {
                                  "x-scalar-ignore": true,
                                  "type": "string",
                                  "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
                                  "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "screen"
                                  ],
                                  "description": "The kind of request. Required in a `batch` call, where the endpoint can't tell us the type; the single-request endpoints set it for you."
                                },
                                "context": {
                                  "x-scalar-ignore": true,
                                  "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                                  "title": "Mobile",
                                  "properties": {
                                    "active": {
                                      "type": "boolean",
                                      "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                    },
                                    "app": {
                                      "type": "object",
                                      "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                                      "properties": {
                                        "build": {
                                          "type": "string",
                                          "description": "The specific build number in the app."
                                        },
                                        "name": {
                                          "type": "string",
                                          "description": "The name of the app."
                                        },
                                        "namespace": {
                                          "type": "string",
                                          "description": "The app's namespace."
                                        },
                                        "version": {
                                          "type": "string",
                                          "description": "The version of the app the call originated from."
                                        }
                                      }
                                    },
                                    "channel": {
                                      "type": "string",
                                      "enum": [
                                        "browser",
                                        "server",
                                        "mobile"
                                      ],
                                      "description": "The channel the event originated from."
                                    },
                                    "device": {
                                      "type": "object",
                                      "description": "Contains information about the device the event originated from.\n",
                                      "properties": {
                                        "advertisingId": {
                                          "type": "string",
                                          "description": "The advertising ID is a unique, anonymous ID for advertising."
                                        },
                                        "id": {
                                          "type": "string",
                                          "description": "The device ID."
                                        },
                                        "manufacturer": {
                                          "type": "string",
                                          "description": "The device manufacturer."
                                        },
                                        "model": {
                                          "type": "string",
                                          "description": "The device model."
                                        },
                                        "name": {
                                          "type": "string",
                                          "description": "The device name."
                                        },
                                        "type": {
                                          "type": "string",
                                          "description": "The device type—android, iOS, etc.",
                                          "enum": [
                                            "android",
                                            "ios"
                                          ]
                                        },
                                        "version": {
                                          "type": "string",
                                          "description": "The firmware version for the device."
                                        }
                                      }
                                    },
                                    "ip": {
                                      "type": "string",
                                      "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                    },
                                    "locale": {
                                      "type": "string",
                                      "description": "The locale string for the current user, e.g. `en-US`."
                                    },
                                    "network": {
                                      "type": "object",
                                      "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                                      "properties": {
                                        "bluetooth": {
                                          "type": "boolean",
                                          "description": "Lets you know if bluetooth is enabled on a device."
                                        },
                                        "carrier": {
                                          "type": "string",
                                          "description": "The cellular carrier the phone uses."
                                        },
                                        "cellular": {
                                          "type": "boolean",
                                          "description": "Indicates whether the device's cellular connection is enabled or not."
                                        },
                                        "wifi": {
                                          "type": "boolean",
                                          "description": "Indicates whether a device's wifi connection is enabled or not."
                                        }
                                      }
                                    },
                                    "os": {
                                      "type": "object",
                                      "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                                      "properties": {
                                        "name": {
                                          "type": "string",
                                          "description": "The operating system running on the device."
                                        },
                                        "version": {
                                          "type": "string",
                                          "description": "The version of the OS running on the device."
                                        }
                                      }
                                    },
                                    "userAgent": {
                                      "type": "string",
                                      "description": "The user agent of the device making the request"
                                    }
                                  }
                                },
                                "integrations": {
                                  "x-scalar-ignore": true,
                                  "type": "object",
                                  "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                                  "additionalProperties": {
                                    "type": "boolean",
                                    "x-additionalPropertiesName": "Enabled/Disabled integrations"
                                  },
                                  "example": {
                                    "All": true,
                                    "Salesforce": false
                                  }
                                },
                                "messageId": {
                                  "type": "string",
                                  "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                                },
                                "name": {
                                  "type": "string",
                                  "description": "The name of the screen the person visited.",
                                  "example": "home"
                                },
                                "originalTimestamp": {
                                  "type": "string",
                                  "format": "date-time",
                                  "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                                },
                                "properties": {
                                  "additionalProperties": {
                                    "x-additionalPropertiesName": "Screen Properties"
                                  },
                                  "description": "Additional properties for your screen.",
                                  "type": "object"
                                },
                                "receivedAt": {
                                  "type": "string",
                                  "format": "date-time",
                                  "readOnly": true,
                                  "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                                },
                                "sentAt": {
                                  "type": "string",
                                  "format": "date-time",
                                  "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                                },
                                "timestamp": {
                                  "type": "string",
                                  "format": "date-time",
                                  "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                                },
                                "version": {
                                  "readOnly": true,
                                  "type": "number",
                                  "description": "The version of the API that received the event, automatically set by Customer.io."
                                }
                              },
                              "required": [
                                "anonymousId",
                                "type"
                              ],
                              "title": "Anonymous User"
                            }
                          ]
                        },
                        {
                          "title": "Group",
                          "oneOf": [
                            {
                              "properties": {
                                "groupId": {
                                  "type": "string",
                                  "description": "ID of the group",
                                  "example": "0e8c78ea9d97a7b8185e8632"
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "group"
                                  ],
                                  "description": "The kind of request. Required in a `batch` call, where the endpoint can't tell us the type; the single-request endpoints set it for you."
                                },
                                "context": {
                                  "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                                  "oneOf": [
                                    {
                                      "x-scalar-ignore": true,
                                      "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                                      "title": "Non-mobile",
                                      "properties": {
                                        "active": {
                                          "type": "boolean",
                                          "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                        },
                                        "campaign": {
                                          "type": "object",
                                          "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                                          "properties": {
                                            "content": {
                                              "type": "string"
                                            },
                                            "medium": {
                                              "type": "string",
                                              "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                                            },
                                            "name": {
                                              "type": "string",
                                              "description": "The campaign name."
                                            },
                                            "source": {
                                              "type": "string",
                                              "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                                            },
                                            "term": {
                                              "type": "string",
                                              "description": "The keyword term(s) a user came from."
                                            }
                                          },
                                          "additionalProperties": {
                                            "type": "string",
                                            "x-additionalPropertiesName": "Additional UTM Parameters"
                                          }
                                        },
                                        "channel": {
                                          "type": "string",
                                          "enum": [
                                            "browser",
                                            "server",
                                            "mobile"
                                          ],
                                          "description": "The channel the event originated from."
                                        },
                                        "ip": {
                                          "type": "string",
                                          "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                        },
                                        "locale": {
                                          "type": "string",
                                          "description": "The locale string for the current user, e.g. `en-US`."
                                        },
                                        "page": {
                                          "x-scalar-ignore": true,
                                          "type": "object",
                                          "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                                          "properties": {
                                            "keywords": {
                                              "type": "array",
                                              "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                                              "items": {
                                                "type": "string"
                                              }
                                            },
                                            "name": {
                                              "type": "string",
                                              "description": "The name of the page. Reserved for future use.\n"
                                            },
                                            "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."
                                            }
                                          }
                                        },
                                        "userAgent": {
                                          "type": "string",
                                          "description": "The user agent of the device making the request"
                                        }
                                      }
                                    },
                                    {
                                      "x-scalar-ignore": true,
                                      "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                                      "title": "Mobile",
                                      "properties": {
                                        "active": {
                                          "type": "boolean",
                                          "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                        },
                                        "app": {
                                          "type": "object",
                                          "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                                          "properties": {
                                            "build": {
                                              "type": "string",
                                              "description": "The specific build number in the app."
                                            },
                                            "name": {
                                              "type": "string",
                                              "description": "The name of the app."
                                            },
                                            "namespace": {
                                              "type": "string",
                                              "description": "The app's namespace."
                                            },
                                            "version": {
                                              "type": "string",
                                              "description": "The version of the app the call originated from."
                                            }
                                          }
                                        },
                                        "channel": {
                                          "type": "string",
                                          "enum": [
                                            "browser",
                                            "server",
                                            "mobile"
                                          ],
                                          "description": "The channel the event originated from."
                                        },
                                        "device": {
                                          "type": "object",
                                          "description": "Contains information about the device the event originated from.\n",
                                          "properties": {
                                            "advertisingId": {
                                              "type": "string",
                                              "description": "The advertising ID is a unique, anonymous ID for advertising."
                                            },
                                            "id": {
                                              "type": "string",
                                              "description": "The device ID."
                                            },
                                            "manufacturer": {
                                              "type": "string",
                                              "description": "The device manufacturer."
                                            },
                                            "model": {
                                              "type": "string",
                                              "description": "The device model."
                                            },
                                            "name": {
                                              "type": "string",
                                              "description": "The device name."
                                            },
                                            "type": {
                                              "type": "string",
                                              "description": "The device type—android, iOS, etc.",
                                              "enum": [
                                                "android",
                                                "ios"
                                              ]
                                            },
                                            "version": {
                                              "type": "string",
                                              "description": "The firmware version for the device."
                                            }
                                          }
                                        },
                                        "ip": {
                                          "type": "string",
                                          "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                        },
                                        "locale": {
                                          "type": "string",
                                          "description": "The locale string for the current user, e.g. `en-US`."
                                        },
                                        "network": {
                                          "type": "object",
                                          "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                                          "properties": {
                                            "bluetooth": {
                                              "type": "boolean",
                                              "description": "Lets you know if bluetooth is enabled on a device."
                                            },
                                            "carrier": {
                                              "type": "string",
                                              "description": "The cellular carrier the phone uses."
                                            },
                                            "cellular": {
                                              "type": "boolean",
                                              "description": "Indicates whether the device's cellular connection is enabled or not."
                                            },
                                            "wifi": {
                                              "type": "boolean",
                                              "description": "Indicates whether a device's wifi connection is enabled or not."
                                            }
                                          }
                                        },
                                        "os": {
                                          "type": "object",
                                          "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                                          "properties": {
                                            "name": {
                                              "type": "string",
                                              "description": "The operating system running on the device."
                                            },
                                            "version": {
                                              "type": "string",
                                              "description": "The version of the OS running on the device."
                                            }
                                          }
                                        },
                                        "userAgent": {
                                          "type": "string",
                                          "description": "The user agent of the device making the request"
                                        }
                                      }
                                    }
                                  ]
                                },
                                "integrations": {
                                  "x-scalar-ignore": true,
                                  "type": "object",
                                  "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                                  "additionalProperties": {
                                    "type": "boolean",
                                    "x-additionalPropertiesName": "Enabled/Disabled integrations"
                                  },
                                  "example": {
                                    "All": true,
                                    "Salesforce": false
                                  }
                                },
                                "messageId": {
                                  "type": "string",
                                  "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                                },
                                "originalTimestamp": {
                                  "type": "string",
                                  "format": "date-time",
                                  "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                                },
                                "receivedAt": {
                                  "type": "string",
                                  "format": "date-time",
                                  "readOnly": true,
                                  "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                                },
                                "sentAt": {
                                  "type": "string",
                                  "format": "date-time",
                                  "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                                },
                                "timestamp": {
                                  "type": "string",
                                  "format": "date-time",
                                  "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                                },
                                "traits": {
                                  "type": "object",
                                  "description": "Additional information about the group.",
                                  "properties": {
                                    "objectTypeId": {
                                      "x-scalar-ignore": true,
                                      "type": "string",
                                      "description": "If you use Customer.io Journeys as a destination, this value is the type of group/object your group belongs to; object type IDs are stringified integers. If you don't include this value, we assume the object type ID is `1`. See [objects in Customer.io Journeys](/journeys/objects-data/objects/types/) for more information.",
                                      "example": "1"
                                    },
                                    "relationshipAttributes": {
                                      "type": "object",
                                      "description": "Attributes that you want to set for the relationship between the person and the group.",
                                      "example": {
                                        "role": "primary_contact"
                                      }
                                    }
                                  },
                                  "additionalProperties": {
                                    "x-additionalPropertiesName": "Group Traits",
                                    "example": {
                                      "name": "Acme",
                                      "industry": "Technology",
                                      "road_runner_accidents": "329,",
                                      "plan": "enterprise,",
                                      "total_billed": 830
                                    }
                                  }
                                },
                                "userId": {
                                  "x-scalar-ignore": true,
                                  "type": "string",
                                  "description": "The unique identifier for a person. This value should be unique across systems, so you recognize the same person in your sources _and_ destinations.",
                                  "example": "241ma8mf4a"
                                },
                                "version": {
                                  "readOnly": true,
                                  "type": "number",
                                  "description": "The version of the API that received the event, automatically set by Customer.io."
                                }
                              },
                              "required": [
                                "groupId",
                                "type"
                              ],
                              "title": "Known User"
                            },
                            {
                              "properties": {
                                "groupId": {
                                  "type": "string",
                                  "description": "ID of the group",
                                  "example": "0e8c78ea9d97a7b8185e8632"
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "group"
                                  ],
                                  "description": "The kind of request. Required in a `batch` call, where the endpoint can't tell us the type; the single-request endpoints set it for you."
                                },
                                "anonymousId": {
                                  "x-scalar-ignore": true,
                                  "type": "string",
                                  "description": "A unique substitute for a User ID in cases when you don’t have an absolutely unique identifier. Our libraries generate this value automatically to help you track people before they sign up, log in, provide their email, etc.",
                                  "example": "c0e5cae6-6f04-46e4-97a8-25076e8bdc0b"
                                },
                                "context": {
                                  "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                                  "oneOf": [
                                    {
                                      "x-scalar-ignore": true,
                                      "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                                      "title": "Non-mobile",
                                      "properties": {
                                        "active": {
                                          "type": "boolean",
                                          "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                        },
                                        "campaign": {
                                          "type": "object",
                                          "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                                          "properties": {
                                            "content": {
                                              "type": "string"
                                            },
                                            "medium": {
                                              "type": "string",
                                              "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                                            },
                                            "name": {
                                              "type": "string",
                                              "description": "The campaign name."
                                            },
                                            "source": {
                                              "type": "string",
                                              "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                                            },
                                            "term": {
                                              "type": "string",
                                              "description": "The keyword term(s) a user came from."
                                            }
                                          },
                                          "additionalProperties": {
                                            "type": "string",
                                            "x-additionalPropertiesName": "Additional UTM Parameters"
                                          }
                                        },
                                        "channel": {
                                          "type": "string",
                                          "enum": [
                                            "browser",
                                            "server",
                                            "mobile"
                                          ],
                                          "description": "The channel the event originated from."
                                        },
                                        "ip": {
                                          "type": "string",
                                          "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                        },
                                        "locale": {
                                          "type": "string",
                                          "description": "The locale string for the current user, e.g. `en-US`."
                                        },
                                        "page": {
                                          "x-scalar-ignore": true,
                                          "type": "object",
                                          "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                                          "properties": {
                                            "keywords": {
                                              "type": "array",
                                              "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                                              "items": {
                                                "type": "string"
                                              }
                                            },
                                            "name": {
                                              "type": "string",
                                              "description": "The name of the page. Reserved for future use.\n"
                                            },
                                            "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."
                                            }
                                          }
                                        },
                                        "userAgent": {
                                          "type": "string",
                                          "description": "The user agent of the device making the request"
                                        }
                                      }
                                    },
                                    {
                                      "x-scalar-ignore": true,
                                      "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                                      "title": "Mobile",
                                      "properties": {
                                        "active": {
                                          "type": "boolean",
                                          "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                                        },
                                        "app": {
                                          "type": "object",
                                          "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                                          "properties": {
                                            "build": {
                                              "type": "string",
                                              "description": "The specific build number in the app."
                                            },
                                            "name": {
                                              "type": "string",
                                              "description": "The name of the app."
                                            },
                                            "namespace": {
                                              "type": "string",
                                              "description": "The app's namespace."
                                            },
                                            "version": {
                                              "type": "string",
                                              "description": "The version of the app the call originated from."
                                            }
                                          }
                                        },
                                        "channel": {
                                          "type": "string",
                                          "enum": [
                                            "browser",
                                            "server",
                                            "mobile"
                                          ],
                                          "description": "The channel the event originated from."
                                        },
                                        "device": {
                                          "type": "object",
                                          "description": "Contains information about the device the event originated from.\n",
                                          "properties": {
                                            "advertisingId": {
                                              "type": "string",
                                              "description": "The advertising ID is a unique, anonymous ID for advertising."
                                            },
                                            "id": {
                                              "type": "string",
                                              "description": "The device ID."
                                            },
                                            "manufacturer": {
                                              "type": "string",
                                              "description": "The device manufacturer."
                                            },
                                            "model": {
                                              "type": "string",
                                              "description": "The device model."
                                            },
                                            "name": {
                                              "type": "string",
                                              "description": "The device name."
                                            },
                                            "type": {
                                              "type": "string",
                                              "description": "The device type—android, iOS, etc.",
                                              "enum": [
                                                "android",
                                                "ios"
                                              ]
                                            },
                                            "version": {
                                              "type": "string",
                                              "description": "The firmware version for the device."
                                            }
                                          }
                                        },
                                        "ip": {
                                          "type": "string",
                                          "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                                        },
                                        "locale": {
                                          "type": "string",
                                          "description": "The locale string for the current user, e.g. `en-US`."
                                        },
                                        "network": {
                                          "type": "object",
                                          "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                                          "properties": {
                                            "bluetooth": {
                                              "type": "boolean",
                                              "description": "Lets you know if bluetooth is enabled on a device."
                                            },
                                            "carrier": {
                                              "type": "string",
                                              "description": "The cellular carrier the phone uses."
                                            },
                                            "cellular": {
                                              "type": "boolean",
                                              "description": "Indicates whether the device's cellular connection is enabled or not."
                                            },
                                            "wifi": {
                                              "type": "boolean",
                                              "description": "Indicates whether a device's wifi connection is enabled or not."
                                            }
                                          }
                                        },
                                        "os": {
                                          "type": "object",
                                          "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                                          "properties": {
                                            "name": {
                                              "type": "string",
                                              "description": "The operating system running on the device."
                                            },
                                            "version": {
                                              "type": "string",
                                              "description": "The version of the OS running on the device."
                                            }
                                          }
                                        },
                                        "userAgent": {
                                          "type": "string",
                                          "description": "The user agent of the device making the request"
                                        }
                                      }
                                    }
                                  ]
                                },
                                "integrations": {
                                  "x-scalar-ignore": true,
                                  "type": "object",
                                  "description": "Contains a list of booleans indicating the integrations that are enabled (true) or disabled (false). By default, all integrations are enabled (returning an empty object). Set `\"All\": false` to reverse this behavior.\n",
                                  "additionalProperties": {
                                    "type": "boolean",
                                    "x-additionalPropertiesName": "Enabled/Disabled integrations"
                                  },
                                  "example": {
                                    "All": true,
                                    "Salesforce": false
                                  }
                                },
                                "messageId": {
                                  "type": "string",
                                  "description": "A unique identifier for a Data Pipelines call, ensuring that each individual event is unique. This is set by Customer.io"
                                },
                                "originalTimestamp": {
                                  "type": "string",
                                  "format": "date-time",
                                  "description": "In general, you can use `timestamp` rather than this field if you want to back-date events. This is the timestamp on the client device you invoke a call or the timestamp value you manually passed in a server-side library call."
                                },
                                "receivedAt": {
                                  "type": "string",
                                  "format": "date-time",
                                  "readOnly": true,
                                  "description": "The ISO-8601 timestamp when Data Pipelines receives an event."
                                },
                                "sentAt": {
                                  "type": "string",
                                  "format": "date-time",
                                  "description": "The ISO-8601 timestamp when a library sends an event to Data Pipelines."
                                },
                                "timestamp": {
                                  "type": "string",
                                  "format": "date-time",
                                  "description": "The ISO-8601 timestamp when the event originally took place. This is mostly useful when you backfill past events. If you're not backfilling data, you can leave this field empty and we'll use the current time or server time."
                                },
                                "traits": {
                                  "type": "object",
                                  "description": "Additional information about the group.",
                                  "properties": {
                                    "objectTypeId": {
                                      "x-scalar-ignore": true,
                                      "type": "string",
                                      "description": "If you use Customer.io Journeys as a destination, this value is the type of group/object your group belongs to; object type IDs are stringified integers. If you don't include this value, we assume the object type ID is `1`. See [objects in Customer.io Journeys](/journeys/objects-data/objects/types/) for more information.",
                                      "example": "1"
                                    },
                                    "relationshipAttributes": {
                                      "type": "object",
                                      "description": "Attributes that you want to set for the relationship between the person and the group.",
                                      "example": {
                                        "role": "primary_contact"
                                      }
                                    }
                                  },
                                  "additionalProperties": {
                                    "x-additionalPropertiesName": "Group Traits",
                                    "description": "Attributes that you want to associate with the group.",
                                    "example": {
                                      "name": "Acme",
                                      "industry": "Technology",
                                      "road_runner_accidents": "329,",
                                      "plan": "enterprise,",
                                      "total_billed": 830
                                    }
                                  }
                                },
                                "version": {
                                  "readOnly": true,
                                  "type": "number",
                                  "description": "The version of the API that received the event, automatically set by Customer.io."
                                }
                              },
                              "required": [
                                "groupId",
                                "type"
                              ],
                              "title": "Anonymous User"
                            }
                          ]
                        },
                        {
                          "title": "Alias",
                          "properties": {
                            "previousId": {
                              "type": "string",
                              "description": "The anonymousId or userId value that you want to merge into the canonical profile."
                            },
                            "type": {
                              "type": "string",
                              "enum": [
                                "alias"
                              ],
                              "description": "The kind of request. Required in a `batch` call, where the endpoint can't tell us the type; the single-request endpoints set it for you."
                            },
                            "userId": {
                              "type": "string",
                              "description": "The userId that you want to keep. This is required if you haven't already identified someone with one of our web or server-side libraries.\n"
                            }
                          },
                          "required": [
                            "previousId",
                            "userId",
                            "type"
                          ]
                        }
                      ]
                    }
                  },
                  "context": {
                    "description": "The default context for every call in the batch. We apply it to each call that doesn't include its own `context` object.",
                    "oneOf": [
                      {
                        "x-scalar-ignore": true,
                        "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                        "title": "Non-mobile",
                        "properties": {
                          "active": {
                            "type": "boolean",
                            "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                          },
                          "campaign": {
                            "type": "object",
                            "description": "Contains information about the campaign that resulted in the API call, gathered from, or mapping to, UTM parameters (e.g. `utm_source`).\n",
                            "properties": {
                              "content": {
                                "type": "string"
                              },
                              "medium": {
                                "type": "string",
                                "description": "The type of traffic a person/event originates from, like `email`, or `referral`."
                              },
                              "name": {
                                "type": "string",
                                "description": "The campaign name."
                              },
                              "source": {
                                "type": "string",
                                "description": "The source of traffic—like the name of your email list, Facebook, Google, etc."
                              },
                              "term": {
                                "type": "string",
                                "description": "The keyword term(s) a user came from."
                              }
                            },
                            "additionalProperties": {
                              "type": "string",
                              "x-additionalPropertiesName": "Additional UTM Parameters"
                            }
                          },
                          "channel": {
                            "type": "string",
                            "enum": [
                              "browser",
                              "server",
                              "mobile"
                            ],
                            "description": "The channel the event originated from."
                          },
                          "ip": {
                            "type": "string",
                            "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                          },
                          "locale": {
                            "type": "string",
                            "description": "The locale string for the current user, e.g. `en-US`."
                          },
                          "page": {
                            "x-scalar-ignore": true,
                            "type": "object",
                            "description": "Contains information about the current page in the browser. This is automatically collected by our JavaScript source.",
                            "properties": {
                              "keywords": {
                                "type": "array",
                                "description": "A list/array of keywords describing the page's content. The keywords are likely the same as, or similar to, the keywords you would find in an HTML `meta` tag for SEO purposes. This property is mainly used by content publishers that rely heavily on pageview tracking. This isn't automatically collected.",
                                "items": {
                                  "type": "string"
                                }
                              },
                              "name": {
                                "type": "string",
                                "description": "The name of the page. Reserved for future use.\n"
                              },
                              "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."
                              }
                            }
                          },
                          "userAgent": {
                            "type": "string",
                            "description": "The user agent of the device making the request"
                          }
                        }
                      },
                      {
                        "x-scalar-ignore": true,
                        "description": "A dictionary of context about a source call/event, like the user’s IP address or locale. Context is automatically collected by our source libraries.",
                        "title": "Mobile",
                        "properties": {
                          "active": {
                            "type": "boolean",
                            "description": "Whether a user is active.\n\nThis is usually used when you send an .identify() call to update the traits independently of when you've “last seen” a user.\n"
                          },
                          "app": {
                            "type": "object",
                            "description": "Contains information about the mobile app the event originated from, automatically collected by our mobile libraries when possible.\n",
                            "properties": {
                              "build": {
                                "type": "string",
                                "description": "The specific build number in the app."
                              },
                              "name": {
                                "type": "string",
                                "description": "The name of the app."
                              },
                              "namespace": {
                                "type": "string",
                                "description": "The app's namespace."
                              },
                              "version": {
                                "type": "string",
                                "description": "The version of the app the call originated from."
                              }
                            }
                          },
                          "channel": {
                            "type": "string",
                            "enum": [
                              "browser",
                              "server",
                              "mobile"
                            ],
                            "description": "The channel the event originated from."
                          },
                          "device": {
                            "type": "object",
                            "description": "Contains information about the device the event originated from.\n",
                            "properties": {
                              "advertisingId": {
                                "type": "string",
                                "description": "The advertising ID is a unique, anonymous ID for advertising."
                              },
                              "id": {
                                "type": "string",
                                "description": "The device ID."
                              },
                              "manufacturer": {
                                "type": "string",
                                "description": "The device manufacturer."
                              },
                              "model": {
                                "type": "string",
                                "description": "The device model."
                              },
                              "name": {
                                "type": "string",
                                "description": "The device name."
                              },
                              "type": {
                                "type": "string",
                                "description": "The device type—android, iOS, etc.",
                                "enum": [
                                  "android",
                                  "ios"
                                ]
                              },
                              "version": {
                                "type": "string",
                                "description": "The firmware version for the device."
                              }
                            }
                          },
                          "ip": {
                            "type": "string",
                            "description": "The user's IP address. This isn't captured by our libraries, but by our servers when we receive client-side events (like from our JavaScript source)."
                          },
                          "locale": {
                            "type": "string",
                            "description": "The locale string for the current user, e.g. `en-US`."
                          },
                          "network": {
                            "type": "object",
                            "description": "Information about the current network connection, containing `bluetooth`, `carrier`, `cellular`, and `wifi`. If the `context.network.cellular` and `context.network.wifi` fields are empty, then the user is offline.",
                            "properties": {
                              "bluetooth": {
                                "type": "boolean",
                                "description": "Lets you know if bluetooth is enabled on a device."
                              },
                              "carrier": {
                                "type": "string",
                                "description": "The cellular carrier the phone uses."
                              },
                              "cellular": {
                                "type": "boolean",
                                "description": "Indicates whether the device's cellular connection is enabled or not."
                              },
                              "wifi": {
                                "type": "boolean",
                                "description": "Indicates whether a device's wifi connection is enabled or not."
                              }
                            }
                          },
                          "os": {
                            "type": "object",
                            "description": "Dictionary of information about the operating system, containing `name` and `version`.\n",
                            "properties": {
                              "name": {
                                "type": "string",
                                "description": "The operating system running on the device."
                              },
                              "version": {
                                "type": "string",
                                "description": "The version of the OS running on the device."
                              }
                            }
                          },
                          "userAgent": {
                            "type": "string",
                            "description": "The user agent of the device making the request"
                          }
                        }
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "json",
            "label": "JSON",
            "source": "{\n  \"batch\": [\n    {\n      \"type\": \"identify\",\n      \"userId\": \"241ma8mf4a\",\n      \"anonymousId\": \"c0e5cae6-6f04-46e4-97a8-25076e8bdc0b\",\n      \"context\": {\n        \"active\": true,\n        \"campaign\": {\n          \"content\": \"\",\n          \"medium\": \"\",\n          \"name\": \"\",\n          \"source\": \"\",\n          \"term\": \"\",\n          \"Additional UTM Parameters\": \"\"\n        },\n        \"channel\": \"browser\",\n        \"ip\": \"\",\n        \"locale\": \"\",\n        \"page\": {\n          \"keywords\": [\n            \"\"\n          ],\n          \"name\": \"\",\n          \"path\": \"\",\n          \"referrer\": \"\",\n          \"search\": \"\",\n          \"title\": \"\",\n          \"url\": \"\"\n        },\n        \"userAgent\": \"\"\n      },\n      \"integrations\": {\n        \"All\": true,\n        \"Salesforce\": false\n      },\n      \"messageId\": \"\",\n      \"originalTimestamp\": \"\",\n      \"sentAt\": \"\",\n      \"timestamp\": \"\",\n      \"traits\": {\n        \"cio_subscription_preferences\": {\n          \"channels\": {\n            \"email\": true,\n            \"push\": false\n          },\n          \"topics\": {\n            \"topic_1\": true,\n            \"topic_2\": false\n          }\n        },\n        \"createdAt\": \"\",\n        \"email\": \"\",\n        \"unsubscribed\": true,\n        \"Additional Traits\": null\n      }\n    }\n  ],\n  \"context\": {\n    \"active\": true,\n    \"campaign\": {\n      \"content\": \"\",\n      \"medium\": \"\",\n      \"name\": \"\",\n      \"source\": \"\",\n      \"term\": \"\",\n      \"Additional UTM Parameters\": \"\"\n    },\n    \"channel\": \"browser\",\n    \"ip\": \"\",\n    \"locale\": \"\",\n    \"page\": {\n      \"keywords\": [\n        \"\"\n      ],\n      \"name\": \"\",\n      \"path\": \"\",\n      \"referrer\": \"\",\n      \"search\": \"\",\n      \"title\": \"\",\n      \"url\": \"\"\n    },\n    \"userAgent\": \"\"\n  }\n}"
          },
          {
            "lang": "shell",
            "label": "cURL",
            "source": "curl --request POST \\\n  --url https://cdp.customer.io/v1/batch \\\n  -u api_key: \\\n  -H 'content-type: application/json' \\\n  --data-raw '\n  {\n      \"batch\": [\n          {\n              \"type\": \"identify\",\n              \"traits\": {\n                  \"name\": \"Cool Person\",\n                  \"email\": \"cool.person@example.com\",\n                  \"likes_baseball\": true,\n                  \"games_attended\": 5\n              },\n              \"userId\": \"97980cfea0067\"\n          },\n          {\n              \"type\": \"track\",\n              \"userId\": \"97980cfea0067\",\n              \"event\": \"Course Started\",\n              \"properties\": {\n                  \"title\": \"Intro to Customer.io\"\n              }\n          }\n      ]\n  }'\n"
          }
        ],
        "responses": {
          "200": {
            "description": "A successful request returns an empty object response."
          }
        }
      }
    }
  }
}