openapi: 3.0.2
info:
title: Klaviyo Accounts Profiles 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: Profiles
description: profiles
paths:
/api/profiles:
get:
operationId: get_profiles
summary: Get Profiles
description: 'Get all profiles in an account.
Profiles can be sorted by the following fields in ascending and descending order: `id`, `created`, `updated`, `email`, `subscriptions.email.marketing.suppression.timestamp`, `subscriptions.email.marketing.list_suppressions.timestamp`
Use the `additional-fields` parameter to include subscriptions and predictive analytics data in your response.
*Rate limits*:
Burst: `75/s`
Steady: `750/m`
Rate limits when using the `additional-fields[profile]=predictive_analytics` parameter in your API request:
Burst: `10/s`
Steady: `150/m`
To learn more about how the `additional-fields` parameter impacts rate limits, check out our [Rate limits, status codes, and errors](https://developers.klaviyo.com/en/v2026-04-15/docs/rate_limits_and_error_handling) guide.
**Scopes:**
`profiles:read`'
parameters:
- 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: fields[push-token]
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:
- background
- created
- enablement_status
- metadata
- metadata.app_build
- metadata.app_id
- metadata.app_name
- metadata.app_version
- metadata.device_id
- metadata.device_model
- metadata.environment
- metadata.klaviyo_sdk
- metadata.manufacturer
- metadata.os_name
- metadata.os_version
- metadata.sdk_version
- platform
- recorded_date
- token
- vendor
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):
`id`: `any`, `equals`
`email`: `any`, `equals`
`phone_number`: `any`, `equals`
`external_id`: `any`, `equals`
`_kx`: `equals`
`created`: `greater-than`, `less-than`
`updated`: `greater-than`, `less-than`
`subscriptions.email.marketing.list_suppressions.reason`: `equals`
`subscriptions.email.marketing.list_suppressions.timestamp`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
`subscriptions.email.marketing.list_suppressions.list_id`: `equals`
`subscriptions.email.marketing.suppression.reason`: `equals`
`subscriptions.email.marketing.suppression.timestamp`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`'
schema:
type: string
example: equals(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:
- conversation
- push-tokens
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: 20. Min: 1. Max: 100.'
required: false
schema:
type: integer
default: 20
maximum: 100
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:
- created
- -created
- email
- -email
- id
- -id
- subscriptions.email.marketing.list_suppressions.timestamp
- -subscriptions.email.marketing.list_suppressions.timestamp
- subscriptions.email.marketing.suppression.timestamp
- -subscriptions.email.marketing.suppression.timestamp
- updated
- -updated
- 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/GetProfileResponseCollectionCompoundDocument'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 75/s
steady: 750/m
x-klaviyo-scopes:
- profiles:read
post:
operationId: create_profile
summary: Create Profile
description: 'Create a new profile.
Use the `additional-fields` parameter to include subscriptions and predictive analytics data in your response.
The maximum allowed payload size is 100KB.
*Rate limits*:
Burst: `75/s`
Steady: `750/m`
**Scopes:**
`profiles:write`'
parameters:
- 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: 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/ProfileCreateQuery'
responses:
'201':
description: Success
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/PostProfileResponse'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 75/s
steady: 750/m
x-klaviyo-scopes:
- profiles:write
/api/profiles/{id}:
get:
operationId: get_profile
summary: Get Profile
description: 'Get the profile with the given profile ID.
Use the `additional-fields` parameter to include subscriptions and predictive analytics data in your response.
*Rate limits*:
Burst: `75/s`
Steady: `750/m`
Rate limits when using the `include=list` parameter in your API request:
Burst: `1/s`
Steady: `15/m`
Rate limits when using the `include=segment` parameter in your API request:
Burst: `1/s`
Steady: `15/m`
To learn more about how the `include` parameter impacts rate limits, check out our [Rate limits, status codes, and errors](https://developers.klaviyo.com/en/v2026-04-15/docs/rate_limits_and_error_handling) guide.
**Scopes:**
`profiles:read`'
parameters:
- name: id
in: path
description: ''
required: true
schema:
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[list]
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
- name
- opt_in_process
- 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
- 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: fields[push-token]
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:
- background
- created
- enablement_status
- metadata
- metadata.app_build
- metadata.app_id
- metadata.app_name
- metadata.app_version
- metadata.device_id
- metadata.device_model
- metadata.environment
- metadata.klaviyo_sdk
- metadata.manufacturer
- metadata.os_name
- metadata.os_version
- metadata.sdk_version
- platform
- recorded_date
- token
- vendor
explode: false
- name: fields[segment]
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
- definition
- definition.condition_groups
- is_active
- is_processing
- is_starred
- name
- 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:
- conversation
- lists
- push-tokens
- segments
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/GetProfileResponseCompoundDocument'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 75/s
steady: 750/m
x-klaviyo-scopes:
- profiles:read
patch:
operationId: update_profile
summary: Update Profile
description: 'Update the profile with the given profile ID.
Use the `additional-fields` parameter to include subscriptions and predictive analytics data in your response.
Note that setting a field to `null` will clear out the field, whereas not including a field in your request will leave it unchanged.
The maximum allowed payload size is 100KB.
*Rate limits*:
Burst: `75/s`
Steady: `750/m`
**Scopes:**
`profiles:write`'
parameters:
- name: id
in: path
description: Primary key that uniquely identifies this profile. Generated by Klaviyo.
required: true
schema:
description: Primary key that uniquely identifies this profile. Generated by Klaviyo.
type: string
example: 01GDDKASAP8TKDDA2GRZDSVP4H
- 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: 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/ProfilePartialUpdateQuery'
responses:
'200':
description: Success
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/PatchProfileResponse'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 75/s
steady: 750/m
x-klaviyo-scopes:
- profiles:write
/api/profile-bulk-import-jobs:
get:
operationId: get_bulk_import_profiles_jobs
summary: Get Bulk Import Profiles Jobs
description: 'Get all bulk profile import jobs.
Returns a maximum of 100 jobs per request.
*Rate limits*:
Burst: `10/s`
Steady: `150/m`
**Scopes:**
`lists:read`
`profiles:read`'
parameters:
- name: fields[profile-bulk-import-job]
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:
- completed_at
- completed_count
- created_at
- expires_at
- failed_count
- started_at
- status
- total_count
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):
`status`: `any`, `equals`'
schema:
type: string
example: equals(status,'queued')
- 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: 20. Min: 1. Max: 100.'
required: false
schema:
type: integer
default: 20
maximum: 100
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:
- created_at
- -created_at
- 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/GetProfileImportJobResponseCollectionCompoundDocument'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-operation-aliases:
- get_bulk_profile_import_jobs
- get_profile_bulk_import_jobs
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 10/s
steady: 150/m
x-klaviyo-scopes:
- lists:read
- profiles:read
x-klaviyo-subtag: Bulk Import Profiles
post:
operationId: bulk_import_profiles
summary: Bulk Import Profiles
description: 'Create a bulk profile import job to create or update a batch of profiles.
Accepts up to 10,000 profiles per request. The maximum allowed payload size is 5MB. The maximum allowed payload size per-profile is 100KB.
To learn more, see our [Bulk Profile Import API guide](https://developers.klaviyo.com/en/docs/use_klaviyos_bulk_profile_import_api).
*Rate limits*:
Burst: `10/s`
Steady: `150/m`
**Scopes:**
`lists:write`
`profiles: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/ProfileImportJobCreateQuery'
responses:
'202':
description: Success
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/PostProfileImportJobResponse'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-operation-aliases:
- spawn_bulk_profile_import_job
- create_profile_bulk_import_job
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 10/s
steady: 150/m
x-klaviyo-scopes:
- lists:write
- profiles:write
x-klaviyo-subtag: Bulk Import Profiles
/api/profile-bulk-import-jobs/{job_id}:
get:
operationId: get_bulk_import_profiles_job
summary: Get Bulk Import Profiles Job
description: 'Get a bulk profile import job with the given job ID.
*Rate limits*:
Burst: `10/s`
Steady: `150/m`
**Scopes:**
`lists:read`
`profiles:read`'
parameters:
- name: job_id
in: path
description: ID of the job to retrieve.
required: true
schema:
description: ID of the job to retrieve.
type: string
example: 01GSQPBF74KQ5YTDEPP41T1BZH
- name: fields[list]
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
- name
- opt_in_process
- updated
explode: false
- name: fields[profile-bulk-import-job]
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:
- completed_at
- completed_count
- created_at
- expires_at
- failed_count
- started_at
- status
- total_count
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:
- lists
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/GetProfileImportJobResponseCompoundDocument'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-operation-aliases:
- get_bulk_profile_import_job
- get_profile_bulk_import_job
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 10/s
steady: 150/m
x-klaviyo-scopes:
- lists:read
- profiles:read
x-klaviyo-subtag: Bulk Import Profiles
/api/profile-suppression-bulk-create-jobs:
get:
operationId: get_bulk_suppress_profiles_jobs
summary: Get Bulk Suppress Profiles Jobs
description: 'Get the status of all bulk profile suppression jobs.
*Rate limits*:
Burst: `75/s`
Steady: `750/m`
**Scopes:**
`subscriptions:read`'
parameters:
- name: fields[profile-suppression-bulk-create-job]
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:
- completed_at
- completed_count
- created_at
- skipped_count
- status
- total_count
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):
`status`: `equals`
`list_id`: `equals`
`segment_id`: `equals`'
schema:
type: string
example: equals(status,'processing')
- 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: 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:
- created
- -created
- 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/GetBulkProfileSuppressionsCreateJobResponseCollection'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-operation-aliases:
- get_profile_suppression_bulk_create_jobs
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 75/s
steady: 750/m
x-klaviyo-scopes:
- subscriptions:read
x-klaviyo-subtag: Consent
post:
operationId: bulk_suppress_profiles
summary: Bulk Suppress Profiles
description: 'Manually suppress profiles by email address or specify a segment/list ID to suppress all current members of a segment/list.
Suppressed profiles cannot receive email marketing, independent of their consent status. To learn more, see our guides on [email suppressions](https://help.klaviyo.com/hc/en-us/articles/115005246108#what-is-a-suppressed-profile-1) and [collecting consent](https://developers.klaviyo.com/en/docs/collect_email_and_sms_consent_via_api).
Email address per request limit: 100
*Rate limits*:
Burst: `75/s`
Steady: `750/m`
**Scopes:**
`profiles:write`
`subscriptions: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:
description: Suppresses one or more profiles from receiving marketing. Currently, supports email only. If a profile is not found with the given email, one will be created and immediately suppressed.
required: true
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/SuppressionCreateJobCreateQuery'
responses:
'202':
description: Success
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/PostBulkProfileSuppressionsCreateJobResponse'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-operation-aliases:
- suppress_profiles
- create_profile_suppression_bulk_create_job
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 75/s
steady: 750/m
x-klaviyo-scopes:
- profiles:write
- subscriptions:write
x-klaviyo-subtag: Consent
/api/profile-suppression-bulk-create-jobs/{job_id}:
get:
operationId: get_bulk_suppress_profiles_job
summary: Get Bulk Suppress Profiles Job
description: 'Get the bulk suppress profiles job with the given job ID.
*Rate limits*:
Burst: `75/s`
Steady: `750/m`
**Scopes:**
`subscriptions:read`'
parameters:
- name: job_id
in: path
description: ID of the job to retrieve.
required: true
schema:
description: ID of the job to retrieve.
type: string
example: 01GSQPBF74KQ5YTDEPP41T1BZH
- name: fields[profile-suppression-bulk-create-job]
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:
- completed_at
- completed_count
- created_at
- skipped_count
- status
- total_count
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/GetBulkProfileSuppressionsCreateJobResponse'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-operation-aliases:
- get_profile_suppression_bulk_create_job
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 75/s
steady: 750/m
x-klaviyo-scopes:
- subscriptions:read
x-klaviyo-subtag: Consent
/api/profile-suppression-bulk-delete-jobs:
get:
operationId: get_bulk_unsuppress_profiles_jobs
summary: Get Bulk Unsuppress Profiles Jobs
description: 'Get all bulk unsuppress profiles jobs.
*Rate limits*:
Burst: `75/s`
Steady: `750/m`
**Scopes:**
`subscriptions:read`'
parameters:
- name: fields[profile-suppression-bulk-delete-job]
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:
- completed_at
- completed_count
- created_at
- skipped_count
- status
- total_count
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):
`status`: `equals`
`list_id`: `equals`
`segment_id`: `equals`'
schema:
type: string
example: equals(status,'processing')
- 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: 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:
- created
- -created
- 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/GetBulkProfileSuppressionsRemoveJobResponseCollection'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-operation-aliases:
- get_profile_suppression_bulk_delete_jobs
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 75/s
steady: 750/m
x-klaviyo-scopes:
- subscriptions:read
x-klaviyo-subtag: Consent
post:
operationId: bulk_unsuppress_profiles
summary: Bulk Unsuppress Profiles
description: 'Manually unsuppress profiles by email address or specify a segment/list ID to unsuppress all current members of a segment/list.
This only removes suppressions with reason USER_SUPPRESSED ; unsubscribed profiles and suppressed profiles with reason INVALID_EMAIL or HARD_BOUNCE remain unchanged. To learn more, see our guides on [email suppressions](https://help.klaviyo.com/hc/en-us/articles/115005246108#what-is-a-suppressed-profile-1) and [collecting consent](https://developers.klaviyo.com/en/docs/collect_email_and_sms_consent_via_api).
Email address per request limit: 100
*Rate limits*:
Burst: `75/s`
Steady: `750/m`
**Scopes:**
`subscriptions: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:
description: 'Unsuppresses one or more profiles from receiving marketing. Currently, supports email only. If a profile is not
found with the given email, no action will be taken.'
required: true
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/SuppressionDeleteJobCreateQuery'
responses:
'202':
description: Success
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/PostBulkProfileSuppressionsRemoveJobResponse'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-operation-aliases:
- unsuppress_profiles
- create_profile_suppression_bulk_delete_job
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 75/s
steady: 750/m
x-klaviyo-scopes:
- subscriptions:write
x-klaviyo-subtag: Consent
/api/profile-suppression-bulk-delete-jobs/{job_id}:
get:
operationId: get_bulk_unsuppress_profiles_job
summary: Get Bulk Unsuppress Profiles Job
description: 'Get the bulk unsuppress profiles job with the given job ID.
*Rate limits*:
Burst: `75/s`
Steady: `750/m`
**Scopes:**
`subscriptions:read`'
parameters:
- name: job_id
in: path
description: ID of the job to retrieve.
required: true
schema:
description: ID of the job to retrieve.
type: string
example: 01GSQPBF74KQ5YTDEPP41T1BZH
- name: fields[profile-suppression-bulk-delete-job]
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:
- completed_at
- completed_count
- created_at
- skipped_count
- status
- total_count
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/GetBulkProfileSuppressionsRemoveJobResponse'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-operation-aliases:
- get_profile_suppression_bulk_delete_job
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 75/s
steady: 750/m
x-klaviyo-scopes:
- subscriptions:read
x-klaviyo-subtag: Consent
/api/push-tokens:
get:
operationId: get_push_tokens
summary: Get Push Tokens
description: 'Return push tokens associated with company.
*Rate limits*:
Burst: `10/s`
Steady: `150/m`
**Scopes:**
`profiles:read`
`push-tokens:read`'
parameters:
- 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: fields[push-token]
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:
- background
- created
- enablement_status
- metadata
- metadata.app_build
- metadata.app_id
- metadata.app_name
- metadata.app_version
- metadata.device_id
- metadata.device_model
- metadata.environment
- metadata.klaviyo_sdk
- metadata.manufacturer
- metadata.os_name
- metadata.os_version
- metadata.sdk_version
- platform
- recorded_date
- token
- vendor
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):
`id`: `equals`
`profile.id`: `equals`
`enablement_status`: `equals`
`platform`: `equals`'
schema:
type: string
example: equals(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:
- 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: 20. Min: 1. Max: 100.'
required: false
schema:
type: integer
default: 20
maximum: 100
minimum: 1
- 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/GetPushTokenResponseCollectionCompoundDocument'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 10/s
steady: 150/m
x-klaviyo-scopes:
- profiles:read
- push-tokens:read
x-klaviyo-subtag: Push Tokens
post:
operationId: create_push_token
summary: Create or Update Push Token
description: 'Create or update a push token.
This endpoint can be used to migrate push tokens from another platform to Klaviyo. Please use our mobile SDKs ([iOS](https://github.com/klaviyo/klaviyo-swift-sdk) and [Android](https://github.com/klaviyo/klaviyo-android-sdk)) to create push tokens from users'' devices.
The maximum allowed payload size is 100KB.
*Rate limits*:
Burst: `75/s`
Steady: `750/m`
**Scopes:**
`profiles:write`
`push-tokens: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/PushTokenCreateQuery'
responses:
'202':
description: Success
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 75/s
steady: 750/m
x-klaviyo-scopes:
- profiles:write
- push-tokens:write
x-klaviyo-subtag: Push Tokens
/api/push-tokens/{id}:
get:
operationId: get_push_token
summary: Get Push Token
description: 'Return a specific push token based on its ID.
*Rate limits*:
Burst: `10/s`
Steady: `150/m`
**Scopes:**
`profiles:read`
`push-tokens:read`'
parameters:
- name: id
in: path
description: The value of the push token
required: true
schema:
description: The value of the push token
type: string
- 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: fields[push-token]
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:
- background
- created
- enablement_status
- metadata
- metadata.app_build
- metadata.app_id
- metadata.app_name
- metadata.app_version
- metadata.device_id
- metadata.device_model
- metadata.environment
- metadata.klaviyo_sdk
- metadata.manufacturer
- metadata.os_name
- metadata.os_version
- metadata.sdk_version
- platform
- recorded_date
- token
- vendor
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:
- 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/GetPushTokenResponseCompoundDocument'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 10/s
steady: 150/m
x-klaviyo-scopes:
- profiles:read
- push-tokens:read
x-klaviyo-subtag: Push Tokens
delete:
operationId: delete_push_token
summary: Delete Push Token
description: 'Delete a specific push token based on its ID.
*Rate limits*:
Burst: `3/s`
Steady: `60/m`
**Scopes:**
`push-tokens:write`'
parameters:
- name: id
in: path
description: The value of the push token to delete
required: true
schema:
description: The value of the push token to delete
type: string
example: 925e385b52fb405715f3616c337cc65c
- name: revision
in: header
description: 'API endpoint revision (format: YYYY-MM-DD[.suffix])'
required: true
schema:
type: string
default: '2026-04-15'
responses:
'204':
description: Success
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 3/s
steady: 60/m
x-klaviyo-scopes:
- push-tokens:write
x-klaviyo-subtag: Push Tokens
/api/profile-import:
post:
operationId: create_or_update_profile
summary: Create or Update Profile
description: 'Given a set of profile attributes and optionally an ID, create or update a profile.
Returns 201 if a new profile was created, 200 if an existing profile was updated.
Use the `additional-fields` parameter to include subscriptions and predictive analytics data in your response.
Note that setting a field to `null` will clear out the field, whereas not including a field in your request will leave it unchanged.
The maximum allowed payload size is 100KB.
*Rate limits*:
Burst: `75/s`
Steady: `750/m`
**Scopes:**
`profiles:write`'
parameters:
- 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: 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/ProfileUpsertQuery'
responses:
'200':
description: Profile Updated Successfully
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/PostProfileResponse'
'201':
description: Profile Created Successfully
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/PostProfileResponse'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-operation-aliases:
- create_profile_import
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 75/s
steady: 750/m
x-klaviyo-scopes:
- profiles:write
/api/profile-merge:
post:
operationId: merge_profiles
summary: Merge Profiles
description: 'Merge a given related profile into a profile with the given profile ID.
The profile provided under `relationships` (the "source" profile) will be merged into the profile provided by the ID in the base data object (the "destination" profile).
This endpoint queues an asynchronous task which will merge data from the source profile into the destination profile, deleting the source profile in the process. This endpoint accepts only one source profile.
To learn more about how profile data is preserved or overwritten during a merge, please [visit our Help Center](https://help.klaviyo.com/hc/en-us/articles/115005073847#merge-2-profiles3).
*Rate limits*:
Burst: `10/s`
Steady: `150/m`
**Scopes:**
`profiles: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/ProfileMergeQuery'
responses:
'201':
description: Success
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/PostProfileMergeResponse'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-operation-aliases:
- create_profile_merge
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 10/s
steady: 150/m
x-klaviyo-scopes:
- profiles:write
/api/profile-subscription-bulk-create-jobs:
post:
operationId: bulk_subscribe_profiles
summary: Bulk Subscribe Profiles
description: 'Subscribe one or more profiles to email marketing, SMS marketing, WhatsApp, or push. If the provided list has double opt-in enabled, profiles will receive a message requiring their confirmation before subscribing. Otherwise, profiles will be immediately subscribed without receiving a confirmation message.
Learn more about [consent in this guide](https://developers.klaviyo.com/en/docs/collect_email_and_sms_consent_via_api).
If a list is not provided, the opt-in process used will be determined by the [account-level default opt-in setting](https://www.klaviyo.com/settings/account/api-keys).
To add someone to a list without changing their subscription status, use [Add Profile to List](https://developers.klaviyo.com/en/reference/create_list_relationships).
This API will remove any `UNSUBSCRIBE`, `SPAM_REPORT` or `USER_SUPPRESSED` suppressions from the provided profiles. Learn more about [suppressed profiles](https://help.klaviyo.com/hc/en-us/articles/115005246108-Understanding-suppressed-email-profiles#what-is-a-suppressed-profile-1).
Maximum number of profiles can be submitted for subscription: 1000
This endpoint now supports a `historical_import` flag. If this flag is set `true`, profiles being subscribed will bypass double opt-in emails and be subscribed immediately. They will also bypass any associated "Added to list" flows. This is useful for importing historical data where you have already collected consent. If `historical_import` is set to true, the `consented_at` field is required and must be in the past.
Push tokens provided in `push_tokens` will be registered for each profile as long as push subscriptions are consented to.
*Rate limits*:
Burst: `75/s`
Steady: `750/m`
**Scopes:**
`lists:write`
`profiles:write`
`subscriptions: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:
description: 'Subscribes one or more profiles to marketing, with support for push channel and push tokens.
All profiles will be added to the provided list. Either email or phone number is required.
Both may be specified to subscribe to both channels. If a profile cannot be found matching
the given identifier(s), a new profile will be created and then subscribed.'
required: true
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/SubscriptionCreateJobCreateQuery'
responses:
'202':
description: Success
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-operation-aliases:
- subscribe_profiles
- create_profile_subscription_bulk_create_job
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 75/s
steady: 750/m
x-klaviyo-scopes:
- lists:write
- profiles:write
- subscriptions:write
x-klaviyo-subtag: Consent
/api/profile-subscription-bulk-delete-jobs:
post:
operationId: bulk_unsubscribe_profiles
summary: Bulk Unsubscribe Profiles
description: '> 🚧
>
> Profiles not in the specified list will be globally unsubscribed. Always verify profile list membership before calling this endpoint to avoid unintended global unsubscribes.
Unsubscribe one or more profiles from email marketing, SMS marketing, push marketing, or a combination. Learn more about [consent in this guide](https://developers.klaviyo.com/en/docs/collect_email_and_sms_consent_via_api).
Push tokens provided in `subscriptions.push.tokens` will be removed for the specified profiles.
To remove someone from a list without changing their subscription status, use [Remove Profiles from List](https://developers.klaviyo.com/en/reference/remove_profiles_from_list).
Maximum number of profiles per call: 100
*Rate limits*:
Burst: `75/s`
Steady: `750/m`
**Scopes:**
`lists:write`
`profiles:write`
`subscriptions: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:
description: 'Unsubscribes one or more profiles from marketing. Supports email, SMS, WhatsApp, and push channels. All profiles will be removed from the provided list.
Either email or phone number is required for email/SMS/WhatsApp channels. Push tokens can be removed by providing token strings directly.
If a profile cannot be found matching the given identifier(s), a new profile will be created and then unsubscribed.'
required: true
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/SubscriptionDeleteJobCreateQuery'
responses:
'202':
description: Success
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-operation-aliases:
- unsubscribe_profiles
- create_profile_subscription_bulk_delete_job
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 75/s
steady: 750/m
x-klaviyo-scopes:
- lists:write
- profiles:write
- subscriptions:write
x-klaviyo-subtag: Consent
/api/profiles/{id}/push-tokens:
get:
operationId: get_push_tokens_for_profile
summary: Get Push Tokens for Profile
description: 'Return all push tokens that belong to the given profile.
*Rate limits*:
Burst: `10/s`
Steady: `150/m`
**Scopes:**
`profiles:read`'
parameters:
- name: id
in: path
description: ''
required: true
schema:
type: string
- name: fields[push-token]
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:
- background
- created
- enablement_status
- metadata
- metadata.app_build
- metadata.app_id
- metadata.app_name
- metadata.app_version
- metadata.device_id
- metadata.device_model
- metadata.environment
- metadata.klaviyo_sdk
- metadata.manufacturer
- metadata.os_name
- metadata.os_version
- metadata.sdk_version
- platform
- recorded_date
- token
- vendor
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/GetPushTokenResponseCollection'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-operation-aliases:
- get_profile_push_tokens
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 10/s
steady: 150/m
x-klaviyo-scopes:
- profiles:read
/api/profiles/{id}/relationships/push-tokens:
get:
operationId: get_push_token_ids_for_profile
summary: Get Push Token IDs for Profile
description: 'Return the IDs of all push tokens associated with the given profile.
*Rate limits*:
Burst: `10/s`
Steady: `150/m`
**Scopes:**
`profiles:read`'
parameters:
- name: id
in: path
description: ''
required: true
schema:
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/GetProfilePushTokensRelationshipsResponseCollection'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-operation-aliases:
- get_profile_relationships_push_tokens
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 10/s
steady: 150/m
x-klaviyo-scopes:
- profiles:read
/api/profiles/{id}/lists:
get:
operationId: get_lists_for_profile
summary: Get Lists for Profile
description: 'Get list memberships for a profile with the given profile ID.
*Rate limits*:
Burst: `3/s`
Steady: `60/m`
**Scopes:**
`lists:read`
`profiles:read`'
parameters:
- name: id
in: path
description: ''
required: true
schema:
type: string
- name: fields[list]
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
- name
- opt_in_process
- 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/GetListResponseCollection'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-operation-aliases:
- get_profile_lists
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 3/s
steady: 60/m
x-klaviyo-scopes:
- lists:read
- profiles:read
/api/profiles/{id}/relationships/lists:
get:
operationId: get_list_ids_for_profile
summary: Get List IDs for Profile
description: 'Get list memberships for a profile with the given profile ID.
*Rate limits*:
Burst: `3/s`
Steady: `60/m`
**Scopes:**
`lists:read`
`profiles:read`'
parameters:
- name: id
in: path
description: ''
required: true
schema:
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/GetProfileListsRelationshipsResponseCollection'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-operation-aliases:
- get_profile_relationships_lists
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 3/s
steady: 60/m
x-klaviyo-scopes:
- lists:read
- profiles:read
/api/profiles/{id}/segments:
get:
operationId: get_segments_for_profile
summary: Get Segments for Profile
description: 'Get segment memberships for a profile with the given profile ID.
*Rate limits*:
Burst: `3/s`
Steady: `60/m`
**Scopes:**
`profiles:read`
`segments:read`'
parameters:
- name: id
in: path
description: ''
required: true
schema:
type: string
- name: fields[segment]
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
- definition
- definition.condition_groups
- is_active
- is_processing
- is_starred
- 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/GetSegmentResponseCollection'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-operation-aliases:
- get_profile_segments
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 3/s
steady: 60/m
x-klaviyo-scopes:
- profiles:read
- segments:read
/api/profiles/{id}/relationships/segments:
get:
operationId: get_segment_ids_for_profile
summary: Get Segment IDs for Profile
description: 'Get segment membership relationships for a profile with the given profile ID.
*Rate limits*:
Burst: `3/s`
Steady: `60/m`
**Scopes:**
`profiles:read`
`segments:read`'
parameters:
- name: id
in: path
description: ''
required: true
schema:
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/GetProfileSegmentsRelationshipsResponseCollection'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-operation-aliases:
- get_profile_relationships_segments
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 3/s
steady: 60/m
x-klaviyo-scopes:
- profiles:read
- segments:read
/api/profiles/{id}/conversation:
get:
operationId: get_conversation_for_profile
summary: Get Conversation for Profile
description: 'Get the conversation for a profile with the given profile ID.
*Rate limits*:
Burst: `3/s`
Steady: `60/m`
**Scopes:**
`conversations:read`
`profiles:read`'
parameters:
- name: id
in: path
description: ''
required: true
schema:
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/GetConversationResponse'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-operation-aliases:
- get_profile_conversation
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 3/s
steady: 60/m
x-klaviyo-scopes:
- conversations:read
- profiles:read
x-klaviyo-subtag: Conversations
/api/profiles/{id}/relationships/conversation:
get:
operationId: get_conversation_id_for_profile
summary: Get Conversation ID for Profile
description: 'Get the conversation relationship for a profile with the given profile ID.
*Rate limits*:
Burst: `3/s`
Steady: `60/m`
**Scopes:**
`conversations:read`
`profiles:read`'
parameters:
- name: id
in: path
description: ''
required: true
schema:
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/GetProfileConversationRelationshipResponse'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-operation-aliases:
- get_profile_relationships_conversation
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 3/s
steady: 60/m
x-klaviyo-scopes:
- conversations:read
- profiles:read
x-klaviyo-subtag: Conversations
/api/profile-bulk-import-jobs/{id}/lists:
get:
operationId: get_list_for_bulk_import_profiles_job
summary: Get List for Bulk Import Profiles Job
description: 'Get list for the bulk profile import job with the given ID.
*Rate limits*:
Burst: `10/s`
Steady: `150/m`
**Scopes:**
`lists:read`'
parameters:
- name: id
in: path
description: ''
required: true
schema:
type: string
- name: fields[list]
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
- name
- opt_in_process
- 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/GetListResponseCollection'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-operation-aliases:
- get_bulk_profile_import_job_lists
- get_lists_for_profile_bulk_import_job
- get_profile_bulk_import_job_lists
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 10/s
steady: 150/m
x-klaviyo-scopes:
- lists:read
x-klaviyo-subtag: Bulk Import Profiles
/api/profile-bulk-import-jobs/{id}/relationships/lists:
get:
operationId: get_list_ids_for_bulk_import_profiles_job
summary: Get List IDs for Bulk Import Profiles Job
description: 'Get list relationship for the bulk profile import job with the given ID.
*Rate limits*:
Burst: `10/s`
Steady: `150/m`
**Scopes:**
`lists:read`'
parameters:
- name: id
in: path
description: ''
required: true
schema:
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/GetProfileBulkImportJobListsRelationshipsResponseCollection'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-operation-aliases:
- get_bulk_profile_import_job_relationships_lists
- get_list_ids_for_profile_bulk_import_job
- get_profile_bulk_import_job_relationships_lists
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 10/s
steady: 150/m
x-klaviyo-scopes:
- lists:read
x-klaviyo-subtag: Bulk Import Profiles
/api/profile-bulk-import-jobs/{id}/profiles:
get:
operationId: get_profiles_for_bulk_import_profiles_job
summary: Get Profiles for Bulk Import Profiles Job
description: 'Get profiles for the bulk profile import job with the given ID.
*Rate limits*:
Burst: `10/s`
Steady: `150/m`
**Scopes:**
`profiles:read`'
parameters:
- name: id
in: path
description: ''
required: true
schema:
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: 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: 20. Min: 1. Max: 100.'
required: false
schema:
type: integer
default: 20
maximum: 100
minimum: 1
- 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/GetProfileResponseCollection'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-operation-aliases:
- get_bulk_profile_import_job_profiles
- get_profile_bulk_import_job_profiles
- get_profiles_for_profile_bulk_import_job
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 10/s
steady: 150/m
x-klaviyo-scopes:
- profiles:read
x-klaviyo-subtag: Bulk Import Profiles
/api/profile-bulk-import-jobs/{id}/relationships/profiles:
get:
operationId: get_profile_ids_for_bulk_import_profiles_job
summary: Get Profile IDs for Bulk Import Profiles Job
description: 'Get profile relationships for the bulk profile import job with the given ID.
*Rate limits*:
Burst: `10/s`
Steady: `150/m`
**Scopes:**
`profiles:read`'
parameters:
- name: id
in: path
description: ''
required: true
schema:
type: string
- 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: 20. Min: 1. Max: 100.'
required: false
schema:
type: integer
default: 20
maximum: 100
minimum: 1
- 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/GetProfileBulkImportJobProfilesRelationshipsResponseCollection'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-operation-aliases:
- get_bulk_profile_import_job_relationships_profiles
- get_profile_bulk_import_job_relationships_profiles
- get_profile_ids_for_profile_bulk_import_job
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 10/s
steady: 150/m
x-klaviyo-scopes:
- profiles:read
x-klaviyo-subtag: Bulk Import Profiles
/api/profile-bulk-import-jobs/{id}/import-errors:
get:
operationId: get_errors_for_bulk_import_profiles_job
summary: Get Errors for Bulk Import Profiles Job
description: 'Get import errors for the bulk profile import job with the given ID.
*Rate limits*:
Burst: `10/s`
Steady: `150/m`
**Scopes:**
`profiles:read`'
parameters:
- name: id
in: path
description: ''
required: true
schema:
type: string
- name: fields[import-error]
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:
- code
- detail
- original_payload
- source
- source.pointer
- title
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: 20. Min: 1. Max: 100.'
required: false
schema:
type: integer
default: 20
maximum: 100
minimum: 1
- 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/GetImportErrorResponseCollection'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-operation-aliases:
- get_bulk_profile_import_job_import_errors
- get_import_errors_for_profile_bulk_import_job
- get_profile_bulk_import_job_import_errors
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 10/s
steady: 150/m
x-klaviyo-scopes:
- profiles:read
x-klaviyo-subtag: Bulk Import Profiles
/api/push-tokens/{id}/profile:
get:
operationId: get_profile_for_push_token
summary: Get Profile for Push Token
description: 'Return the profile associated with the given push token.
*Rate limits*:
Burst: `10/s`
Steady: `150/m`
**Scopes:**
`profiles:read`
`push-tokens:read`'
parameters:
- name: id
in: path
description: The value of the push token
required: true
schema:
description: The value of the push token
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:
- Profiles
x-klaviyo-operation-aliases:
- get_push_token_profile
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 10/s
steady: 150/m
x-klaviyo-scopes:
- profiles:read
- push-tokens:read
x-klaviyo-subtag: Push Tokens
/api/push-tokens/{id}/relationships/profile:
get:
operationId: get_profile_id_for_push_token
summary: Get Profile ID for Push Token
description: 'Return the ID of the profile associated with the given push token.
*Rate limits*:
Burst: `10/s`
Steady: `150/m`
**Scopes:**
`profiles:read`
`push-tokens:read`'
parameters:
- name: id
in: path
description: The value of the push token
required: true
schema:
description: The value of the push token
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/GetPushTokenProfileRelationshipResponse'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Profiles
x-klaviyo-operation-aliases:
- get_push_token_relationships_profile
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 10/s
steady: 150/m
x-klaviyo-scopes:
- profiles:read
- push-tokens:read
x-klaviyo-subtag: Push Tokens
components:
schemas:
MessageBlockedMethodFilter:
type: object
properties:
field:
type: string
enum:
- method
method:
type: string
enum:
- message_blocked
required:
- field
- method
ConstantContactIntegrationFilter:
type: object
properties:
type:
type: string
enum:
- string
operator:
type: string
enum:
- in
value:
type: array
items:
enum:
- constant_contact
type: string
required:
- type
- operator
- value
NoEmailMarketingNeverSubscribed:
type: object
properties:
subscription:
type: string
enum:
- never_subscribed
filters:
type: array
items:
oneOf:
- $ref: '#/components/schemas/BounceDateFilter'
- $ref: '#/components/schemas/ManualSuppressionDateFilter'
- $ref: '#/components/schemas/InvalidEmailDateFilter'
required:
- subscription
- filters
PostBulkProfileSuppressionsCreateJobResponse:
type: object
properties:
data:
type: object
properties:
type:
$ref: '#/components/schemas/ProfileSuppressionBulkCreateJobEnum'
id:
description: Unique identifier for retrieving the job. Generated by Klaviyo.
type: string
attributes:
type: object
properties:
status:
description: Status of the asynchronous job.
type: string
example: processing
enum:
- cancelled
- complete
- processing
- queued
created_at:
description: The date and time the job 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'
total_count:
description: The total number of operations to be processed by the job. See `completed_count` for the job's current progress.
type: integer
example: 10
completed_count:
description: The total number of operations that have been completed by the job.
type: integer
example: 9
default: 0
nullable: true
completed_at:
description: Date and time the job was completed 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
skipped_count:
description: The total number of profiles that have been skipped as part of the job.
type: integer
example: 1
default: 0
nullable: true
required:
- status
- created_at
- total_count
relationships:
type: object
properties:
lists:
type: object
properties:
data:
type: array
items:
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/ListEnum'
id:
description: Suppress/Unsuppress all profiles in this list
type: string
example: Y6nRLr
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:
description: Suppress/Unsuppress all profiles in this segment
type: string
example: Y6nRLr
links:
$ref: '#/components/schemas/RelationshipLinks'
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- type
- id
- attributes
- links
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- data
GetPushTokenResponseCollectionCompoundDocument:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/PushTokenResponseObjectResource'
links:
$ref: '#/components/schemas/CollectionLinks'
included:
type: array
items:
$ref: '#/components/schemas/ProfileResponseObjectResource'
required:
- data
GetListResponseCollection:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ListResponseObjectResource'
links:
$ref: '#/components/schemas/CollectionLinks'
required:
- data
GetPushTokenProfileRelationshipResponse:
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
ProfilePredictiveAnalyticsChannelAffinityPriorityCondition:
type: object
properties:
type:
type: string
enum:
- profile-predictive-analytics
dimension:
description: Possible dimension for channel affinity criterion.
type: string
enum:
- channel_affinity
measurement:
type: string
enum:
- priority
predicted_channel:
description: Possible channels in a channel affinity definition.
type: string
enum:
- email
- push
- sms
filter:
$ref: '#/components/schemas/ProfilePredictiveAnalyticsChannelAffinityPriorityFilter'
required:
- type
- dimension
- measurement
- predicted_channel
- filter
ProfileSuppressionBulkCreateJobEnum:
type: string
enum:
- profile-suppression-bulk-create-job
ListEnum:
type: string
enum:
- list
PushTokenResponseObjectResource:
type: object
properties:
type:
$ref: '#/components/schemas/PushTokenEnum'
id:
description: ID of push token
type: string
attributes:
type: object
properties:
created:
description: The time at which the token was created
type: string
format: date-time
example: '2022-11-08T00:00:00+00:00'
token:
description: The push token
type: string
enablement_status:
description: The enablement status of the push token
type: string
enum:
- AUTHORIZED
- DENIED
- NOT_DETERMINED
- PROVISIONAL
- UNAUTHORIZED
platform:
description: The platform of the push token('ios', 'android')
type: string
enum:
- android
- ios
vendor:
description: The vendor of the push token('APNs', 'FCM')
type: string
background:
description: The background state of the push token
type: string
recorded_date:
description: The date the push token was recorded
type: string
metadata:
description: Metadata of device
$ref: '#/components/schemas/DeviceMetadata'
nullable: true
required:
- created
- token
- enablement_status
- platform
- vendor
- background
- recorded_date
relationships:
type: object
properties:
profile:
type: object
properties:
data:
type: object
properties:
type:
$ref: '#/components/schemas/ProfileEnum'
id:
description: The profile associated with the push token
type: string
required:
- type
- id
links:
$ref: '#/components/schemas/RelationshipLinks'
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- type
- id
- attributes
- links
GetBulkProfileSuppressionsCreateJobResponseCollection:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/BulkProfileSuppressionsCreateJobResponseObjectResource'
links:
$ref: '#/components/schemas/CollectionLinks'
required:
- data
StatusDateFilter:
type: object
properties:
field:
type: string
enum:
- status_date
filter:
oneOf:
- $ref: '#/components/schemas/StaticDateFilter'
- $ref: '#/components/schemas/StaticDateRangeFilter'
- $ref: '#/components/schemas/RelativeDateOperatorBaseRelativeDateFilter'
- $ref: '#/components/schemas/RelativeAnniversaryDateFilter'
- $ref: '#/components/schemas/RelativeDateRangeFilter'
- $ref: '#/components/schemas/CalendarDateFilter'
- $ref: '#/components/schemas/AnniversaryDateFilter'
required:
- field
- filter
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
ProfileUpsertQueryResourceObject:
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
_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/ProfileMeta'
nullable: true
required:
- type
- attributes
ProfileSuppressionBulkDeleteJobEnum:
type: string
enum:
- profile-suppression-bulk-delete-job
PushChannel:
type: object
properties:
marketing:
description: The mobile push marketing subscription.
$ref: '#/components/schemas/PushMarketing'
nullable: true
HasPushMarketingConsent:
type: object
properties:
channel:
type: string
enum:
- push
can_receive_marketing:
type: boolean
enum:
- true
consent_status:
$ref: '#/components/schemas/HasPushMarketing'
required:
- channel
- can_receive_marketing
- consent_status
ProfileEnum:
type: string
enum:
- profile
GetBulkProfileSuppressionsRemoveJobResponse:
type: object
properties:
data:
$ref: '#/components/schemas/BulkProfileSuppressionsRemoveJobResponseObjectResource'
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- data
BulkProfileSuppressionsCreateJobResponseObjectResource:
type: object
properties:
type:
$ref: '#/components/schemas/ProfileSuppressionBulkCreateJobEnum'
id:
description: Unique identifier for retrieving the job. Generated by Klaviyo.
type: string
attributes:
type: object
properties:
status:
description: Status of the asynchronous job.
type: string
example: processing
enum:
- cancelled
- complete
- processing
- queued
created_at:
description: The date and time the job 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'
total_count:
description: The total number of operations to be processed by the job. See `completed_count` for the job's current progress.
type: integer
example: 10
completed_count:
description: The total number of operations that have been completed by the job.
type: integer
example: 9
default: 0
nullable: true
completed_at:
description: Date and time the job was completed 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
skipped_count:
description: The total number of profiles that have been skipped as part of the job.
type: integer
example: 1
default: 0
nullable: true
required:
- status
- created_at
- total_count
relationships:
type: object
properties:
lists:
type: object
properties:
data:
type: array
items:
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/ListEnum'
id:
description: Suppress/Unsuppress all profiles in this list
type: string
example: Y6nRLr
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:
description: Suppress/Unsuppress all profiles in this segment
type: string
example: Y6nRLr
links:
$ref: '#/components/schemas/RelationshipLinks'
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- type
- id
- attributes
- links
ProfileModificationMethodFilter:
type: object
properties:
field:
type: string
enum:
- method
method:
type: string
enum:
- profile_modification
required:
- field
- method
CheckoutMethodFilter:
type: object
properties:
field:
type: string
enum:
- method
method:
type: string
enum:
- checkout
required:
- field
- method
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
SuppressionCreateJobCreateQuery:
type: object
properties:
data:
$ref: '#/components/schemas/SuppressionCreateJobCreateQueryResourceObject'
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
RelativeAnniversaryDateFilter:
type: object
properties:
type:
type: string
enum:
- date
operator:
description: 'Operators for relative date filters.
e.g. "anniversary in the last 10 days"'
type: string
enum:
- anniversary-last
- anniversary-next
unit:
description: Units for relative date filters.
type: string
enum:
- day
- hour
- week
quantity:
type: integer
required:
- type
- operator
- unit
- quantity
ImportErrorEnum:
type: string
enum:
- import-error
ProfilePredictiveAnalyticsStringFilter:
type: object
properties:
type:
type: string
enum:
- string
operator:
oneOf:
- enum:
- equals
type: string
- enum:
- not-equals
type: string
value:
description: Values for profile predictive analytics gender conditions.
type: string
enum:
- likely_female
- likely_male
- uncertain
required:
- type
- operator
- value
ProfileCreateQuery:
type: object
properties:
data:
$ref: '#/components/schemas/ProfileCreateQueryResourceObject'
required:
- data
ShopifyIntegrationFilter:
type: object
properties:
type:
type: string
enum:
- string
operator:
type: string
enum:
- in
value:
type: array
items:
enum:
- shopify
type: string
required:
- type
- operator
- value
ObjectLinks:
type: object
properties:
self:
type: string
format: uri
required:
- self
ExplicitlyUnreachable:
type: object
properties:
reachable_status:
type: string
enum:
- explicitly_unreachable
filters:
type: array
items:
oneOf:
- $ref: '#/components/schemas/EffectiveDateFilter'
- $ref: '#/components/schemas/RecordedDateFilter'
- $ref: '#/components/schemas/MethodFilter'
- $ref: '#/components/schemas/FormSubscribeFilter'
required:
- reachable_status
- filters
ProfileMarketingConsentCondition:
type: object
properties:
type:
type: string
enum:
- profile-marketing-consent
consent:
oneOf:
- $ref: '#/components/schemas/HasEmailMarketingConsent'
- $ref: '#/components/schemas/NoEmailMarketingConsent'
- $ref: '#/components/schemas/HasSMSMarketingConsent'
- $ref: '#/components/schemas/NoSMSMarketingConsent'
- $ref: '#/components/schemas/HasPushMarketingConsent'
- $ref: '#/components/schemas/NoPushMarketingConsent'
required:
- type
- consent
PreferencePageFilter:
type: object
properties:
field:
type: string
enum:
- method
method:
type: string
enum:
- preference_page
filter:
description: Optional filter on a specific subscribe page url
$ref: '#/components/schemas/EqualsStringFilter'
nullable: true
required:
- field
- method
DoubleOptinFilter:
type: object
properties:
field:
type: string
enum:
- is_double_opt_in
filter:
$ref: '#/components/schemas/BooleanFilter'
required:
- field
- filter
NoSMSMarketingUnsubscribed:
type: object
properties:
subscription:
type: string
enum:
- unsubscribed
filters:
type: array
items:
oneOf:
- $ref: '#/components/schemas/StatusDateFilter'
- $ref: '#/components/schemas/FormMethodFilter'
- $ref: '#/components/schemas/ManualImportManualMethodFilter'
- $ref: '#/components/schemas/ManualAddManualMethodFilter'
- $ref: '#/components/schemas/ManualRemoveMethodFilter'
- $ref: '#/components/schemas/BulkRemoveMethodFilter'
- $ref: '#/components/schemas/CheckoutMethodFilter'
- $ref: '#/components/schemas/InboundMessageMethodFilter'
- $ref: '#/components/schemas/PreferencePageMethodFilter'
- $ref: '#/components/schemas/SftpMethodFilter'
- $ref: '#/components/schemas/CarrierDeactivationMethodFilter'
- $ref: '#/components/schemas/ProvidedLandlineMethodFilter'
- $ref: '#/components/schemas/MessageBlockedMethodFilter'
- $ref: '#/components/schemas/ProvidedNoAgeMethodFilter'
- $ref: '#/components/schemas/FailedAgeGateMethodFilter'
- $ref: '#/components/schemas/ShopifyIntegrationMethodFilter'
nullable: true
required:
- subscription
GetBulkProfileSuppressionsCreateJobResponse:
type: object
properties:
data:
$ref: '#/components/schemas/BulkProfileSuppressionsCreateJobResponseObjectResource'
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- data
MethodFilter:
type: object
properties:
field:
type: string
enum:
- subscribe_method
method:
description: Method for subscribing / unsubscribing.
type: string
enum:
- api
- back_in_stock
- bigcommerce
- bulk_remove
- campaign_monitor
- carrier_deactivation
- checkout
- constant_contact
- exact_target
- facebook
- failed_age_gate
- inbound_message
- integration
- mad_mimi
- magento_two
- mailbox_provider
- manual_add
- manual_import
- manual_remove
- message_blocked
- netsuite
- preference_page
- provided_landline
- provided_no_age
- sftp
- shopify
- social_instagram_message
- spam_complaint
- square
- wix
- woocommerce
required:
- field
- method
TagEnum:
type: string
enum:
- tag
FailedAgeGateMethodFilter:
type: object
properties:
field:
type: string
enum:
- method
method:
type: string
enum:
- failed_age_gate
required:
- field
- method
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
SuppressionCreateJobCreateQueryResourceObject:
type: object
properties:
type:
$ref: '#/components/schemas/ProfileSuppressionBulkCreateJobEnum'
attributes:
type: object
properties:
profiles:
description: The profile(s) to create suppressions for.
type: object
nullable: true
properties:
data:
type: array
items:
$ref: '#/components/schemas/ProfileSuppressionCreateQueryResourceObject'
required:
- data
relationships:
type: object
properties:
list:
type: object
properties:
data:
type: object
properties:
type:
$ref: '#/components/schemas/ListEnum'
id:
description: Suppress all profiles in this list
type: string
example: Y6nRLr
required:
- type
- id
segment:
type: object
properties:
data:
type: object
properties:
type:
$ref: '#/components/schemas/SegmentEnum'
id:
description: Suppress all profiles in this segment
type: string
example: Y6nRLr
required:
- type
- id
required:
- type
- attributes
UnsubscriptionChannels:
type: object
properties:
email:
description: The subscription parameters to unsubscribe from the "EMAIL" Channel.
$ref: '#/components/schemas/EmailUnsubscriptionParameters'
nullable: true
sms:
description: The subscription parameters to unsubscribe from the "SMS" Channel.
$ref: '#/components/schemas/SMSUnsubscriptionParameters'
nullable: true
whatsapp:
description: The subscription parameters to unsubscribe from the "WhatsApp" Channel.
$ref: '#/components/schemas/WhatsAppUnsubscriptionParameters'
nullable: true
push:
description: The subscription parameters to unsubscribe from the "Push" Channel.
$ref: '#/components/schemas/PushUnsubscriptionParameters'
nullable: true
ImportErrorResponseObjectResource:
type: object
properties:
type:
$ref: '#/components/schemas/ImportErrorEnum'
id:
description: Unique identifier for the error.
type: string
example: e4eebb08-b055-4a6f-bb13-c8cb69c9eb94
attributes:
type: object
properties:
code:
description: A code for classifying the error type.
type: string
example: invalid
title:
description: A high-level message about the error.
type: string
example: Invalid input
detail:
description: Specific details about the error.
type: string
example: The payload provided in the request is invalid.
source:
description: Additional information on the source of the error.
$ref: '#/components/schemas/ErrorSource'
original_payload:
type: object
nullable: true
required:
- code
- title
- detail
- source
required:
- type
- id
- attributes
ProfileHasCustomObjectFilter:
type: object
properties:
property_id:
type: integer
filter:
oneOf:
- $ref: '#/components/schemas/StringOperatorStringFilter'
- $ref: '#/components/schemas/StringArrayOperatorStringArrayFilter'
- $ref: '#/components/schemas/NumericOperatorNumericFilter'
- $ref: '#/components/schemas/NumericRangeFilter'
- $ref: '#/components/schemas/BooleanFilter'
- $ref: '#/components/schemas/StaticDateFilter'
- $ref: '#/components/schemas/StaticDateRangeFilter'
- $ref: '#/components/schemas/RelativeDateOperatorBaseRelativeDateFilter'
- $ref: '#/components/schemas/RelativeAnniversaryDateFilter'
- $ref: '#/components/schemas/RelativeDateRangeFilter'
- $ref: '#/components/schemas/ExistenceOperatorExistenceFilter'
required:
- property_id
- filter
ConstantContactIntegrationMethodFilter:
type: object
properties:
field:
type: string
enum:
- method
method:
type: string
enum:
- integration
filter:
$ref: '#/components/schemas/ConstantContactIntegrationFilter'
required:
- field
- method
- filter
PushTokenEnum:
type: string
enum:
- push-token
HasEmailMarketingNeverSubscribed:
type: object
properties:
subscription:
type: string
enum:
- never_subscribed
filters:
nullable: true
required:
- subscription
GetProfileListsRelationshipsResponseCollection:
type: object
properties:
data:
type: array
items:
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/ListEnum'
id:
description: Primary key that uniquely identifies this list. Generated by Klaviyo.
type: string
example: Y6nRLr
links:
$ref: '#/components/schemas/CollectionLinks'
required:
- data
NumericRangeFilter:
type: object
properties:
type:
type: string
enum:
- numeric
operator:
description: Operators for numeric range filters.
type: string
enum:
- between
start:
oneOf:
- type: integer
- type: number
end:
oneOf:
- type: integer
- type: number
required:
- type
- operator
- start
- end
FormSubscribeFilter:
type: object
properties:
field:
type: string
enum:
- subscribe_method
method:
type: string
enum:
- form
filter:
description: Optional filter on a specific list of form IDs
$ref: '#/components/schemas/InStringArrayFilter'
nullable: true
required:
- field
- method
NoSMSMarketingConsent:
type: object
properties:
channel:
type: string
enum:
- sms
can_receive_marketing:
type: boolean
enum:
- false
consent_status:
oneOf:
- $ref: '#/components/schemas/NoSMSMarketing'
- $ref: '#/components/schemas/NoSMSMarketingUnsubscribed'
- $ref: '#/components/schemas/NoSMSMarketingNeverSubscribed'
required:
- channel
- can_receive_marketing
- consent_status
ProvidedNoAgeMethodFilter:
type: object
properties:
field:
type: string
enum:
- method
method:
type: string
enum:
- provided_no_age
required:
- field
- method
ProfileSubscriptionBulkCreateJobEnum:
type: string
enum:
- profile-subscription-bulk-create-job
PostBulkProfileSuppressionsRemoveJobResponse:
type: object
properties:
data:
type: object
properties:
type:
$ref: '#/components/schemas/ProfileSuppressionBulkDeleteJobEnum'
id:
description: Unique identifier for retrieving the job. Generated by Klaviyo.
type: string
attributes:
type: object
properties:
status:
description: Status of the asynchronous job.
type: string
example: processing
enum:
- cancelled
- complete
- processing
- queued
created_at:
description: The date and time the job 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'
total_count:
description: The total number of operations to be processed by the job. See `completed_count` for the job's current progress.
type: integer
example: 10
completed_count:
description: The total number of operations that have been completed by the job.
type: integer
example: 9
default: 0
nullable: true
completed_at:
description: Date and time the job was completed 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
skipped_count:
description: The total number of profiles that have been skipped as part of the job.
type: integer
example: 1
default: 0
nullable: true
required:
- status
- created_at
- total_count
relationships:
type: object
properties:
lists:
type: object
properties:
data:
type: array
items:
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/ListEnum'
id:
description: Suppress/Unsuppress all profiles in this list
type: string
example: Y6nRLr
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:
description: Suppress/Unsuppress all profiles in this segment
type: string
example: Y6nRLr
links:
$ref: '#/components/schemas/RelationshipLinks'
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- type
- id
- attributes
- links
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- data
ProfileMeta:
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
SubscribedSMSIsRcsCapableFilter:
type: object
properties:
field:
type: string
enum:
- is_rcs_capable
filter:
$ref: '#/components/schemas/BooleanFilter'
required:
- field
- filter
SMSUnsubscriptionParameters:
type: object
properties:
marketing:
description: The parameters to unsubscribe from marketing on the "SMS" channel.
$ref: '#/components/schemas/UnsubscriptionParameters'
nullable: true
transactional:
description: The parameters to unsubscribe from transactional messaging on the "SMS" channel.
$ref: '#/components/schemas/UnsubscriptionParameters'
nullable: true
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
GetProfileConversationRelationshipResponse:
type: object
properties:
data:
type: object
properties:
type:
$ref: '#/components/schemas/ConversationEnum'
id:
type: string
required:
- type
- id
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- data
APIMethodFilter:
type: object
properties:
field:
type: string
enum:
- method
method:
type: string
enum:
- api
filter:
description: Optional filter on a specific list of API keys (using last 4 digits of the key)
$ref: '#/components/schemas/InStringArrayFilter'
nullable: true
required:
- field
- method
ConversationResponseObjectResource:
type: object
properties:
type:
$ref: '#/components/schemas/ConversationEnum'
id:
type: string
relationships:
type: object
properties:
profile:
type: object
properties:
data:
type: object
properties:
type:
$ref: '#/components/schemas/ProfileEnum'
id:
type: string
required:
- type
- id
links:
$ref: '#/components/schemas/RelationshipLinks'
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- type
- id
- links
StaticDateFilter:
type: object
properties:
type:
type: string
enum:
- date
operator:
description: 'Operators for static date filters.
E.g. "before 2023-01-01"'
type: string
enum:
- after
- before
date:
type: string
format: date-time
example: '2022-11-08T00:00:00+00:00'
required:
- type
- operator
- date
ProfileSuppressionDeleteQueryResourceObject:
type: object
properties:
type:
$ref: '#/components/schemas/ProfileEnum'
attributes:
type: object
properties:
email:
description: The email of the profile to unsuppress.
type: string
example: matt-kemp@klaviyo-demo.com
required:
- email
required:
- type
- attributes
ExplicitlyReachable:
type: object
properties:
reachable_status:
type: string
enum:
- explicitly_reachable
filters:
type: array
items:
oneOf:
- $ref: '#/components/schemas/EffectiveDateFilter'
- $ref: '#/components/schemas/RecordedDateFilter'
- $ref: '#/components/schemas/MethodFilter'
- $ref: '#/components/schemas/FormSubscribeFilter'
required:
- reachable_status
- filters
ListLengthFilter:
type: object
properties:
type:
type: string
enum:
- list
operator:
description: Operators for list length filters.
type: string
enum:
- length-equals
- length-greater-than
- length-greater-than-or-equal
- length-less-than
- length-less-than-or-equal
value:
type: integer
required:
- type
- operator
- value
GetProfileImportJobResponseCompoundDocument:
type: object
properties:
data:
$ref: '#/components/schemas/ProfileImportJobResponseObjectResource'
included:
type: array
items:
$ref: '#/components/schemas/ListResponseObjectResource'
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- data
RecordedDateFilter:
type: object
properties:
field:
type: string
enum:
- recorded_date
filter:
oneOf:
- $ref: '#/components/schemas/StaticDateFilter'
- $ref: '#/components/schemas/StaticDateRangeFilter'
- $ref: '#/components/schemas/RelativeDateOperatorBaseRelativeDateFilter'
- $ref: '#/components/schemas/RelativeAnniversaryDateFilter'
- $ref: '#/components/schemas/RelativeDateRangeFilter'
- $ref: '#/components/schemas/CalendarDateFilter'
- $ref: '#/components/schemas/AnniversaryDateFilter'
required:
- field
- filter
SftpMethodFilter:
type: object
properties:
field:
type: string
enum:
- method
method:
type: string
enum:
- sftp
required:
- field
- method
PushTokenEntry:
type: object
properties:
token:
description: A push token from APNS or FCM.
type: string
example: 1234567890abcdef
platform:
description: The platform on which the push token was created. Either "ios" or "android".
type: string
enum:
- android
- ios
vendor:
description: The vendor of the push token. Either "apns" or "fcm".
type: string
example: apns
enum:
- apns
- fcm
enablement_status:
description: The enablement status for the push token.
type: string
example: AUTHORIZED
enum:
- AUTHORIZED
- DENIED
- NOT_DETERMINED
- PROVISIONAL
- UNAUTHORIZED
nullable: true
background:
description: The background state of the push token.
type: string
example: AVAILABLE
enum:
- AVAILABLE
- DENIED
- RESTRICTED
nullable: true
device_metadata:
description: Metadata about the device that created the push token.
$ref: '#/components/schemas/PushTokenDeviceMetadata'
nullable: true
required:
- token
- platform
- vendor
InvalidEmailDateFilter:
type: object
properties:
field:
type: string
enum:
- invalid_email_date
filter:
oneOf:
- $ref: '#/components/schemas/StaticDateFilter'
- $ref: '#/components/schemas/StaticDateRangeFilter'
- $ref: '#/components/schemas/RelativeDateOperatorBaseRelativeDateFilter'
- $ref: '#/components/schemas/RelativeAnniversaryDateFilter'
- $ref: '#/components/schemas/RelativeDateRangeFilter'
- $ref: '#/components/schemas/CalendarDateFilter'
- $ref: '#/components/schemas/AnniversaryDateFilter'
- $ref: '#/components/schemas/IsSetExistenceFilter'
required:
- field
- filter
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
CarrierDeactivationMethodFilter:
type: object
properties:
field:
type: string
enum:
- method
method:
type: string
enum:
- carrier_deactivation
required:
- field
- method
PushUnsubscriptionParameters:
type: object
properties:
marketing:
description: The parameters to unsubscribe from marketing on the "Push" channel.
$ref: '#/components/schemas/UnsubscriptionParameters'
tokens:
description: A list of push tokens to unsubscribe/remove.
type: array
items:
$ref: '#/components/schemas/PushTokenEntry'
required:
- marketing
- tokens
HasPushMarketing:
type: object
properties:
subscription:
type: string
enum:
- any
filters:
type: array
items:
$ref: '#/components/schemas/StatusDateFilter'
nullable: true
required:
- subscription
ProfileMergeQueryResourceObject:
type: object
properties:
type:
$ref: '#/components/schemas/ProfileMergeEnum'
id:
description: The ID of the destination profile to merge into
type: string
example: 01GDDKASAP8TKDDA2GRZDSVP4H
relationships:
type: object
properties:
profiles:
type: object
properties:
data:
type: array
items:
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/ProfileEnum'
id:
description: The ID of a source profile to merge into the destination profile
type: string
example: 01GDDKASAP8TKDDA2GRZDSVP4I
required:
- profiles
required:
- type
- id
- relationships
ImplicitlyReachable:
type: object
properties:
reachable_status:
type: string
enum:
- implicitly_reachable
required:
- reachable_status
EffectiveDateFilter:
type: object
properties:
field:
type: string
enum:
- effective_date
filter:
oneOf:
- $ref: '#/components/schemas/StaticDateFilter'
- $ref: '#/components/schemas/StaticDateRangeFilter'
- $ref: '#/components/schemas/RelativeDateOperatorBaseRelativeDateFilter'
- $ref: '#/components/schemas/RelativeAnniversaryDateFilter'
- $ref: '#/components/schemas/RelativeDateRangeFilter'
- $ref: '#/components/schemas/CalendarDateFilter'
- $ref: '#/components/schemas/AnniversaryDateFilter'
required:
- field
- filter
SpamComplaintMethodFilter:
type: object
properties:
field:
type: string
enum:
- method
method:
type: string
enum:
- spam_complaint
required:
- field
- method
ListResponseObjectResource:
type: object
properties:
type:
$ref: '#/components/schemas/ListEnum'
id:
description: Primary key that uniquely identifies this list. Generated by Klaviyo.
type: string
example: Y6nRLr
attributes:
type: object
properties:
name:
description: A helpful name to label the list
type: string
example: Newsletter
nullable: true
created:
description: Date and time when the list 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 list 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
opt_in_process:
description: 'The opt-in process for this list. Valid values: ''double_opt_in'', ''single_opt_in''.'
type: string
example: double_opt_in
enum:
- double_opt_in
- single_opt_in
nullable: true
relationships:
type: object
properties:
profiles:
type: object
properties:
data:
type: array
items:
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/ProfileEnum'
id:
type: string
links:
$ref: '#/components/schemas/RelationshipLinks'
tags:
type: object
properties:
data:
type: array
items:
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/TagEnum'
id:
type: string
links:
$ref: '#/components/schemas/RelationshipLinks'
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
WhatsAppUnsubscriptionParameters:
type: object
properties:
marketing:
description: The parameters to unsubscribe from marketing on the "WhatsApp" channel.
$ref: '#/components/schemas/UnsubscriptionParameters'
nullable: true
transactional:
description: The parameters to unsubscribe from transactional messaging on the "WhatsApp" channel.
$ref: '#/components/schemas/UnsubscriptionParameters'
nullable: true
conversational:
description: The parameters to unsubscribe from conversational messaging on the "WhatsApp" channel.
$ref: '#/components/schemas/UnsubscriptionParameters'
nullable: true
FlowEnum:
type: string
enum:
- flow
EmailChannel:
type: object
properties:
marketing:
description: The email marketing subscription.
$ref: '#/components/schemas/EmailMarketing'
nullable: true
DataWarehouseImportMethodFilter:
type: object
properties:
field:
type: string
enum:
- method
method:
type: string
enum:
- data_warehouse_import
required:
- field
- method
EqualsStringFilter:
type: object
properties:
type:
type: string
enum:
- string
operator:
type: string
enum:
- equals
value:
type: string
nullable: true
required:
- type
- operator
- value
GetProfileBulkImportJobListsRelationshipsResponseCollection:
type: object
properties:
data:
type: array
items:
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/ListEnum'
id:
description: Primary key that uniquely identifies this list. Generated by Klaviyo.
type: string
example: Y6nRLr
links:
$ref: '#/components/schemas/CollectionLinks'
required:
- data
SuppressionDeleteJobCreateQueryResourceObject:
type: object
properties:
type:
$ref: '#/components/schemas/ProfileSuppressionBulkDeleteJobEnum'
attributes:
type: object
properties:
profiles:
description: The profile(s) to remove suppressions for.
type: object
nullable: true
properties:
data:
type: array
items:
$ref: '#/components/schemas/ProfileSuppressionDeleteQueryResourceObject'
required:
- data
relationships:
type: object
properties:
list:
type: object
properties:
data:
type: object
properties:
type:
$ref: '#/components/schemas/ListEnum'
id:
description: The list to pull the profiles to remove suppressions from
type: string
example: Y6nRLr
required:
- type
- id
segment:
type: object
properties:
data:
type: object
properties:
type:
$ref: '#/components/schemas/SegmentEnum'
id:
description: The segment to pull the profiles to remove suppressions from
type: string
example: Y6nRLr
required:
- type
- id
required:
- type
- attributes
SuppressionDeleteJobCreateQuery:
type: object
properties:
data:
$ref: '#/components/schemas/SuppressionDeleteJobCreateQueryResourceObject'
required:
- data
BooleanFilter:
type: object
properties:
type:
type: string
enum:
- boolean
operator:
description: Operators for boolean filters.
type: string
enum:
- equals
value:
type: boolean
required:
- type
- operator
- value
ProfileSubscriptionBulkDeleteJobEnum:
type: string
enum:
- profile-subscription-bulk-delete-job
ProfilePredictiveAnalyticsChannelAffinityRankFilter:
type: object
properties:
type:
type: string
enum:
- string
operator:
oneOf:
- enum:
- equals
type: string
- enum:
- not-equals
type: string
value:
description: Possible rank values in a channel affinity definition.
type: string
enum:
- high
- low
- medium
required:
- type
- operator
- value
ManualImportMethodFilter:
type: object
properties:
field:
type: string
enum:
- method
method:
type: string
enum:
- manual_import
required:
- field
- method
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
ProfilePredictiveAnalyticsChannelAffinityPriorityFilter:
type: object
properties:
type:
type: string
enum:
- numeric
operator:
type: string
enum:
- equals
value:
type: integer
required:
- type
- operator
- value
ProfileHasCustomObjectCondition:
type: object
properties:
type:
type: string
enum:
- profile-has-custom-object
object_type_id:
type: string
object_type_relationship_id:
type: string
filter:
$ref: '#/components/schemas/IntegerFilter'
filters:
type: array
items:
$ref: '#/components/schemas/ProfileHasCustomObjectFilter'
required:
- type
- object_type_id
- object_type_relationship_id
- filter
- filters
ImplicitlyUnreachable:
type: object
properties:
reachable_status:
type: string
enum:
- implicitly_unreachable
required:
- reachable_status
EmailUnsubscriptionParameters:
type: object
properties:
marketing:
description: The parameters to unsubscribe from marketing on the "EMAIL" channel.
$ref: '#/components/schemas/UnsubscriptionParameters'
required:
- marketing
SMSSubscriptionParameters:
type: object
properties:
marketing:
description: The parameters to subscribe to marketing on the "SMS" Channel.
$ref: '#/components/schemas/SubscriptionParameters'
nullable: true
transactional:
description: The parameters to subscribe to transactional messaging on the "SMS" Channel.
$ref: '#/components/schemas/SubscriptionParameters'
nullable: true
ProfilePropertyCondition:
type: object
properties:
type:
type: string
enum:
- profile-property
property:
type: string
filter:
oneOf:
- $ref: '#/components/schemas/StringOperatorStringFilter'
- $ref: '#/components/schemas/StringArrayOperatorStringArrayFilter'
- $ref: '#/components/schemas/StringPhoneOperatorStringArrayFilter'
- $ref: '#/components/schemas/NumericOperatorNumericFilter'
- $ref: '#/components/schemas/BooleanFilter'
- $ref: '#/components/schemas/StaticDateFilter'
- $ref: '#/components/schemas/StaticDateRangeFilter'
- $ref: '#/components/schemas/RelativeDateOperatorBaseRelativeDateFilter'
- $ref: '#/components/schemas/RelativeAnniversaryDateFilter'
- $ref: '#/components/schemas/RelativeDateRangeFilter'
- $ref: '#/components/schemas/CalendarDateFilter'
- $ref: '#/components/schemas/AnniversaryDateFilter'
- $ref: '#/components/schemas/ListContainsOperatorListContainsFilter'
- $ref: '#/components/schemas/ListLengthFilter'
- $ref: '#/components/schemas/ExistenceOperatorExistenceFilter'
required:
- type
- property
- filter
NoEmailMarketingUnsubscribed:
type: object
properties:
subscription:
type: string
enum:
- unsubscribed
filters:
nullable: true
oneOf:
- type: array
items:
oneOf:
- $ref: '#/components/schemas/StatusDateFilter'
- $ref: '#/components/schemas/APIMethodFilter'
- $ref: '#/components/schemas/InboundMessageMethodFilter'
- $ref: '#/components/schemas/PreferencePageMethodFilter'
- $ref: '#/components/schemas/ManualRemoveMethodFilter'
- $ref: '#/components/schemas/SpamComplaintMethodFilter'
- $ref: '#/components/schemas/MailboxProviderMethodFilter'
- $ref: '#/components/schemas/OneClickUnsubscribeMethodFilter'
- $ref: '#/components/schemas/ManualImportMethodFilter'
- $ref: '#/components/schemas/SftpMethodFilter'
- $ref: '#/components/schemas/DataWarehouseImportMethodFilter'
- $ref: '#/components/schemas/ProfileModificationMethodFilter'
- $ref: '#/components/schemas/ConstantContactIntegrationMethodFilter'
- type: array
items:
oneOf:
- $ref: '#/components/schemas/BounceDateFilter'
- $ref: '#/components/schemas/ManualSuppressionDateFilter'
- $ref: '#/components/schemas/InvalidEmailDateFilter'
required:
- subscription
BulkProfileSuppressionsRemoveJobResponseObjectResource:
type: object
properties:
type:
$ref: '#/components/schemas/ProfileSuppressionBulkDeleteJobEnum'
id:
description: Unique identifier for retrieving the job. Generated by Klaviyo.
type: string
attributes:
type: object
properties:
status:
description: Status of the asynchronous job.
type: string
example: processing
enum:
- cancelled
- complete
- processing
- queued
created_at:
description: The date and time the job 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'
total_count:
description: The total number of operations to be processed by the job. See `completed_count` for the job's current progress.
type: integer
example: 10
completed_count:
description: The total number of operations that have been completed by the job.
type: integer
example: 9
default: 0
nullable: true
completed_at:
description: Date and time the job was completed 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
skipped_count:
description: The total number of profiles that have been skipped as part of the job.
type: integer
example: 1
default: 0
nullable: true
required:
- status
- created_at
- total_count
relationships:
type: object
properties:
lists:
type: object
properties:
data:
type: array
items:
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/ListEnum'
id:
description: Suppress/Unsuppress all profiles in this list
type: string
example: Y6nRLr
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:
description: Suppress/Unsuppress all profiles in this segment
type: string
example: Y6nRLr
links:
$ref: '#/components/schemas/RelationshipLinks'
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- type
- id
- attributes
- links
RelationshipLinks:
type: object
properties:
self:
type: string
format: uri
related:
type: string
format: uri
required:
- self
- related
BounceDateFilter:
type: object
properties:
field:
type: string
enum:
- bounce_date
filter:
oneOf:
- $ref: '#/components/schemas/StaticDateFilter'
- $ref: '#/components/schemas/StaticDateRangeFilter'
- $ref: '#/components/schemas/RelativeDateOperatorBaseRelativeDateFilter'
- $ref: '#/components/schemas/RelativeAnniversaryDateFilter'
- $ref: '#/components/schemas/RelativeDateRangeFilter'
- $ref: '#/components/schemas/CalendarDateFilter'
- $ref: '#/components/schemas/AnniversaryDateFilter'
- $ref: '#/components/schemas/IsSetExistenceFilter'
required:
- field
- filter
NoEmailMarketing:
type: object
properties:
subscription:
type: string
enum:
- any
filters:
type: array
items:
oneOf:
- $ref: '#/components/schemas/BounceDateFilter'
- $ref: '#/components/schemas/ManualSuppressionDateFilter'
- $ref: '#/components/schemas/InvalidEmailDateFilter'
nullable: true
required:
- subscription
PostProfileMergeResponse:
type: object
properties:
data:
type: object
properties:
type:
$ref: '#/components/schemas/ProfileEnum'
id:
description: The ID of the destination profile that was merged into
type: string
example: 01GDDKASAP8TKDDA2GRZDSVP4H
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- type
- id
- links
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- data
ImplicitlyOrExplicitlyUnreachable:
type: object
properties:
reachable_status:
type: string
enum:
- implicitly_or_explicitly_unreachable
required:
- reachable_status
ProfileMergeQuery:
type: object
properties:
data:
$ref: '#/components/schemas/ProfileMergeQueryResourceObject'
required:
- data
NoPushMarketingConsent:
type: object
properties:
channel:
type: string
enum:
- push
can_receive_marketing:
type: boolean
enum:
- false
consent_status:
$ref: '#/components/schemas/NoPushMarketing'
required:
- channel
- can_receive_marketing
- consent_status
ProfileCreateQueryResourceObject:
type: object
properties:
type:
$ref: '#/components/schemas/ProfileEnum'
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
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
required:
- type
- attributes
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
StaticDateRangeFilter:
type: object
properties:
type:
type: string
enum:
- date
operator:
description: 'Operators for static date range filters.
E.g. "between 2023-01-01 and 2023-02-01"'
type: string
enum:
- between-static
start:
type: string
format: date-time
example: '2022-11-08T00:00:00+00:00'
end:
type: string
format: date-time
example: '2022-11-08T00:00:00+00:00'
required:
- type
- operator
- start
- end
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
ProfileHasGroupMembershipCondition:
type: object
properties:
type:
type: string
enum:
- profile-group-membership
is_member:
type: boolean
enum:
- true
group_ids:
type: array
items:
type: string
timeframe_filter:
nullable: true
oneOf:
- $ref: '#/components/schemas/StaticDateFilter'
- $ref: '#/components/schemas/StaticDateRangeFilter'
- $ref: '#/components/schemas/RelativeDateOperatorBaseRelativeDateFilter'
- $ref: '#/components/schemas/RelativeDateRangeFilter'
required:
- type
- is_member
- group_ids
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
ProfilePartialUpdateQueryResourceObject:
type: object
properties:
type:
$ref: '#/components/schemas/ProfileEnum'
id:
description: Primary key that uniquely identifies this profile. Generated by Klaviyo.
type: string
example: 01GDDKASAP8TKDDA2GRZDSVP4H
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
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/ProfileMeta'
nullable: true
required:
- type
- id
- attributes
SubscriptionCreateJobCreateQueryResourceObject:
type: object
properties:
type:
$ref: '#/components/schemas/ProfileSubscriptionBulkCreateJobEnum'
attributes:
type: object
properties:
custom_source:
description: A custom method detail or source to store on the consent records.
type: string
example: Marketing Event
nullable: true
profiles:
description: The profile(s) to subscribe
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ProfileSubscriptionCreateQueryResourceObject'
required:
- data
historical_import:
description: Whether this subscription is part of a historical import. If true, the consented_at field must be provided for each profile.
type: boolean
default: false
nullable: true
required:
- profiles
relationships:
type: object
properties:
list:
type: object
properties:
data:
type: object
properties:
type:
$ref: '#/components/schemas/ListEnum'
id:
description: The list to add the newly subscribed profiles to
type: string
example: Y6nRLr
required:
- type
- id
required:
- type
- attributes
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
ImplicitlyOrExplicitlyReachable:
type: object
properties:
reachable_status:
type: string
enum:
- implicitly_or_explicitly_reachable
required:
- reachable_status
GetPushTokenResponseCollection:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/PushTokenResponseObjectResource'
links:
$ref: '#/components/schemas/CollectionLinks'
required:
- data
ProfilePartialUpdateQuery:
type: object
properties:
data:
$ref: '#/components/schemas/ProfilePartialUpdateQueryResourceObject'
required:
- data
ErrorSource:
type: object
properties:
pointer:
description: A pointer to the source of the error in the request payload.
type: string
example: /data
default: /data
nullable: true
PushSubscriptionParameters:
type: object
properties:
marketing:
description: The parameters to subscribe to marketing on the "Push" channel.
$ref: '#/components/schemas/SubscriptionParameters'
tokens:
description: A list of push tokens to register for this profile.
type: array
items:
$ref: '#/components/schemas/PushTokenEntry'
nullable: true
anonymous_id:
description: An anonymous identifier for push-only profiles with no email/phone.
type: string
nullable: true
required:
- marketing
GetProfileBulkImportJobProfilesRelationshipsResponseCollection:
type: object
properties:
data:
type: array
items:
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/ProfileEnum'
id:
description: Primary key that uniquely identifies this profile. Generated by Klaviyo.
type: string
example: 01GDDKASAP8TKDDA2GRZDSVP4H
links:
$ref: '#/components/schemas/CollectionLinks'
required:
- data
AlltimeDateFilter:
type: object
properties:
type:
type: string
enum:
- date
operator:
description: Operators for alltime date filters.
type: string
enum:
- alltime
required:
- type
- operator
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
ProfileRegionCondition:
type: object
properties:
type:
type: string
enum:
- profile-region
in_region:
type: boolean
region:
description: Regions for profile region conditions.
type: string
enum:
- european_union
- united_states
required:
- type
- in_region
- region
SegmentResponseObjectResource:
type: object
properties:
type:
$ref: '#/components/schemas/SegmentEnum'
id:
type: string
attributes:
type: object
properties:
name:
description: A helpful name to label the segment
type: string
example: Repeat Purchasers
nullable: true
definition:
$ref: '#/components/schemas/SegmentDefinition'
nullable: true
created:
description: Date and time when the segment 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 segment 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
is_active:
description: Whether the segment is active. Inactive segments are not processed and their membership does not update.
type: boolean
is_processing:
type: boolean
is_starred:
type: boolean
required:
- is_active
- is_processing
- is_starred
relationships:
type: object
properties:
profiles:
type: object
properties:
data:
type: array
items:
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/ProfileEnum'
id:
type: string
links:
$ref: '#/components/schemas/RelationshipLinks'
tags:
type: object
properties:
data:
type: array
items:
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/TagEnum'
id:
type: string
links:
$ref: '#/components/schemas/RelationshipLinks'
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
LessThanPositiveNumericFilter:
type: object
properties:
type:
type: string
enum:
- numeric
operator:
type: string
enum:
- less-than
value:
oneOf:
- type: integer
- type: number
required:
- type
- operator
- value
PatchIdentifiers:
type: object
properties:
append:
type: object
unappend:
type: object
PushTokenCreateQueryResourceObject:
type: object
properties:
type:
$ref: '#/components/schemas/PushTokenEnum'
attributes:
type: object
properties:
token:
description: A push token from APNS or FCM.
type: string
example: '1234567890'
platform:
description: The platform on which the push token was created.
type: string
enum:
- android
- ios
enablement_status:
description: This is the enablement status for the individual push token.
type: string
example: AUTHORIZED
default: AUTHORIZED
enum:
- AUTHORIZED
- DENIED
- NOT_DETERMINED
- PROVISIONAL
- UNAUTHORIZED
nullable: true
vendor:
description: The vendor of the push token.
type: string
example: apns
enum:
- apns
- fcm
background:
description: The background state of the push token.
type: string
example: AVAILABLE
default: AVAILABLE
enum:
- AVAILABLE
- DENIED
- RESTRICTED
nullable: true
device_metadata:
description: Metadata about the device that created the push token
$ref: '#/components/schemas/DeviceMetadata'
nullable: true
profile:
description: The profile associated with the push token to create/update
type: object
properties:
data:
$ref: '#/components/schemas/PushProfileUpsertQueryResourceObject'
required:
- data
required:
- token
- platform
- vendor
- profile
required:
- type
- attributes
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
CustomSourceFilter:
type: object
properties:
field:
type: string
enum:
- custom_source
filter:
$ref: '#/components/schemas/EqualsStringFilter'
required:
- field
- filter
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
ProfileMetricFunnelSteps:
type: object
properties:
metric_exists:
type: boolean
metric_id:
type: string
metric_filters:
type: array
items:
$ref: '#/components/schemas/ProfileMetricPropertyFilter'
nullable: true
required:
- metric_exists
- metric_id
ProfileUpsertQuery:
type: object
properties:
data:
$ref: '#/components/schemas/ProfileUpsertQueryResourceObject'
required:
- data
HasEmailMarketing:
type: object
properties:
subscription:
type: string
enum:
- any
filters:
nullable: true
required:
- subscription
GetProfileResponseCollectionCompoundDocument:
type: object
properties:
data:
type: array
items:
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/CollectionLinks'
included:
type: array
items:
oneOf:
- $ref: '#/components/schemas/ConversationResponseObjectResource'
- $ref: '#/components/schemas/PushTokenResponseObjectResource'
required:
- data
SubscriptionChannels:
type: object
properties:
email:
description: The subscription parameters to subscribe to on the "EMAIL" Channel.
$ref: '#/components/schemas/EmailSubscriptionParameters'
nullable: true
sms:
description: The subscription parameters to subscribe to on the "SMS" Channel.
$ref: '#/components/schemas/SMSSubscriptionParameters'
nullable: true
whatsapp:
description: The subscription parameters to subscribe to on the "WhatsApp" Channel.
$ref: '#/components/schemas/WhatsAppSubscriptionParameters'
nullable: true
push:
description: The subscription parameters to subscribe to on the "Push" Channel.
$ref: '#/components/schemas/PushSubscriptionParameters'
nullable: true
NoSMSMarketing:
type: object
properties:
subscription:
type: string
enum:
- any
required:
- subscription
OneClickUnsubscribeMethodFilter:
type: object
properties:
field:
type: string
enum:
- method
method:
type: string
enum:
- one_click_unsubscribe
required:
- field
- method
ProfileNoGroupMembershipCondition:
type: object
properties:
type:
type: string
enum:
- profile-group-membership
is_member:
type: boolean
enum:
- false
group_ids:
type: array
items:
type: string
required:
- type
- is_member
- group_ids
SegmentDefinition:
type: object
properties:
condition_groups:
type: array
items:
$ref: '#/components/schemas/ConditionGroup'
required:
- condition_groups
ProvidedLandlineMethodFilter:
type: object
properties:
field:
type: string
enum:
- method
method:
type: string
enum:
- provided_landline
required:
- field
- method
PatchProfileResponse:
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
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
subscriptions:
$ref: '#/components/schemas/Subscriptions'
nullable: true
predictive_analytics:
$ref: '#/components/schemas/PredictiveAnalytics'
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
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- data
ManualRemoveMethodFilter:
type: object
properties:
field:
type: string
enum:
- method
method:
type: string
enum:
- manual_remove
required:
- field
- method
SegmentEnum:
type: string
enum:
- segment
NoEmailMarketingSubscribed:
type: object
properties:
subscription:
type: string
enum:
- subscribed
filters:
type: array
items:
oneOf:
- $ref: '#/components/schemas/BounceDateFilter'
- $ref: '#/components/schemas/ManualSuppressionDateFilter'
- $ref: '#/components/schemas/InvalidEmailDateFilter'
required:
- subscription
- filters
ListSubstringFilter:
type: object
properties:
type:
type: string
enum:
- list
operator:
description: Operators for list substring filters.
type: string
enum:
- contains-substring
- not-contains-substring
value:
type: string
nullable: true
required:
- type
- operator
- value
PostProfileImportJobResponse:
type: object
properties:
data:
type: object
properties:
type:
$ref: '#/components/schemas/ProfileBulkImportJobEnum'
id:
description: Unique identifier for retrieving the job. Generated by Klaviyo.
type: string
attributes:
type: object
properties:
status:
description: Status of the asynchronous job.
type: string
example: processing
enum:
- cancelled
- complete
- processing
- queued
created_at:
description: The date and time the job 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'
total_count:
description: The total number of operations to be processed by the job. See `completed_count` for the job's current progress.
type: integer
example: 10
completed_count:
description: The total number of operations that have been completed by the job.
type: integer
example: 9
default: 0
nullable: true
failed_count:
description: The total number of operations that have failed as part of the job.
type: integer
example: 1
default: 0
nullable: true
completed_at:
description: Date and time the job was completed 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
expires_at:
description: Date and time the job expires 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
started_at:
description: Date and time the job started processing 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
required:
- status
- created_at
- total_count
relationships:
type: object
properties:
lists:
type: object
properties:
data:
type: array
items:
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/ListEnum'
id:
description: List to add the profiles to
type: string
links:
$ref: '#/components/schemas/RelationshipLinks'
profiles:
type: object
properties:
data:
type: array
items:
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/ProfileEnum'
id:
description: IDs of the created/updated profiles
type: string
links:
$ref: '#/components/schemas/RelationshipLinks'
import-errors:
type: object
properties:
data:
type: array
items:
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/ImportErrorEnum'
id:
description: Errors encountering during import
type: string
links:
$ref: '#/components/schemas/OnlyRelatedLinks'
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- type
- id
- attributes
- links
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- data
FormMethodFilter:
type: object
properties:
field:
type: string
enum:
- method
method:
type: string
enum:
- form
filter:
description: Optional filter on a specific list of form ids
$ref: '#/components/schemas/InStringArrayFilter'
nullable: true
required:
- field
- method
GetPushTokenResponseCompoundDocument:
type: object
properties:
data:
$ref: '#/components/schemas/PushTokenResponseObjectResource'
included:
type: array
items:
$ref: '#/components/schemas/ProfileResponseObjectResource'
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- data
ConversationEnum:
type: string
enum:
- conversation
ProfilePredictiveAnalyticsDateCondition:
type: object
properties:
dimension:
description: Dimension for date profile predictive analytics conditions.
type: string
enum:
- expected_date_of_next_purchase
filter:
oneOf:
- $ref: '#/components/schemas/StaticDateFilter'
- $ref: '#/components/schemas/StaticDateRangeFilter'
- $ref: '#/components/schemas/RelativeDateOperatorBaseRelativeDateFilter'
- $ref: '#/components/schemas/RelativeAnniversaryDateFilter'
- $ref: '#/components/schemas/RelativeDateRangeFilter'
- $ref: '#/components/schemas/CalendarDateFilter'
- $ref: '#/components/schemas/AnniversaryDateFilter'
type:
type: string
enum:
- profile-predictive-analytics
required:
- dimension
- filter
- type
InboundMessageMethodFilter:
type: object
properties:
field:
type: string
enum:
- method
method:
type: string
enum:
- inbound_message
required:
- field
- method
GetProfileImportJobResponseCollectionCompoundDocument:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ProfileImportJobResponseObjectResource'
links:
$ref: '#/components/schemas/CollectionLinks'
required:
- data
IntegerFilter:
type: object
properties:
type:
type: string
enum:
- numeric
operator:
description: Operators for numeric filters.
type: string
enum:
- equals
- greater-than
- greater-than-or-equal
- less-than
- less-than-or-equal
- not-equals
value:
type: integer
required:
- type
- operator
- value
NoEmailMarketingConsent:
type: object
properties:
channel:
type: string
enum:
- email
can_receive_marketing:
type: boolean
enum:
- false
consent_status:
oneOf:
- $ref: '#/components/schemas/NoEmailMarketing'
- $ref: '#/components/schemas/NoEmailMarketingUnsubscribed'
- $ref: '#/components/schemas/NoEmailMarketingNeverSubscribed'
- $ref: '#/components/schemas/NoEmailMarketingSubscribed'
required:
- channel
- can_receive_marketing
- consent_status
PushTokenCreateQuery:
type: object
properties:
data:
$ref: '#/components/schemas/PushTokenCreateQueryResourceObject'
required:
- data
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
ProfileBulkImportJobEnum:
type: string
enum:
- profile-bulk-import-job
ProfilePermissionsCondition:
type: object
properties:
type:
type: string
enum:
- profile-permissions
permission:
oneOf:
- $ref: '#/components/schemas/ExplicitlyReachable'
- $ref: '#/components/schemas/ImplicitlyReachable'
- $ref: '#/components/schemas/ImplicitlyOrExplicitlyReachable'
- $ref: '#/components/schemas/ExplicitlyUnreachable'
- $ref: '#/components/schemas/ImplicitlyUnreachable'
- $ref: '#/components/schemas/ImplicitlyOrExplicitlyUnreachable'
channel:
description: Possible channels for profile permissions criterion.
type: string
enum:
- whatsapp_marketing
- whatsapp_transactional
required:
- type
- permission
- channel
ManualImportManualMethodFilter:
type: object
properties:
field:
type: string
enum:
- method
method:
type: string
enum:
- manual_import
filter:
description: Optional filter on a specific list of user email addresses who initiated the manual action
$ref: '#/components/schemas/InStringArrayFilter'
nullable: true
required:
- field
- method
StringPhoneOperatorStringArrayFilter:
type: object
properties:
type:
type: string
enum:
- string
operator:
description: "Operators for phone string array filters.\n\nExample condition using this filter:\n {"
type: string
enum:
- phone-country-code-in
- phone-country-code-not-in
value:
type: array
items:
type: string
required:
- type
- operator
- value
ManualAddManualMethodFilter:
type: object
properties:
field:
type: string
enum:
- method
method:
type: string
enum:
- manual_add
filter:
description: Optional filter on a specific list of user email addresses who initiated the manual action
$ref: '#/components/schemas/InStringArrayFilter'
nullable: true
required:
- field
- method
ProfileSuppressionCreateQueryResourceObject:
type: object
properties:
type:
$ref: '#/components/schemas/ProfileEnum'
attributes:
type: object
properties:
email:
description: The email of the profile to suppress.
type: string
example: matt-kemp@klaviyo-demo.com
required:
- email
required:
- type
- attributes
GetImportErrorResponseCollection:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ImportErrorResponseObjectResource'
links:
$ref: '#/components/schemas/CollectionLinks'
required:
- data
IsSetExistenceFilter:
type: object
properties:
type:
type: string
enum:
- existence
operator:
type: string
enum:
- is-set
required:
- type
- operator
ProfileSubscriptionCreateQueryResourceObject:
type: object
properties:
type:
$ref: '#/components/schemas/ProfileEnum'
id:
description: The ID of the profile to subscribe. If provided, this will be used to perform the lookup.
type: string
example: 01GDDKASAP8TKDDA2GRZDSVP4H
nullable: true
attributes:
type: object
properties:
email:
description: The email address relating to the email subscription included in `subscriptions`. If the email channel is omitted from `subscriptions`, this will be set on the profile.
type: string
example: matt-kemp@klaviyo-demo.com
nullable: true
phone_number:
description: The phone number relating to the SMS subscription included in `subscriptions`. If the SMS channel is omitted from `subscriptions`, this will be set on the profile. This must be in E.164 format.
type: string
example: '+15005550006'
nullable: true
subscriptions:
description: Specifies the channel and message types that the profile will be consented to.
$ref: '#/components/schemas/SubscriptionChannels'
age_gated_date_of_birth:
description: 'The profile''s date of birth. This field is required to update SMS consent for accounts using age-gating: https://help.klaviyo.com/hc/en-us/articles/17252552814875'
type: string
format: date
nullable: true
required:
- subscriptions
required:
- type
- attributes
SegmentsProfileMetricCondition:
type: object
properties:
type:
type: string
enum:
- profile-metric
metric_id:
type: string
measurement:
description: Measurements for profile metrics.
type: string
enum:
- count
- sum
measurement_filter:
$ref: '#/components/schemas/NumericOperatorNumericFilter'
timeframe_filter:
oneOf:
- $ref: '#/components/schemas/StaticDateFilter'
- $ref: '#/components/schemas/StaticDateRangeFilter'
- $ref: '#/components/schemas/RelativeDateOperatorBaseRelativeDateFilter'
- $ref: '#/components/schemas/RelativeAnniversaryDateFilter'
- $ref: '#/components/schemas/RelativeDateRangeFilter'
- $ref: '#/components/schemas/AlltimeDateFilter'
metric_filters:
type: array
items:
$ref: '#/components/schemas/ProfileMetricPropertyFilter'
nullable: true
required:
- type
- metric_id
- measurement
- measurement_filter
- timeframe_filter
CalendarDateFilter:
type: object
properties:
type:
type: string
enum:
- date
operator:
description: Operators for calendar date filters.
type: string
enum:
- calendar-month
value:
type: integer
required:
- type
- operator
- value
GetBulkProfileSuppressionsRemoveJobResponseCollection:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/BulkProfileSuppressionsRemoveJobResponseObjectResource'
links:
$ref: '#/components/schemas/CollectionLinks'
required:
- data
GetProfileResponseCollection:
type: object
properties:
data:
type: array
items:
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/CollectionLinks'
required:
- data
NoPushMarketing:
type: object
properties:
subscription:
type: string
enum:
- any
required:
- subscription
SubscriptionDeleteJobCreateQuery:
type: object
properties:
data:
$ref: '#/components/schemas/SubscriptionDeleteJobCreateQueryResourceObject'
required:
- data
PreferencePageMethodFilter:
type: object
properties:
field:
type: string
enum:
- method
method:
type: string
enum:
- preference_page
required:
- field
- method
ProfileSubscriptionDeleteQueryResourceObject:
type: object
properties:
type:
$ref: '#/components/schemas/ProfileEnum'
attributes:
type: object
properties:
email:
description: The email address to unsubscribe.
type: string
example: matt-kemp@klaviyo-demo.com
nullable: true
phone_number:
description: The phone number to unsubscribe. This must be in E.164 format.
type: string
example: '+15005550006'
nullable: true
subscriptions:
description: Specifies the channel and message types that the profile will have consent revoked from.
$ref: '#/components/schemas/UnsubscriptionChannels'
required:
- subscriptions
required:
- type
- attributes
BulkRemoveMethodFilter:
type: object
properties:
field:
type: string
enum:
- method
method:
type: string
enum:
- bulk_remove
required:
- field
- method
SegmentsProfileMetricFunnelCondition:
type: object
properties:
type:
type: string
enum:
- profile-metric-funnel
timeframe_filter:
oneOf:
- $ref: '#/components/schemas/StaticDateRangeFilter'
- $ref: '#/components/schemas/RelativeDateRangeFilter'
- $ref: '#/components/schemas/RelativeDateOperatorBaseRelativeDateFilter'
completion_window_seconds:
description: "Allowed completion window durations for funnel conditions (in\n seconds)."
type: string
enum:
- DAYS_1
- DAYS_180
- DAYS_3
- DAYS_30
- DAYS_5
- DAYS_90
- HOURS_1
- WEEKS_1
- YEARS_1
nullable: true
steps:
type: array
items:
$ref: '#/components/schemas/ProfileMetricFunnelSteps'
required:
- type
- timeframe_filter
- steps
ProfilePostalCodeDistanceCondition:
type: object
properties:
type:
type: string
enum:
- profile-postal-code-distance
country_code:
type: string
postal_code:
type: string
unit:
description: Units for profile postal code distance conditions.
type: string
enum:
- kilometers
- miles
filter:
oneOf:
- $ref: '#/components/schemas/GreaterThanPositiveNumericFilter'
- $ref: '#/components/schemas/LessThanPositiveNumericFilter'
required:
- type
- country_code
- postal_code
- unit
- filter
HasSMSMarketingSubscribed:
type: object
properties:
subscription:
type: string
enum:
- subscribed
filters:
type: array
items:
oneOf:
- $ref: '#/components/schemas/StatusDateFilter'
- $ref: '#/components/schemas/FormMethodFilter'
- $ref: '#/components/schemas/ManualImportManualMethodFilter'
- $ref: '#/components/schemas/ManualAddManualMethodFilter'
- $ref: '#/components/schemas/CheckoutMethodFilter'
- $ref: '#/components/schemas/InboundMessageMethodFilter'
- $ref: '#/components/schemas/PreferencePageMethodFilter'
- $ref: '#/components/schemas/SftpMethodFilter'
- $ref: '#/components/schemas/ShopifyIntegrationMethodFilter'
- $ref: '#/components/schemas/SubscribedSMSIsRcsCapableFilter'
nullable: true
required:
- subscription
ProfilePredictiveAnalyticsStringCondition:
type: object
properties:
type:
type: string
enum:
- profile-predictive-analytics
dimension:
description: Dimension for string profile predictive analytics conditions.
type: string
enum:
- predicted_gender
filter:
$ref: '#/components/schemas/ProfilePredictiveAnalyticsStringFilter'
required:
- type
- dimension
- filter
ProfileImportJobCreateQuery:
type: object
properties:
data:
$ref: '#/components/schemas/ProfileImportJobCreateQueryResourceObject'
required:
- data
RelativeDateOperatorBaseRelativeDateFilter:
type: object
properties:
type:
type: string
enum:
- date
operator:
description: 'Operators for relative date filters.
e.g. "in the last 10 days"'
type: string
enum:
- at-least
- in-the-last
- in-the-next
unit:
description: Units for relative date filters.
type: string
enum:
- day
- hour
- week
quantity:
type: integer
required:
- type
- operator
- unit
- quantity
ExistenceOperatorExistenceFilter:
type: object
properties:
type:
type: string
enum:
- existence
operator:
description: Operators for existence filters.
type: string
enum:
- is-set
- not-set
required:
- type
- operator
BackInStockMethodFilter:
type: object
properties:
field:
type: string
enum:
- method
method:
type: string
enum:
- back_in_stock
required:
- field
- method
ListContainsOperatorListContainsFilter:
type: object
properties:
type:
type: string
enum:
- list
operator:
description: Operators for list contains filters.
type: string
enum:
- contains
- not-contains
value:
nullable: true
oneOf:
- type: integer
- type: string
required:
- type
- operator
- value
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
ProfileImportJobCreateQueryResourceObject:
type: object
properties:
type:
$ref: '#/components/schemas/ProfileBulkImportJobEnum'
attributes:
type: object
properties:
profiles:
description: Array of profiles to create or update
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ProfileUpsertQueryResourceObject'
required:
- data
required:
- profiles
relationships:
type: object
properties:
lists:
type: object
properties:
data:
type: array
items:
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/ListEnum'
id:
description: Optional list to add the profiles to
type: string
example: VRgFBd
required:
- type
- attributes
ProfilePredictiveAnalyticsNumericCondition:
type: object
properties:
type:
type: string
enum:
- profile-predictive-analytics
dimension:
description: Dimensions for numeric profile predictive analytics conditions.
type: string
enum:
- average_days_between_orders
- average_order_value
- churn_probability
- historic_clv
- historic_number_of_orders
- predicted_clv
- predicted_number_of_orders
- total_clv
filter:
$ref: '#/components/schemas/NumericOperatorNumericFilter'
required:
- type
- dimension
- filter
ProfileMergeEnum:
type: string
enum:
- profile-merge
StringOperatorStringFilter:
type: object
properties:
type:
type: string
enum:
- string
operator:
description: Operators for string filters.
type: string
enum:
- contains
- ends-with
- equals
- not-contains
- not-ends-with
- not-equals
- not-starts-with
- nregex
- regex
- starts-with
value:
type: string
nullable: true
required:
- type
- operator
- value
GetConversationResponse:
type: object
properties:
data:
$ref: '#/components/schemas/ConversationResponseObjectResource'
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- data
ManualSuppressionDateFilter:
type: object
properties:
field:
type: string
enum:
- manual_suppression_date
filter:
oneOf:
- $ref: '#/components/schemas/StaticDateFilter'
- $ref: '#/components/schemas/StaticDateRangeFilter'
- $ref: '#/components/schemas/RelativeDateOperatorBaseRelativeDateFilter'
- $ref: '#/components/schemas/RelativeAnniversaryDateFilter'
- $ref: '#/components/schemas/RelativeDateRangeFilter'
- $ref: '#/components/schemas/CalendarDateFilter'
- $ref: '#/components/schemas/AnniversaryDateFilter'
- $ref: '#/components/schemas/IsSetExistenceFilter'
required:
- field
- filter
GetProfileSegmentsRelationshipsResponseCollection:
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/CollectionLinks'
required:
- data
PushTokenDeviceMetadata:
type: object
properties:
device_id:
description: Relatively stable ID for the device. Will update on app uninstall and reinstall
type: string
example: '1234567890'
nullable: true
klaviyo_sdk:
description: The name of the SDK used to create the push token.
type: string
example: swift
enum:
- android
- flutter
- flutter_community
- react_native
- swift
nullable: true
sdk_version:
description: The version of the SDK used to create the push token
type: string
example: 1.0.0
nullable: true
device_model:
description: The model of the device
type: string
example: iPhone12,1
nullable: true
os_name:
description: The name of the operating system on the device.
type: string
example: ios
enum:
- android
- ios
- ipados
- macos
- tvos
nullable: true
os_version:
description: The version of the operating system on the device
type: string
example: '14.0'
nullable: true
manufacturer:
description: The manufacturer of the device
type: string
example: Apple
nullable: true
app_name:
description: The name of the app that created the push token
type: string
example: Klaviyo
nullable: true
app_version:
description: The version of the app that created the push token
type: string
example: 1.0.0
nullable: true
app_build:
description: The build of the app that created the push token
type: string
example: '1'
nullable: true
app_id:
description: The ID of the app that created the push token
type: string
example: com.klaviyo.app
nullable: true
environment:
description: The environment in which the push token was created
type: string
example: release
enum:
- debug
- release
nullable: true
SubscriptionDeleteJobCreateQueryResourceObject:
type: object
properties:
type:
$ref: '#/components/schemas/ProfileSubscriptionBulkDeleteJobEnum'
attributes:
type: object
properties:
profiles:
description: The profile(s) to unsubscribe
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ProfileSubscriptionDeleteQueryResourceObject'
required:
- data
required:
- profiles
relationships:
type: object
properties:
list:
type: object
properties:
data:
type: object
properties:
type:
$ref: '#/components/schemas/ListEnum'
id:
description: The list to remove the profiles from
type: string
example: Y6nRLr
required:
- type
- id
required:
- type
- attributes
ShopifyIntegrationMethodFilter:
type: object
properties:
field:
type: string
enum:
- method
method:
type: string
enum:
- integration
filter:
$ref: '#/components/schemas/ShopifyIntegrationFilter'
required:
- field
- method
- filter
SubscriptionCreateJobCreateQuery:
type: object
properties:
data:
$ref: '#/components/schemas/SubscriptionCreateJobCreateQueryResourceObject'
required:
- data
UnsubscriptionParameters:
type: object
properties:
consent:
description: The Consent status to be set as part of the unsubscribe call. Currently supports "UNSUBSCRIBED".
type: string
example: UNSUBSCRIBED
enum:
- UNSUBSCRIBED
required:
- consent
RelativeDateRangeFilter:
type: object
properties:
type:
type: string
enum:
- date
operator:
description: 'Operators for relative date range filters.
e.g. "between 10 and 20 days ago"'
type: string
enum:
- between
start:
type: integer
end:
type: integer
unit:
description: Units for relative date filters.
type: string
enum:
- day
- hour
- week
required:
- type
- operator
- start
- end
- unit
PostProfileResponse:
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
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
subscriptions:
$ref: '#/components/schemas/Subscriptions'
nullable: true
predictive_analytics:
$ref: '#/components/schemas/PredictiveAnalytics'
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
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- data
HasEmailMarketingSubscribed:
type: object
properties:
subscription:
type: string
enum:
- subscribed
filters:
type: array
items:
oneOf:
- $ref: '#/components/schemas/DoubleOptinFilter'
- $ref: '#/components/schemas/StatusDateFilter'
- $ref: '#/components/schemas/CustomSourceFilter'
- $ref: '#/components/schemas/FormMethodFilter'
- $ref: '#/components/schemas/PreferencePageFilter'
- $ref: '#/components/schemas/APIMethodFilter'
- $ref: '#/components/schemas/InboundMessageMethodFilter'
- $ref: '#/components/schemas/BackInStockMethodFilter'
- $ref: '#/components/schemas/SftpMethodFilter'
- $ref: '#/components/schemas/ManualImportManualMethodFilter'
- $ref: '#/components/schemas/ManualAddManualMethodFilter'
- $ref: '#/components/schemas/ShopifyIntegrationMethodFilter'
nullable: true
required:
- subscription
MailboxProviderMethodFilter:
type: object
properties:
field:
type: string
enum:
- method
method:
type: string
enum:
- mailbox_provider
required:
- field
- method
AnniversaryDateFilter:
type: object
properties:
type:
type: string
enum:
- date
operator:
description: Operators for anniversary date filters.
type: string
enum:
- anniversary
- anniversary-month
required:
- type
- operator
ListSetFilter:
type: object
properties:
type:
type: string
enum:
- list
operator:
description: Operators for list contains set filters.
type: string
enum:
- contains-all
- contains-any
- not-contains-all
- not-contains-any
value:
type: array
items:
type: string
required:
- type
- operator
- value
PushProfileUpsertQueryResourceObject:
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:
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
_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/ProfileMeta'
nullable: true
email:
description: Individual's email address
type: string
example: sarah.mason@klaviyo-demo.com
nullable: true
required:
- type
- attributes
DeviceMetadata:
type: object
properties:
device_id:
description: Relatively stable ID for the device. Will update on app uninstall and reinstall
type: string
example: '1234567890'
nullable: true
klaviyo_sdk:
description: The name of the SDK used to create the push token.
type: string
example: swift
enum:
- android
- flutter
- flutter_community
- react_native
- swift
nullable: true
sdk_version:
description: The version of the SDK used to create the push token
type: string
example: 1.0.0
nullable: true
device_model:
description: The model of the device
type: string
example: iPhone12,1
nullable: true
os_name:
description: The name of the operating system on the device.
type: string
example: ios
enum:
- android
- ios
- ipados
- macos
- tvos
nullable: true
os_version:
description: The version of the operating system on the device
type: string
example: '14.0'
nullable: true
manufacturer:
description: The manufacturer of the device
type: string
example: Apple
nullable: true
app_name:
description: The name of the app that created the push token
type: string
example: Klaviyo
nullable: true
app_version:
description: The version of the app that created the push token
type: string
example: 1.0.0
nullable: true
app_build:
description: The build of the app that created the push token
type: string
example: '1'
nullable: true
app_id:
description: The ID of the app that created the push token
type: string
example: com.klaviyo.app
nullable: true
environment:
description: The environment in which the push token was created
type: string
example: release
enum:
- debug
- release
nullable: true
ProfileMetricPropertyFilter:
type: object
properties:
property:
type: string
filter:
nullable: true
oneOf:
- $ref: '#/components/schemas/StringOperatorStringFilter'
- $ref: '#/components/schemas/StringArrayOperatorStringArrayFilter'
- $ref: '#/components/schemas/ExistenceOperatorExistenceFilter'
- $ref: '#/components/schemas/ListSetFilter'
- $ref: '#/components/schemas/ListLengthFilter'
- $ref: '#/components/schemas/ListSubstringFilter'
- $ref: '#/components/schemas/BooleanFilter'
- $ref: '#/components/schemas/NumericOperatorNumericFilter'
required:
- property
GetProfileResponseCompoundDocument:
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'
included:
type: array
items:
oneOf:
- $ref: '#/components/schemas/ListResponseObjectResource'
- $ref: '#/components/schemas/SegmentResponseObjectResource'
- $ref: '#/components/schemas/ConversationResponseObjectResource'
- $ref: '#/components/schemas/PushTokenResponseObjectResource'
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- data
ProfileImportJobResponseObjectResource:
type: object
properties:
type:
$ref: '#/components/schemas/ProfileBulkImportJobEnum'
id:
description: Unique identifier for retrieving the job. Generated by Klaviyo.
type: string
attributes:
type: object
properties:
status:
description: Status of the asynchronous job.
type: string
example: processing
enum:
- cancelled
- complete
- processing
- queued
created_at:
description: The date and time the job 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'
total_count:
description: The total number of operations to be processed by the job. See `completed_count` for the job's current progress.
type: integer
example: 10
completed_count:
description: The total number of operations that have been completed by the job.
type: integer
example: 9
default: 0
nullable: true
failed_count:
description: The total number of operations that have failed as part of the job.
type: integer
example: 1
default: 0
nullable: true
completed_at:
description: Date and time the job was completed 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
expires_at:
description: Date and time the job expires 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
started_at:
description: Date and time the job started processing 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
required:
- status
- created_at
- total_count
relationships:
type: object
properties:
lists:
type: object
properties:
data:
type: array
items:
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/ListEnum'
id:
description: List to add the profiles to
type: string
links:
$ref: '#/components/schemas/RelationshipLinks'
profiles:
type: object
properties:
data:
type: array
items:
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/ProfileEnum'
id:
description: IDs of the created/updated profiles
type: string
links:
$ref: '#/components/schemas/RelationshipLinks'
import-errors:
type: object
properties:
data:
type: array
items:
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/ImportErrorEnum'
id:
description: Errors encountering during import
type: string
links:
$ref: '#/components/schemas/OnlyRelatedLinks'
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- type
- id
- attributes
- links
ConditionGroup:
type: object
properties:
conditions:
type: array
items:
oneOf:
- $ref: '#/components/schemas/ProfileHasGroupMembershipCondition'
- $ref: '#/components/schemas/ProfileNoGroupMembershipCondition'
- $ref: '#/components/schemas/SegmentsProfileMetricCondition'
- $ref: '#/components/schemas/ProfileMarketingConsentCondition'
- $ref: '#/components/schemas/ProfilePostalCodeDistanceCondition'
- $ref: '#/components/schemas/ProfilePropertyCondition'
- $ref: '#/components/schemas/ProfileRegionCondition'
- $ref: '#/components/schemas/ProfilePredictiveAnalyticsDateCondition'
- $ref: '#/components/schemas/ProfilePredictiveAnalyticsNumericCondition'
- $ref: '#/components/schemas/ProfilePredictiveAnalyticsStringCondition'
- $ref: '#/components/schemas/ProfilePredictiveAnalyticsChannelAffinityPriorityCondition'
- $ref: '#/components/schemas/ProfilePredictiveAnalyticsChannelAffinityRankCondition'
- $ref: '#/components/schemas/ProfileHasCustomObjectCondition'
- $ref: '#/components/schemas/ProfilePermissionsCondition'
- $ref: '#/components/schemas/SegmentsProfileMetricFunnelCondition'
required:
- conditions
GetSegmentResponseCollection:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/SegmentResponseObjectResource'
links:
$ref: '#/components/schemas/CollectionLinks'
required:
- data
GetProfilePushTokensRelationshipsResponseCollection:
type: object
properties:
data:
type: array
items:
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/PushTokenEnum'
id:
description: ID of push token
type: string
links:
$ref: '#/components/schemas/CollectionLinks'
required:
- data
InStringArrayFilter:
type: object
properties:
type:
type: string
enum:
- string
operator:
type: string
enum:
- in
value:
type: array
items:
type: string
required:
- type
- operator
- value
NoSMSMarketingNeverSubscribed:
type: object
properties:
subscription:
type: string
enum:
- never_subscribed
required:
- subscription
EmailSubscriptionParameters:
type: object
properties:
marketing:
description: The parameters to subscribe to on the "EMAIL" Channel. Currently supports "MARKETING".
$ref: '#/components/schemas/SubscriptionParameters'
required:
- marketing
WhatsAppSubscriptionParameters:
type: object
properties:
marketing:
description: The parameters to subscribe to marketing on the "WhatsApp" Channel.
$ref: '#/components/schemas/SubscriptionParameters'
nullable: true
transactional:
description: The parameters to subscribe to transactional messaging on the "WhatsApp" Channel.
$ref: '#/components/schemas/SubscriptionParameters'
nullable: true
GreaterThanPositiveNumericFilter:
type: object
properties:
type:
type: string
enum:
- numeric
operator:
type: string
enum:
- greater-than
value:
oneOf:
- type: integer
- type: number
required:
- type
- operator
- value
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
SubscriptionParameters:
type: object
properties:
consent:
description: The Consent status to be set as part of the subscribe call. Currently supports "SUBSCRIBED".
type: string
example: SUBSCRIBED
enum:
- SUBSCRIBED
consented_at:
description: The timestamp of when the profile's consent was gathered. This should only be used when syncing over historical consent info to Klaviyo; if the `historical_import` flag is not included, providing any value for this field will raise an error.
type: string
format: date-time
nullable: true
required:
- consent
NumericOperatorNumericFilter:
type: object
properties:
type:
type: string
enum:
- numeric
operator:
description: Operators for numeric filters.
type: string
enum:
- equals
- greater-than
- greater-than-or-equal
- less-than
- less-than-or-equal
- not-equals
value:
oneOf:
- type: integer
- type: number
required:
- type
- operator
- value
ProfilePredictiveAnalyticsChannelAffinityRankCondition:
type: object
properties:
type:
type: string
enum:
- profile-predictive-analytics
dimension:
description: Possible dimension for channel affinity criterion.
type: string
enum:
- channel_affinity
measurement:
type: string
enum:
- rank
predicted_channel:
description: Possible channels in a channel affinity definition.
type: string
enum:
- email
- push
- sms
filter:
$ref: '#/components/schemas/ProfilePredictiveAnalyticsChannelAffinityRankFilter'
required:
- type
- dimension
- measurement
- predicted_channel
- filter
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
HasSMSMarketingConsent:
type: object
properties:
channel:
type: string
enum:
- sms
can_receive_marketing:
type: boolean
enum:
- true
consent_status:
$ref: '#/components/schemas/HasSMSMarketingSubscribed'
required:
- channel
- can_receive_marketing
- consent_status
OnlyRelatedLinks:
type: object
properties:
related:
type: string
format: uri
required:
- related
StringArrayOperatorStringArrayFilter:
type: object
properties:
type:
type: string
enum:
- string
operator:
description: Operators for string-in-array filters.
type: string
enum:
- in
- not-in
value:
type: array
items:
type: string
required:
- type
- operator
- value
HasEmailMarketingConsent:
type: object
properties:
channel:
type: string
enum:
- email
can_receive_marketing:
type: boolean
enum:
- true
consent_status:
oneOf:
- $ref: '#/components/schemas/HasEmailMarketing'
- $ref: '#/components/schemas/HasEmailMarketingSubscribed'
- $ref: '#/components/schemas/HasEmailMarketingNeverSubscribed'
required:
- channel
- can_receive_marketing
- consent_status
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