openapi: 3.0.2
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.
*Rate limits*:
Burst: `350/s`
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
Allowed field(s)/operator(s):
`metric_id`: `equals`
`profile_id`: `equals`
`profile`: `has`
`datetime`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
`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.
*Rate limits*:
Burst: `350/s`
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.
*Rate limits*:
Burst: `10/s`
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.
*Rate limits*:
Burst: `10/s`
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.
*Rate limits*:
Burst: `350/s`
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
*Rate limits*:
Burst: `350/s`
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.
*Rate limits*:
Burst: `350/s`
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.
*Rate limits*:
Burst: `350/s`
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:
PushTokenEnum:
type: string
enum:
- push-token
GetMetricResponse:
type: object
properties:
data:
$ref: '#/components/schemas/MetricResponseObjectResource'
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- data
EventProfileCreateQueryResourceObject:
type: object
properties:
type:
$ref: '#/components/schemas/ProfileEnum'
id:
description: Primary key that uniquely identifies this profile. Generated by Klaviyo.
type: string
nullable: true
attributes:
type: object
properties:
email:
description: Individual's email address
type: string
example: sarah.mason@klaviyo-demo.com
nullable: true
phone_number:
description: Individual's phone number in E.164 format
type: string
example: '+15005550006'
nullable: true
external_id:
description: A unique identifier used by customers to associate Klaviyo profiles with profiles in an external system, such as a point-of-sale system. Format varies based on the external system.
type: string
nullable: true
anonymous_id:
type: string
nullable: true
_kx:
description: 'Also known as the `exchange_id`, this is an encrypted identifier used for identifying a
profile by Klaviyo''s web tracking.
You can use this field as a filter when retrieving profiles via the Get Profiles endpoint.'
type: string
nullable: true
first_name:
description: Individual's first name
type: string
example: Sarah
nullable: true
last_name:
description: Individual's last name
type: string
example: Mason
nullable: true
organization:
description: Name of the company or organization within the company for whom the individual works
type: string
example: Example Corporation
nullable: true
locale:
description: The locale of the profile, in the IETF BCP 47 language tag format like (ISO 639-1/2)-(ISO 3166 alpha-2)
type: string
example: en-US
nullable: true
title:
description: Individual's job title
type: string
example: Regional Manager
nullable: true
image:
description: URL pointing to the location of a profile image
type: string
example: https://images.pexels.com/photos/3760854/pexels-photo-3760854.jpeg
nullable: true
location:
$ref: '#/components/schemas/ProfileLocation'
nullable: true
properties:
description: An object containing key/value pairs for any custom properties assigned to this profile
type: object
example:
pseudonym: Dr. Octopus
nullable: true
meta:
$ref: '#/components/schemas/OnsiteProfileMeta'
nullable: true
required:
- type
- attributes
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
default: false
nullable: true
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
SMSTransactional:
type: object
properties:
can_receive_sms_transactional:
description: Whether or not this profile is subscribed to receive transactional SMS.
type: boolean
consent:
description: The consent status for SMS Transactional.
type: string
example: SUBSCRIBED
consent_timestamp:
description: The timestamp when consent was recorded or updated for Transactional SMS messaging , in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
type: string
format: date-time
example: '2023-02-21T20:07:38+00:00'
nullable: true
method:
description: The method by which the profile was subscribed to Transactional SMS messaging .
type: string
example: TEXT
nullable: true
method_detail:
description: Additional details about the method which the profile was subscribed to Transactional SMS messaging. This may be empty if no details were provided.
type: string
example: JOIN
default: ''
nullable: true
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
format: date-time
example: '2023-02-21T20:07:38+00:00'
nullable: true
required:
- can_receive_sms_transactional
- consent
EmailMarketing:
type: object
properties:
can_receive_email_marketing:
description: Whether or not this profile has implicit consent to receive email marketing. True if it does profile does not have any global suppressions.
type: boolean
consent:
description: The consent status for email marketing.
type: string
example: SUBSCRIBED
consent_timestamp:
description: The timestamp when consent was recorded or updated for email marketing, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
type: string
format: date-time
example: '2023-02-21T20:07:38+00:00'
nullable: true
last_updated:
description: The timestamp when a field on the email marketing object was last modified.
type: string
format: date-time
example: '2023-02-21T20:07:38+00:00'
nullable: true
method:
description: The method by which the profile was subscribed to email marketing.
type: string
example: PREFERENCE_PAGE
nullable: true
method_detail:
description: Additional details about the method by which the profile was subscribed to email marketing. This may be empty if no details were provided.
type: string
example: mydomain.com/signup
default: ''
nullable: true
custom_method_detail:
description: Additional detail provided by the caller when the profile was subscribed. This may be empty if no details were provided.
type: string
example: marketing drive
nullable: true
double_optin:
description: Whether the profile was subscribed to email marketing using a double opt-in.
type: boolean
example: true
nullable: true
suppression:
description: The global email marketing suppression for this profile.
type: array
items:
$ref: '#/components/schemas/EmailMarketingSuppression'
nullable: true
list_suppressions:
description: The list suppressions for this profile.
type: array
items:
$ref: '#/components/schemas/EmailMarketingListSuppression'
nullable: true
required:
- can_receive_email_marketing
- consent
CampaignMessageEnum:
type: string
enum:
- campaign-message
WhatsappTransactionalChannel:
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
format: date-time
example: '2023-02-21T20:07:38+00:00'
nullable: true
last_updated:
description: The timestamp when the channel was last modified, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
type: string
format: date-time
example: '2023-02-21T20:07:38+00:00'
nullable: true
created_timestamp:
description: The timestamp when the channel was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
type: string
format: date-time
example: '2023-02-21T20:07:38+00:00'
nullable: true
metadata:
description: Channel-specific metadata containing additional information about the permission.
type: object
nullable: true
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
format: date-time
example: '2024-02-21T20:07:38+00:00'
nullable: true
phone_number:
description: Phone number to which the consent was granted for.
type: string
required:
- consent
- can_receive
- phone_number
BaseEventCreateQueryBulkEntryResourceObject:
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
format: date-time
example: '2022-11-08T00:00:00+00:00'
nullable: true
value:
description: A numeric, monetary value to associate with this event. For example, the dollar amount of a purchase.
type: number
example: 9.99
nullable: true
value_currency:
description: The ISO 4217 currency code of the value associated with the event.
type: string
example: USD
nullable: true
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
default: false
nullable: true
metric:
type: object
properties:
data:
$ref: '#/components/schemas/MetricCreateQueryResourceObject'
required:
- data
unique_id:
description: 'A unique identifier for an event. If a unique_id is repeated for the same profile and metric,
the request will fail and no events will be processed. If this field is not
present, this field will use the time to the second. Using the default, this limits only one
event per profile per second.'
type: string
nullable: true
required:
- properties
- metric
required:
- type
- attributes
ListEnum:
type: string
enum:
- list
EventResponseObjectResource:
type: object
properties:
type:
$ref: '#/components/schemas/EventEnum'
id:
description: The Event ID
type: string
attributes:
type: object
properties:
timestamp:
description: Event timestamp in seconds
type: integer
nullable: true
event_properties:
description: Event properties, can include identifiers and extra properties
type: object
nullable: true
datetime:
description: Event timestamp in ISO8601 format (YYYY-MM-DDTHH:MM:SS+hh:mm)
type: string
format: date-time
example: '2022-11-08T01:23:45+00:00'
nullable: true
uuid:
description: A unique identifier for the event, this can be used as a cursor in pagination
type: string
nullable: true
relationships:
type: object
properties:
profile:
type: object
properties:
data:
type: object
properties:
type:
$ref: '#/components/schemas/ProfileEnum'
id:
description: Profile ID of the associated profile, if available
type: string
required:
- type
- id
links:
$ref: '#/components/schemas/RelationshipLinks'
metric:
type: object
properties:
data:
type: object
properties:
type:
$ref: '#/components/schemas/MetricEnum'
id:
description: The Metric ID
type: string
required:
- type
- id
links:
$ref: '#/components/schemas/RelationshipLinks'
attributions:
type: object
properties:
data:
type: array
items:
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/AttributionEnum'
id:
description: Attributions for this event
type: string
links:
$ref: '#/components/schemas/RelationshipLinks'
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- type
- id
- attributes
- links
GetProfileResponse:
type: object
properties:
data:
allOf:
- properties:
type:
$ref: '#/components/schemas/ProfileEnum'
attributes:
properties:
subscriptions:
$ref: '#/components/schemas/Subscriptions'
nullable: true
predictive_analytics:
$ref: '#/components/schemas/PredictiveAnalytics'
nullable: true
- $ref: '#/components/schemas/ProfileResponseObjectResource'
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- data
GetEventMetricRelationshipResponse:
type: object
properties:
data:
type: object
properties:
type:
$ref: '#/components/schemas/MetricEnum'
id:
description: The Metric ID
type: string
required:
- type
- id
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- data
Subscriptions:
type: object
properties:
email:
description: The email channel subscription.
$ref: '#/components/schemas/EmailChannel'
nullable: true
sms:
description: The SMS channel subscription.
$ref: '#/components/schemas/SMSChannel'
nullable: true
mobile_push:
description: The mobile push channel subscription.
$ref: '#/components/schemas/PushChannel'
nullable: true
whatsapp:
description: The whatsapp channel subscription.
$ref: '#/components/schemas/WhatsappChannel'
nullable: true
EmailMarketingListSuppression:
type: object
properties:
list_id:
description: The ID of list to which the suppression applies.
type: string
example: Y6nRLr
reason:
description: The reason the profile was suppressed from the list.
type: string
example: USER_SUPPRESSED
timestamp:
description: The timestamp when the profile was suppressed from the list, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
type: string
format: date-time
example: '2023-02-21T20:07:38+00:00'
required:
- list_id
- reason
- timestamp
EventsBulkCreateJob:
type: object
properties:
data:
$ref: '#/components/schemas/EventsBulkCreateJobResourceObject'
required:
- data
PredictiveAnalytics:
type: object
properties:
historic_clv:
description: Total value of all historically placed orders
type: number
example: 93.87
nullable: true
predicted_clv:
description: Predicted value of all placed orders in the next 365 days
type: number
example: 27.24
nullable: true
total_clv:
description: Sum of historic and predicted CLV
type: number
example: 121.11
nullable: true
historic_number_of_orders:
description: Number of already placed orders
type: number
example: 2
nullable: true
predicted_number_of_orders:
description: Predicted number of placed orders in the next 365 days
type: number
example: 0.54
nullable: true
average_days_between_orders:
description: Average number of days between orders (None if only one order has been placed)
type: number
example: 189
nullable: true
average_order_value:
description: Average value of placed orders
type: number
example: 46.94
nullable: true
churn_probability:
description: Probability the customer has churned
type: number
example: 0.89
nullable: true
expected_date_of_next_order:
description: Expected date of next order, as calculated at the time of their most recent order
type: string
format: date-time
example: '2022-11-08T00:00:00+00:00'
nullable: true
ranked_channel_affinity:
description: List of channels ranked by their predicted effectiveness for this profile, with the best channel being listed first at index 0
type: array
items:
type: string
enum:
- email
- push
- sms
- whatsapp
description: Enum for channel name return values used in the V3 API for channel affinity for the field `ranked_channel_affinity`.
example:
- sms
- email
- push
nullable: true
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
format: date-time
example: '2023-02-21T20:07:38+00:00'
nullable: true
method:
description: The method by which the profile was subscribed to SMS marketing.
type: string
example: TEXT
nullable: true
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
example: JOIN
default: ''
nullable: true
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
format: date-time
example: '2023-02-21T20:07:38+00:00'
nullable: true
required:
- can_receive_sms_marketing
- consent
AttributionResponseObjectResource:
type: object
properties:
type:
$ref: '#/components/schemas/AttributionEnum'
id:
description: The ID of the attribution
type: string
example: 925e385b52fb405715f3616c337cc65c
relationships:
type: object
properties:
event:
type: object
properties:
data:
type: object
properties:
type:
$ref: '#/components/schemas/EventEnum'
id:
description: Event
type: string
required:
- type
- id
links:
$ref: '#/components/schemas/RelationshipLinks'
attributed-event:
type: object
properties:
data:
type: object
properties:
type:
$ref: '#/components/schemas/EventEnum'
id:
description: Attributed Event
type: string
required:
- type
- id
links:
$ref: '#/components/schemas/RelationshipLinks'
campaign:
type: object
properties:
data:
type: object
properties:
type:
$ref: '#/components/schemas/CampaignEnum'
id:
description: Attributed Campaign
type: string
required:
- type
- id
links:
$ref: '#/components/schemas/RelationshipLinks'
campaign-message:
type: object
properties:
data:
type: object
properties:
type:
$ref: '#/components/schemas/CampaignMessageEnum'
id:
description: Attributed Campaign Message
type: string
required:
- type
- id
links:
$ref: '#/components/schemas/RelationshipLinks'
flow:
type: object
properties:
data:
type: object
properties:
type:
$ref: '#/components/schemas/FlowEnum'
id:
description: Attributed Flow
type: string
required:
- type
- id
links:
$ref: '#/components/schemas/RelationshipLinks'
flow-message:
type: object
properties:
data:
type: object
properties:
type:
$ref: '#/components/schemas/FlowMessageEnum'
id:
description: Attributed Flow Message
type: string
required:
- type
- id
links:
$ref: '#/components/schemas/RelationshipLinks'
flow-message-variation:
type: object
properties:
data:
type: object
properties:
type:
$ref: '#/components/schemas/FlowMessageEnum'
id:
description: Attributed Flow Message Variation
type: string
required:
- type
- id
links:
$ref: '#/components/schemas/RelationshipLinks'
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- type
- id
- links
GetEventResponseCompoundDocument:
type: object
properties:
data:
$ref: '#/components/schemas/EventResponseObjectResource'
included:
type: array
items:
oneOf:
- $ref: '#/components/schemas/MetricResponseObjectResource'
- $ref: '#/components/schemas/ProfileResponseObjectResource'
- $ref: '#/components/schemas/AttributionResponseObjectResource'
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- data
WhatsappChannel:
type: object
properties:
marketing:
description: The Whatsapp marketing subscription.
$ref: '#/components/schemas/WhatsappMarketingChannel'
nullable: true
transactional:
description: The Whatsapp transactional subscription.
$ref: '#/components/schemas/WhatsappTransactionalChannel'
nullable: true
conversational:
description: The Whatsapp conversational subscription.
$ref: '#/components/schemas/WhatsappConversationalChannel'
nullable: true
PushChannel:
type: object
properties:
marketing:
description: The mobile push marketing subscription.
$ref: '#/components/schemas/PushMarketing'
nullable: true
OnsiteProfileMeta:
type: object
properties:
patch_properties:
description: Specify one or more patch operations to apply to existing property data
example:
append:
skus: '92538'
$ref: '#/components/schemas/ProfileMetaPatchProperties'
nullable: true
patch_identifiers:
description: Specify one or more patch operations to apply to existing identifier data. Currently only `email` is supported, and it is used to add or remove secondary email addresses on a profile.
example:
append:
email:
- example@test.com
- another@example.com
$ref: '#/components/schemas/PatchIdentifiers'
nullable: true
AttributionEnum:
type: string
enum:
- attribution
ProfileEnum:
type: string
enum:
- profile
ProfileResponseObjectResource:
type: object
properties:
type:
$ref: '#/components/schemas/ProfileEnum'
id:
description: Primary key that uniquely identifies this profile. Generated by Klaviyo.
type: string
example: 01GDDKASAP8TKDDA2GRZDSVP4H
nullable: true
attributes:
type: object
properties:
email:
description: Individual's email address
type: string
example: sarah.mason@klaviyo-demo.com
nullable: true
phone_number:
description: Individual's phone number in E.164 format
type: string
example: '+15005550006'
nullable: true
external_id:
description: A unique identifier used by customers to associate Klaviyo profiles with profiles in an external system, such as a point-of-sale system. Format varies based on the external system.
type: string
nullable: true
first_name:
description: Individual's first name
type: string
example: Sarah
nullable: true
last_name:
description: Individual's last name
type: string
example: Mason
nullable: true
organization:
description: Name of the company or organization within the company for whom the individual works
type: string
example: Example Corporation
nullable: true
locale:
description: The locale of the profile, in the IETF BCP 47 language tag format like (ISO 639-1/2)-(ISO 3166 alpha-2)
type: string
example: en-US
nullable: true
title:
description: Individual's job title
type: string
example: Regional Manager
nullable: true
image:
description: URL pointing to the location of a profile image
type: string
example: https://images.pexels.com/photos/3760854/pexels-photo-3760854.jpeg
nullable: true
created:
description: Date and time when the profile was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
type: string
format: date-time
example: '2022-11-08T00:00:00+00:00'
nullable: true
updated:
description: Date and time when the profile was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
type: string
format: date-time
example: '2022-11-08T00:00:00+00:00'
nullable: true
last_event_date:
description: Date and time of the most recent event the triggered an update to the profile, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
type: string
format: date-time
example: '2022-11-08T00:00:00+00:00'
nullable: true
location:
$ref: '#/components/schemas/ProfileLocation'
nullable: true
properties:
description: An object containing key/value pairs for any custom properties assigned to this profile
type: object
example:
pseudonym: Dr. Octopus
nullable: true
relationships:
type: object
properties:
lists:
type: object
properties:
data:
type: array
items:
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/ListEnum'
id:
type: string
links:
$ref: '#/components/schemas/RelationshipLinks'
segments:
type: object
properties:
data:
type: array
items:
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/SegmentEnum'
id:
type: string
links:
$ref: '#/components/schemas/RelationshipLinks'
push-tokens:
type: object
properties:
data:
type: array
items:
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/PushTokenEnum'
id:
type: string
links:
$ref: '#/components/schemas/RelationshipLinks'
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- type
- attributes
- links
PatchIdentifiers:
type: object
properties:
append:
type: object
unappend:
type: object
EventBulkCreateEnum:
type: string
enum:
- event-bulk-create
SMSChannel:
type: object
properties:
marketing:
description: The SMS marketing subscription.
$ref: '#/components/schemas/SMSMarketing'
nullable: true
transactional:
description: The SMS transactional subscription.
$ref: '#/components/schemas/SMSTransactional'
nullable: true
OnsiteProfileCreateQueryResourceObject:
type: object
properties:
type:
$ref: '#/components/schemas/ProfileEnum'
id:
description: Primary key that uniquely identifies this profile. Generated by Klaviyo.
type: string
nullable: true
attributes:
type: object
properties:
email:
description: Individual's email address
type: string
example: sarah.mason@klaviyo-demo.com
nullable: true
phone_number:
description: Individual's phone number in E.164 format
type: string
example: '+15005550006'
nullable: true
external_id:
description: A unique identifier used by customers to associate Klaviyo profiles with profiles in an external system, such as a point-of-sale system. Format varies based on the external system.
type: string
nullable: true
anonymous_id:
type: string
nullable: true
_kx:
description: 'Also known as the `exchange_id`, this is an encrypted identifier used for identifying a
profile by Klaviyo''s web tracking.
You can use this field as a filter when retrieving profiles via the Get Profiles endpoint.'
type: string
nullable: true
first_name:
description: Individual's first name
type: string
example: Sarah
nullable: true
last_name:
description: Individual's last name
type: string
example: Mason
nullable: true
organization:
description: Name of the company or organization within the company for whom the individual works
type: string
example: Example Corporation
nullable: true
locale:
description: The locale of the profile, in the IETF BCP 47 language tag format like (ISO 639-1/2)-(ISO 3166 alpha-2)
type: string
example: en-US
nullable: true
title:
description: Individual's job title
type: string
example: Regional Manager
nullable: true
image:
description: URL pointing to the location of a profile image
type: string
example: https://images.pexels.com/photos/3760854/pexels-photo-3760854.jpeg
nullable: true
location:
$ref: '#/components/schemas/ProfileLocation'
nullable: true
properties:
description: An object containing key/value pairs for any custom properties assigned to this profile
type: object
example:
pseudonym: Dr. Octopus
nullable: true
meta:
$ref: '#/components/schemas/OnsiteProfileMeta'
nullable: true
required:
- type
- attributes
GetEventProfileRelationshipResponse:
type: object
properties:
data:
type: object
properties:
type:
$ref: '#/components/schemas/ProfileEnum'
id:
description: Primary key that uniquely identifies this profile. Generated by Klaviyo.
type: string
example: 01GDDKASAP8TKDDA2GRZDSVP4H
required:
- type
- id
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- data
FlowEnum:
type: string
enum:
- flow
CampaignEnum:
type: string
enum:
- campaign
EmailChannel:
type: object
properties:
marketing:
description: The email marketing subscription.
$ref: '#/components/schemas/EmailMarketing'
nullable: true
FlowMessageEnum:
type: string
enum:
- flow-message
MetricResponseObjectResource:
type: object
properties:
type:
$ref: '#/components/schemas/MetricEnum'
id:
description: The Metric ID
type: string
attributes:
type: object
properties:
name:
description: The name of the metric
type: string
nullable: true
created:
description: Creation time in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
type: string
nullable: true
updated:
description: Last updated time in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
type: string
nullable: true
integration:
description: The integration associated with the event
type: object
nullable: true
relationships:
type: object
properties:
flow-triggers:
type: object
properties:
data:
type: array
items:
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/FlowEnum'
id:
type: string
links:
$ref: '#/components/schemas/RelationshipLinks'
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- type
- id
- attributes
- links
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
nullable: true
required:
- name
required:
- type
- attributes
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
format: date-time
example: '2022-11-08T00:00:00+00:00'
nullable: true
value:
description: A numeric, monetary value to associate with this event. For example, the dollar amount of a purchase.
type: number
example: 9.99
nullable: true
value_currency:
description: The ISO 4217 currency code of the value associated with the event.
type: string
example: USD
nullable: true
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
nullable: true
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
default: false
nullable: true
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
PushMarketing:
type: object
properties:
can_receive_push_marketing:
description: Whether or not this profile is subscribed to receive mobile push.
type: boolean
consent:
description: The consent status for mobile push marketing.
type: string
example: SUBSCRIBED
consent_timestamp:
description: The timestamp when the consent was last changed, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
type: string
format: date-time
example: '2023-02-21T20:07:38+00:00'
nullable: true
required:
- can_receive_push_marketing
- consent
EventCreateQueryV2:
type: object
properties:
data:
$ref: '#/components/schemas/EventCreateQueryV2ResourceObject'
required:
- data
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
format: date-time
example: '2023-02-21T20:07:38+00:00'
nullable: true
last_updated:
description: The timestamp when the channel was last modified, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
type: string
format: date-time
example: '2023-02-21T20:07:38+00:00'
nullable: true
created_timestamp:
description: The timestamp when the channel was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
type: string
format: date-time
example: '2023-02-21T20:07:38+00:00'
nullable: true
metadata:
description: Channel-specific metadata containing additional information about the permission.
type: object
nullable: true
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
format: date-time
example: '2024-02-21T20:07:38+00:00'
nullable: true
phone_number:
description: Phone number to which the consent was granted for.
type: string
required:
- consent
- can_receive
- phone_number
MetricEnum:
type: string
enum:
- metric
SegmentEnum:
type: string
enum:
- segment
EventsBulkCreateJobResourceObject:
type: object
properties:
type:
$ref: '#/components/schemas/EventBulkCreateJobEnum'
attributes:
type: object
properties:
events-bulk-create:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/EventsBulkCreateQueryResourceObject'
required:
- data
required:
- events-bulk-create
required:
- type
- attributes
EventEnum:
type: string
enum:
- event
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
format: date-time
example: '2023-02-21T20:07:38+00:00'
nullable: true
last_updated:
description: The timestamp when the channel was last modified, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
type: string
format: date-time
example: '2023-02-21T20:07:38+00:00'
nullable: true
created_timestamp:
description: The timestamp when the channel was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
type: string
format: date-time
example: '2023-02-21T20:07:38+00:00'
nullable: true
metadata:
description: Channel-specific metadata containing additional information about the permission.
type: object
nullable: true
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
format: date-time
example: '2024-02-21T20:07:38+00:00'
nullable: true
phone_number:
description: Phone number to which the consent was granted for.
type: string
required:
- consent
- can_receive
- phone_number
EmailMarketingSuppression:
type: object
properties:
reason:
description: The reason the profile was suppressed.
type: string
example: HARD_BOUNCE
enum:
- HARD_BOUNCE
- INVALID_EMAIL
- SPAM_COMPLAINT
- UNSUBSCRIBE
- USER_SUPPRESSED
timestamp:
description: The timestamp when the profile was suppressed, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).
type: string
format: date-time
example: '2023-02-21T20:07:38+00:00'
required:
- reason
- timestamp
GetEventResponseCollectionCompoundDocument:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/EventResponseObjectResource'
links:
$ref: '#/components/schemas/CollectionLinks'
included:
type: array
items:
oneOf:
- $ref: '#/components/schemas/MetricResponseObjectResource'
- $ref: '#/components/schemas/ProfileResponseObjectResource'
- $ref: '#/components/schemas/AttributionResponseObjectResource'
required:
- data
ObjectLinks:
type: object
properties:
self:
type: string
format: uri
required:
- self
CollectionLinks:
type: object
properties:
self:
type: string
format: uri
first:
type: string
format: uri
last:
type: string
format: uri
prev:
type: string
format: uri
next:
type: string
format: uri
required:
- self
ProfileLocation:
type: object
properties:
address1:
description: First line of street address
type: string
example: 89 E 42nd St
nullable: true
address2:
description: Second line of street address
type: string
example: 1st floor
nullable: true
city:
description: City name
type: string
example: New York
nullable: true
country:
description: Country name
type: string
example: United States
nullable: true
latitude:
description: Latitude coordinate. We recommend providing a precision of four decimal places.
example: '40.7128'
nullable: true
oneOf:
- type: string
- type: number
longitude:
description: Longitude coordinate. We recommend providing a precision of four decimal places.
example: '74.0060'
nullable: true
oneOf:
- type: string
- type: number
region:
description: Region within a country, such as state or province
type: string
example: NY
nullable: true
zip:
description: Zip code
type: string
example: '10017'
nullable: true
timezone:
description: Time zone name. We recommend using time zones from the IANA Time Zone Database.
type: string
example: America/New_York
nullable: true
ip:
description: IP Address
type: string
example: 127.0.0.1
nullable: true
ProfileMetaPatchProperties:
type: object
properties:
append:
description: Append a simple value or values to this property array
type: object
example:
skus: '92538'
nullable: true
unappend:
description: Remove a simple value or values from this property array
type: object
example:
skus: '40571'
nullable: true
unset:
description: Remove a key or keys (and their values) completely from properties
example: skus
nullable: true
oneOf:
- type: string
- type: array
items:
type: string
EventBulkCreateJobEnum:
type: string
enum:
- event-bulk-create-job
RelationshipLinks:
type: object
properties:
self:
type: string
format: uri
related:
type: string
format: uri
required:
- self
- related
responses:
ClientError:
description: Client Error
content:
application/vnd.api+json:
schema:
type: object
properties:
errors:
type: array
items:
type: object
required:
- id
- code
- title
- detail
properties:
id:
type: string
code:
type: string
title:
type: string
detail:
type: string
source:
type: object
properties:
pointer:
type: string
parameter:
type: string
required:
- errors
ServerError:
description: Server Error
content:
application/vnd.api+json:
schema:
type: object
properties:
errors:
type: array
items:
type: object
required:
- id
- code
- title
- detail
properties:
id:
type: string
code:
type: string
title:
type: string
detail:
type: string
source:
type: object
properties:
pointer:
type: string
parameter:
type: string
required:
- errors
securitySchemes:
Klaviyo-API-Key:
type: apiKey
in: header
name: Authorization
description: Private key authentication for /api/ endpoints is performed by setting the `Authorization` header to `Klaviyo-API-Key your-private-api-key`
For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#authentication
x-default: Klaviyo-API-Key your-private-api-key
x-readme:
explorer-enabled: false
proxy-enabled: true
samples-enabled: true