Klaviyo Events API

events

Operations 8

GET /api/events Get Events #
POST /api/events Create Event #
GET /api/events/{id} Get Event #
POST /api/event-bulk-create-jobs Bulk Create Events #
GET /api/events/{id}/metric Get Metric for Event #
GET /api/events/{id}/relationships/metric Get Metric ID for Event #
GET /api/events/{id}/profile Get Profile for Event #
GET /api/events/{id}/relationships/profile Get Profile ID for Event #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/klaviyo-events-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

klaviyo-events-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Klaviyo Accounts Events API
  version: '2026-04-15'
  description: The Klaviyo REST API. Please visit https://developers.klaviyo.com for more details.
  contact:
    name: Klaviyo Developer Experience Team
    email: developers@klaviyo.com
    url: https://developers.klaviyo.com
  termsOfService: https://www.klaviyo.com/legal/api-terms
  license:
    name: License
    url: https://www.klaviyo.com/legal
servers:
- url: https://a.klaviyo.com
  description: Production
security:
- Klaviyo-API-Key: []
tags:
- name: Events
  description: events
paths:
  /api/events:
    get:
      operationId: get_events
      summary: Get Events
      description: 'Get all events in an account


        Requests can be sorted by the following fields:

        `datetime`, `timestamp`


        [Custom metrics](https://developers.klaviyo.com/en/reference/custom_metrics_api_overview) are not supported in the `metric_id` filter.


        Returns a maximum of 200 events per page.<br><br>*Rate limits*:<br>Burst: `350/s`<br>Steady: `3500/m`


        **Scopes:**

        `events:read`'
      parameters:
      - name: fields[event]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - datetime
            - event_properties
            - timestamp
            - uuid
        explode: false
      - name: fields[metric]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - created
            - integration
            - name
            - updated
        explode: false
      - name: fields[profile]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - created
            - email
            - external_id
            - first_name
            - image
            - last_event_date
            - last_name
            - locale
            - location
            - location.address1
            - location.address2
            - location.city
            - location.country
            - location.ip
            - location.latitude
            - location.longitude
            - location.region
            - location.timezone
            - location.zip
            - organization
            - phone_number
            - properties
            - title
            - updated
        explode: false
      - name: filter
        in: query
        description: 'For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#filtering<br>Allowed field(s)/operator(s):<br>`metric_id`: `equals`<br>`profile_id`: `equals`<br>`profile`: `has`<br>`datetime`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`<br>`timestamp`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`'
        schema:
          type: string
          example: equals(metric_id,'example')
      - name: include
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#relationships
        schema:
          type: array
          items:
            type: string
            enum:
            - attributions
            - metric
            - profile
        explode: false
      - name: page[cursor]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#pagination
        required: false
        schema:
          type: string
      - name: page[size]
        in: query
        description: 'Default: 200. Min: 1. Max: 1000.'
        required: false
        schema:
          type: integer
          default: 200
          maximum: 1000
          minimum: 1
      - name: sort
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sorting
        schema:
          type: string
          enum:
          - datetime
          - -datetime
          - timestamp
          - -timestamp
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      responses:
        '200':
          description: Success
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/GetEventResponseCollectionCompoundDocument'
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      tags:
      - Events
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 350/s
        steady: 3500/m
      x-klaviyo-scopes:
      - events:read
    post:
      operationId: create_event
      summary: Create Event
      description: 'Create a new event to track a profile''s activity.


        Note that this endpoint allows you to create a new profile or update an existing profile''s properties.


        At a minimum, profile and metric objects should include at least one profile identifier (e.g., `id`, `email`, or `phone_number`) and the metric `name`, respectively.


        Successful response indicates that the event was validated and submitted for processing, but does not guarantee that processing is complete.<br><br>*Rate limits*:<br>Burst: `350/s`<br>Steady: `3500/m`


        **Scopes:**

        `events:write`'
      parameters:
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              $ref: '#/components/schemas/EventCreateQueryV2'
      responses:
        '202':
          description: Success
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      tags:
      - Events
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 350/s
        steady: 3500/m
      x-klaviyo-scopes:
      - events:write
  /api/events/{id}:
    get:
      operationId: get_event
      summary: Get Event
      description: 'Get an event with the given event ID.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m`


        **Scopes:**

        `events:read`'
      parameters:
      - name: id
        in: path
        description: ID of the event
        required: true
        schema:
          description: ID of the event
          type: string
      - name: fields[event]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - datetime
            - event_properties
            - timestamp
            - uuid
        explode: false
      - name: fields[metric]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - created
            - integration
            - name
            - updated
        explode: false
      - name: fields[profile]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - created
            - email
            - external_id
            - first_name
            - image
            - last_event_date
            - last_name
            - locale
            - location
            - location.address1
            - location.address2
            - location.city
            - location.country
            - location.ip
            - location.latitude
            - location.longitude
            - location.region
            - location.timezone
            - location.zip
            - organization
            - phone_number
            - properties
            - title
            - updated
        explode: false
      - name: include
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#relationships
        schema:
          type: array
          items:
            type: string
            enum:
            - attributions
            - metric
            - profile
        explode: false
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      responses:
        '200':
          description: Success
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/GetEventResponseCompoundDocument'
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      tags:
      - Events
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 10/s
        steady: 150/m
      x-klaviyo-scopes:
      - events:read
  /api/event-bulk-create-jobs:
    post:
      operationId: bulk_create_events
      summary: Bulk Create Events
      description: 'Create a batch of events for one or more profiles.


        Note that this endpoint allows you to create new profiles or update existing profile properties.


        At a minimum, profile and metric objects should include at least one profile identifier (e.g., `id`, `email`, or `phone_number`) and the metric `name`, respectively.


        Accepts up to 1,000 events per request. The maximum allowed payload size is 5MB. A single string cannot exceed 100KB.<br><br>*Rate limits*:<br>Burst: `10/s`<br>Steady: `150/m`


        **Scopes:**

        `events:write`'
      parameters:
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      requestBody:
        required: true
        content:
          application/vnd.api+json:
            schema:
              $ref: '#/components/schemas/EventsBulkCreateJob'
      responses:
        '202':
          description: Success
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      tags:
      - Events
      x-klaviyo-operation-aliases:
      - create_event_bulk_create_job
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 10/s
        steady: 150/m
      x-klaviyo-scopes:
      - events:write
  /api/events/{id}/metric:
    get:
      operationId: get_metric_for_event
      summary: Get Metric for Event
      description: 'Get the metric for an event with the given event ID.<br><br>*Rate limits*:<br>Burst: `350/s`<br>Steady: `3500/m`


        **Scopes:**

        `events:read`

        `metrics:read`'
      parameters:
      - name: id
        in: path
        description: ID of the event
        required: true
        schema:
          description: ID of the event
          type: string
      - name: fields[metric]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - created
            - integration
            - name
            - updated
        explode: false
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      responses:
        '200':
          description: Success
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/GetMetricResponse'
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      tags:
      - Events
      x-klaviyo-operation-aliases:
      - get_event_metric
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 350/s
        steady: 3500/m
      x-klaviyo-scopes:
      - events:read
      - metrics:read
  /api/events/{id}/relationships/metric:
    get:
      operationId: get_metric_id_for_event
      summary: Get Metric ID for Event
      description: 'Get a list of related Metrics for an Event<br><br>*Rate limits*:<br>Burst: `350/s`<br>Steady: `3500/m`


        **Scopes:**

        `events:read`

        `metrics:read`'
      parameters:
      - name: id
        in: path
        description: ID of the event
        required: true
        schema:
          description: ID of the event
          type: string
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      responses:
        '200':
          description: Success
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/GetEventMetricRelationshipResponse'
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      tags:
      - Events
      x-klaviyo-operation-aliases:
      - get_event_relationships_metric
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 350/s
        steady: 3500/m
      x-klaviyo-scopes:
      - events:read
      - metrics:read
  /api/events/{id}/profile:
    get:
      operationId: get_profile_for_event
      summary: Get Profile for Event
      description: 'Get the profile associated with an event with the given event ID.<br><br>*Rate limits*:<br>Burst: `350/s`<br>Steady: `3500/m`


        **Scopes:**

        `events:read`

        `profiles:read`'
      parameters:
      - name: id
        in: path
        description: ID of the event
        required: true
        schema:
          description: ID of the event
          type: string
      - name: additional-fields[profile]
        in: query
        description: 'Request additional fields not included by default in the response. Supported values: ''subscriptions'', ''predictive_analytics'''
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - subscriptions
            - predictive_analytics
        explode: false
      - name: fields[profile]
        in: query
        description: For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - created
            - email
            - external_id
            - first_name
            - image
            - last_event_date
            - last_name
            - locale
            - location
            - location.address1
            - location.address2
            - location.city
            - location.country
            - location.ip
            - location.latitude
            - location.longitude
            - location.region
            - location.timezone
            - location.zip
            - organization
            - phone_number
            - predictive_analytics
            - predictive_analytics.average_days_between_orders
            - predictive_analytics.average_order_value
            - predictive_analytics.churn_probability
            - predictive_analytics.expected_date_of_next_order
            - predictive_analytics.historic_clv
            - predictive_analytics.historic_number_of_orders
            - predictive_analytics.predicted_clv
            - predictive_analytics.predicted_number_of_orders
            - predictive_analytics.ranked_channel_affinity
            - predictive_analytics.total_clv
            - properties
            - subscriptions
            - subscriptions.email
            - subscriptions.email.marketing
            - subscriptions.email.marketing.can_receive_email_marketing
            - subscriptions.email.marketing.consent
            - subscriptions.email.marketing.consent_timestamp
            - subscriptions.email.marketing.custom_method_detail
            - subscriptions.email.marketing.double_optin
            - subscriptions.email.marketing.last_updated
            - subscriptions.email.marketing.list_suppressions
            - subscriptions.email.marketing.method
            - subscriptions.email.marketing.method_detail
            - subscriptions.email.marketing.suppression
            - subscriptions.mobile_push
            - subscriptions.mobile_push.marketing
            - subscriptions.mobile_push.marketing.can_receive_push_marketing
            - subscriptions.mobile_push.marketing.consent
            - subscriptions.mobile_push.marketing.consent_timestamp
            - subscriptions.sms
            - subscriptions.sms.marketing
            - subscriptions.sms.marketing.can_receive_sms_marketing
            - subscriptions.sms.marketing.consent
            - subscriptions.sms.marketing.consent_timestamp
            - subscriptions.sms.marketing.last_updated
            - subscriptions.sms.marketing.method
            - subscriptions.sms.marketing.method_detail
            - subscriptions.sms.transactional
            - subscriptions.sms.transactional.can_receive_sms_transactional
            - subscriptions.sms.transactional.consent
            - subscriptions.sms.transactional.consent_timestamp
            - subscriptions.sms.transactional.last_updated
            - subscriptions.sms.transactional.method
            - subscriptions.sms.transactional.method_detail
            - subscriptions.whatsapp
            - subscriptions.whatsapp.conversational
            - subscriptions.whatsapp.conversational.can_receive
            - subscriptions.whatsapp.conversational.consent
            - subscriptions.whatsapp.conversational.consent_timestamp
            - subscriptions.whatsapp.conversational.created_timestamp
            - subscriptions.whatsapp.conversational.last_updated
            - subscriptions.whatsapp.conversational.metadata
            - subscriptions.whatsapp.conversational.phone_number
            - subscriptions.whatsapp.conversational.valid_until
            - subscriptions.whatsapp.marketing
            - subscriptions.whatsapp.marketing.can_receive
            - subscriptions.whatsapp.marketing.consent
            - subscriptions.whatsapp.marketing.consent_timestamp
            - subscriptions.whatsapp.marketing.created_timestamp
            - subscriptions.whatsapp.marketing.last_updated
            - subscriptions.whatsapp.marketing.metadata
            - subscriptions.whatsapp.marketing.phone_number
            - subscriptions.whatsapp.marketing.valid_until
            - subscriptions.whatsapp.transactional
            - subscriptions.whatsapp.transactional.can_receive
            - subscriptions.whatsapp.transactional.consent
            - subscriptions.whatsapp.transactional.consent_timestamp
            - subscriptions.whatsapp.transactional.created_timestamp
            - subscriptions.whatsapp.transactional.last_updated
            - subscriptions.whatsapp.transactional.metadata
            - subscriptions.whatsapp.transactional.phone_number
            - subscriptions.whatsapp.transactional.valid_until
            - title
            - updated
        explode: false
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      responses:
        '200':
          description: Success
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/GetProfileResponse'
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      tags:
      - Events
      x-klaviyo-operation-aliases:
      - get_event_profile
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 350/s
        steady: 3500/m
      x-klaviyo-scopes:
      - events:read
      - profiles:read
  /api/events/{id}/relationships/profile:
    get:
      operationId: get_profile_id_for_event
      summary: Get Profile ID for Event
      description: 'Get profile [relationships](https://developers.klaviyo.com/en/reference/api_overview#relationships) for an event with the given event ID.<br><br>*Rate limits*:<br>Burst: `350/s`<br>Steady: `3500/m`


        **Scopes:**

        `events:read`

        `profiles:read`'
      parameters:
      - name: id
        in: path
        description: ID of the event
        required: true
        schema:
          description: ID of the event
          type: string
      - name: revision
        in: header
        description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
        required: true
        schema:
          type: string
          default: '2026-04-15'
      responses:
        '200':
          description: Success
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/GetEventProfileRelationshipResponse'
        4XX:
          $ref: '#/components/responses/ClientError'
        5XX:
          $ref: '#/components/responses/ServerError'
      tags:
      - Events
      x-klaviyo-operation-aliases:
      - get_event_relationships_profile
      x-klaviyo-pre-release: None
      x-klaviyo-ratelimit:
        burst: 350/s
        steady: 3500/m
      x-klaviyo-scopes:
      - events:read
      - profiles:read
components:
  schemas:
    MetricCreateQueryResourceObject:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/MetricEnum'
        attributes:
          type: object
          properties:
            name:
              description: Name of the event. Must be less than 128 characters.
              type: string
              example: Viewed Product
            service:
              description: This is for advanced usage. For api requests, this should use the default, which is set to api.
              type:
              - string
              - 'null'
          required:
          - name
      required:
      - type
      - attributes
    EventBulkCreateJobEnum:
      type: string
      enum:
      - event-bulk-create-job
    SegmentEnum:
      type: string
      enum:
      - segment
    WhatsappMarketingChannel:
      type: object
      properties:
        consent:
          description: The consent status for the channel.
          type: string
          example: SUBSCRIBED
        consent_timestamp:
          description: The timestamp when consent was recorded or updated for the channel, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
          type:
          - string
          - 'null'
          format: date-time
          example: '2023-02-21T20:07:38+00:00'
        last_updated:
          description: The timestamp when the channel was last modified, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
          type:
          - string
          - 'null'
          format: date-time
          example: '2023-02-21T20:07:38+00:00'
        created_timestamp:
          description: The timestamp when the channel was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
          type:
          - string
          - 'null'
          format: date-time
          example: '2023-02-21T20:07:38+00:00'
        metadata:
          description: Channel-specific metadata containing additional information about the permission.
          type:
          - object
          - 'null'
        can_receive:
          description: Whether the profile can receive messages on this channel.
          type: boolean
        valid_until:
          description: Optional expiration date for the permission, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
          type:
          - string
          - 'null'
          format: date-time
          example: '2024-02-21T20:07:38+00:00'
        phone_number:
          description: Phone number to which the consent was granted for.
          type: string
      required:
      - consent
      - can_receive
      - phone_number
    EventsBulkCreateQueryResourceObject:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/EventBulkCreateEnum'
        attributes:
          type: object
          properties:
            backfill:
              description: 'When true, the event is recorded but does NOT trigger flows. Use this when backfilling

                historical events so existing flow definitions do not re-fire on events that already

                fired in the past.'
              type:
              - boolean
              - 'null'
              default: false
            profile:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/OnsiteProfileCreateQueryResourceObject'
              required:
              - data
            events:
              type: object
              properties:
                data:
                  type: array
                  items:
                    $ref: '#/components/schemas/BaseEventCreateQueryBulkEntryResourceObject'
              required:
              - data
          required:
          - profile
          - events
      required:
      - type
      - attributes
    FlowEnum:
      type: string
      enum:
      - flow
    EventCreateQueryV2ResourceObject:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/EventEnum'
        attributes:
          type: object
          properties:
            properties:
              description: 'Properties of this event (must not exceed 400 properties). The size of the event payload must not exceed 5 MB,

                and each string cannot be larger than 100 KB. For a full list of data limits on event payloads,

                see [Limitations](https://developers.klaviyo.com/en/reference/events_api_overview#limitations).


                Note any top-level property that is not an object can be

                used to create segments. The `$extra` property records any

                non-segmentable values that can be referenced later, e.g., HTML templates are

                useful on a segment but are not used to create a segment.'
              type: object
              example:
                Brand: Kids Book
                ProductID: 1111
                ProductName: Winnie the Pooh
            time:
              description: 'When this event occurred. By default, the time the request was received will be used.

                The time is truncated to the second. The time must be after the year 2000 and can only

                be up to 1 year in the future.'
              type:
              - string
              - 'null'
              format: date-time
              example: '2022-11-08T00:00:00+00:00'
            value:
              description: A numeric, monetary value to associate with this event. For example, the dollar amount of a purchase.
              type:
              - number
              - 'null'
              example: 9.99
            value_currency:
              description: The ISO 4217 currency code of the value associated with the event.
              type:
              - string
              - 'null'
              example: USD
            unique_id:
              description: 'A unique identifier for an event. If the unique_id is repeated for the same

                profile and metric, only the first processed event will be recorded. If this is not

                present, this will use the time to the second. Using the default, this limits only one

                event per profile per second.'
              type:
              - string
              - 'null'
            backfill:
              description: 'When true, the event is recorded but does NOT trigger flows. Use this when backfilling

                historical events so existing flow definitions do not re-fire on events that already

                fired in the past.'
              type:
              - boolean
              - 'null'
              default: false
            metric:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/MetricCreateQueryResourceObject'
              required:
              - data
            profile:
              type: object
              properties:
                data:
                  $ref: '#/components/schemas/EventProfileCreateQueryResourceObject'
              required:
              - data
          required:
          - properties
          - metric
          - profile
      required:
      - type
      - attributes
    EventEnum:
      type: string
      enum:
      - event
    EventBulkCreateEnum:
      type: string
      enum:
      - event-bulk-create
    PatchIdentifiers:
      type: object
      properties:
        append:
          type: object
        unappend:
          type: object
    SMSMarketing:
      type: object
      properties:
        can_receive_sms_marketing:
          description: Whether or not this profile is subscribed to receive SMS marketing.
          type: boolean
        consent:
          description: The consent status for SMS marketing.
          type: string
          example: SUBSCRIBED
        consent_timestamp:
          description: The timestamp when consent was recorded or updated for SMS marketing, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
          type:
          - string
          - 'null'
          format: date-time
          example: '2023-02-21T20:07:38+00:00'
        method:
          description: The method by which the profile was subscribed to SMS marketing.
          type:
          - string
          - 'null'
          example: TEXT
        method_detail:
          description: Additional details about the method which the profile was subscribed to SMS marketing. This may be empty if no details were provided.
          type:
          - string
          - 'null'
          example: JOIN
          default: ''
        last_updated:
          description: The timestamp when the SMS consent record was last modified, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
          type:
          - string
          - 'null'
          format: date-time
          example: '2023-02-21T20:07:38+00:00'
      required:
      - can_receive_sms_marketing
      - consent
    WhatsappConversationalChannel:
      type: object
      properties:
        consent:
          description: The consent status for the channel.
          type: string
          example: SUBSCRIBED
        consent_timestamp:
          description: The timestamp when consent was recorded or updated for the channel, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
          type:
          - string
          - 'null'
          format: date-time
          example: '2023-02-21T20:07:38+00:00'
        last_updated:
          description: The timestamp when the channel was last modified, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
          type:
          - st

# --- truncated at 32 KB (78 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/klaviyo/refs/heads/main/openapi/klaviyo-events-api-openapi.yml