openapi: 3.0.2
info:
title: Klaviyo Accounts Reporting 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: Reporting
description: reporting
paths:
/api/campaign-values-reports:
post:
operationId: query_campaign_values
summary: Query Campaign Values
description: 'Returns the requested campaign analytics values data
*Rate limits*:
Burst: `1/s`
Steady: `2/m`
Daily: `225/d`
**Scopes:**
`campaigns:read`'
parameters:
- 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: 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/CampaignValuesRequestDTO'
responses:
'200':
description: Success
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/PostCampaignValuesResponseDTO'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Reporting
x-klaviyo-operation-aliases:
- create_campaign_value_report
- create_campaign_values_report
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 1/s
steady: 2/m
daily: 225/d
x-klaviyo-scopes:
- campaigns:read
/api/flow-values-reports:
post:
operationId: query_flow_values
summary: Query Flow Values
description: 'Returns the requested flow analytics values data
*Rate limits*:
Burst: `1/s`
Steady: `2/m`
Daily: `225/d`
**Scopes:**
`flows:read`'
parameters:
- 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: 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/FlowValuesRequestDTO'
responses:
'200':
description: Success
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/PostFlowValuesResponseDTO'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Reporting
x-klaviyo-operation-aliases:
- create_flow_value_report
- create_flow_values_report
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 1/s
steady: 2/m
daily: 225/d
x-klaviyo-scopes:
- flows:read
/api/flow-series-reports:
post:
operationId: query_flow_series
summary: Query Flow Series
description: 'Returns the requested flow analytics series data
*Rate limits*:
Burst: `1/s`
Steady: `2/m`
Daily: `225/d`
**Scopes:**
`flows:read`'
parameters:
- 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: 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/FlowSeriesRequestDTO'
responses:
'200':
description: Success
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/PostFlowSeriesResponseDTO'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Reporting
x-klaviyo-operation-aliases:
- create_flow_sery_report
- create_flow_series_report
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 1/s
steady: 2/m
daily: 225/d
x-klaviyo-scopes:
- flows:read
/api/form-values-reports:
post:
operationId: query_form_values
summary: Query Form Values
description: 'Returns the requested form analytics values data.
*Rate limits*:
Burst: `1/s`
Steady: `2/m`
Daily: `225/d`
**Scopes:**
`forms:read`'
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/FormValuesRequestDTO'
responses:
'200':
description: Success
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/PostFormValuesResponseDTO'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Reporting
x-klaviyo-operation-aliases:
- create_form_value_report
- create_form_values_report
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 1/s
steady: 2/m
daily: 225/d
x-klaviyo-scopes:
- forms:read
/api/form-series-reports:
post:
operationId: query_form_series
summary: Query Form Series
description: 'Returns the requested form analytics series data.
*Rate limits*:
Burst: `1/s`
Steady: `2/m`
Daily: `225/d`
**Scopes:**
`forms:read`'
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/FormSeriesRequestDTO'
responses:
'200':
description: Success
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/PostFormSeriesResponseDTO'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Reporting
x-klaviyo-operation-aliases:
- create_form_sery_report
- create_form_series_report
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 1/s
steady: 2/m
daily: 225/d
x-klaviyo-scopes:
- forms:read
/api/segment-values-reports:
post:
operationId: query_segment_values
summary: Query Segment Values
description: 'Returns the requested segment analytics values data.
*Rate limits*:
Burst: `1/s`
Steady: `2/m`
Daily: `225/d`
**Scopes:**
`segments:read`'
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/SegmentValuesRequestDTO'
responses:
'200':
description: Success
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/PostSegmentValuesResponseDTO'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Reporting
x-klaviyo-operation-aliases:
- create_segment_value_report
- create_segment_values_report
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 1/s
steady: 2/m
daily: 225/d
x-klaviyo-scopes:
- segments:read
/api/segment-series-reports:
post:
operationId: query_segment_series
summary: Query Segment Series
description: 'Returns the requested segment analytics series data.
*Rate limits*:
Burst: `1/s`
Steady: `2/m`
Daily: `225/d`
**Scopes:**
`segments:read`'
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/SegmentSeriesRequestDTO'
responses:
'200':
description: Success
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/PostSegmentSeriesResponseDTO'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Reporting
x-klaviyo-operation-aliases:
- create_segment_sery_report
- create_segment_series_report
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 1/s
steady: 2/m
daily: 225/d
x-klaviyo-scopes:
- segments:read
components:
schemas:
PostFlowValuesResponseDTO:
type: object
properties:
data:
type: object
properties:
type:
$ref: '#/components/schemas/FlowValuesReportEnum'
attributes:
type: object
properties:
results:
description: 'An array of all the returned values data.
Each object in the array represents one unique grouping and the results for that grouping.'
type: array
items:
$ref: '#/components/schemas/ValuesData'
example:
- groupings:
flow_id: XVTP5Q
send_channel: email
flow_message_id: 01GMRWDSA0ARTAKE1SFX8JGXAY
statistics:
opens: 123
open_rate: 0.8253
- groupings:
flow_id: XVTP5Q
send_channel: email
flow_message_id: 01GJTHNWVG93F3KNX71SJ4FDBB
statistics:
opens: 97
open_rate: 0.7562
required:
- results
relationships:
type: object
properties:
flows:
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'
flow-messages:
type: object
properties:
data:
type: array
items:
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/FlowMessageEnum'
id:
type: string
links:
$ref: '#/components/schemas/RelationshipLinks'
required:
- type
- attributes
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- data
FlowValuesRequestDTO:
type: object
properties:
data:
$ref: '#/components/schemas/FlowValuesRequestDTOResourceObject'
required:
- data
SeriesData:
type: object
properties:
groupings:
description: Applied groupings and the values for this object
type: object
statistics:
description: Requested statistics and their series result
type: object
required:
- groupings
- statistics
RelationshipLinks:
type: object
properties:
self:
type: string
format: uri
related:
type: string
format: uri
required:
- self
- related
PostFormSeriesResponseDTO:
type: object
properties:
data:
type: object
properties:
type:
$ref: '#/components/schemas/FormSeriesReportEnum'
attributes:
type: object
properties:
results:
description: 'An array of all the returned values data.
Each object in the array represents one unique grouping and the results for that grouping.
Each value in the results array corresponds to the date time at the same index.'
type: array
items:
$ref: '#/components/schemas/SeriesData'
example:
- groupings:
form_id: abc123
statistics:
viewed_form:
- 100
- 120
- 140
submits:
- 20
- 22
- 28
- groupings:
form_id: def456
statistics:
viewed_form:
- 200
- 300
- 400
submits:
- 20
- 25
- 30
date_times:
description: An array of date times which correspond to the equivalent index in the results data.
type: array
items:
type: string
format: date-time
example:
- '2024-01-05T00:00:00+00:00'
- '2024-01-06T00:00:00+00:00'
- '2024-01-07T00:00:00+00:00'
required:
- results
- date_times
required:
- type
- attributes
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- data
CampaignValuesRequestDTOResourceObject:
type: object
properties:
type:
$ref: '#/components/schemas/CampaignValuesReportEnum'
attributes:
type: object
properties:
statistics:
description: List of statistics to query for. All rate statistics will be returned in fractional form [0.0, 1.0]
type: array
items:
type: string
enum:
- average_order_value
- bounce_rate
- bounced
- bounced_or_failed
- bounced_or_failed_rate
- click_rate
- click_to_open_rate
- clicks
- clicks_unique
- conversion_rate
- conversion_uniques
- conversion_value
- conversions
- delivered
- delivery_rate
- failed
- failed_rate
- message_segment_count_sum
- open_rate
- opens
- opens_unique
- recipients
- revenue_per_recipient
- spam_complaint_rate
- spam_complaints
- text_message_credit_usage_amount
- text_message_roi
- text_message_spend
- unsubscribe_rate
- unsubscribe_uniques
- unsubscribes
description: Defined reporting metric
example:
- opens
- open_rate
timeframe:
description: 'The time frame to pull data from (Max length: 1 year). See [available time frames](https://developers.klaviyo.com/en/reference/reporting_api_overview#available-time-frames).'
oneOf:
- $ref: '#/components/schemas/Timeframe'
- $ref: '#/components/schemas/CustomTimeframe'
conversion_metric_id:
description: ID of the metric to be used for conversion statistics
type: string
example: RESQ6t
group_by:
description: 'List of attributes to group the data by.
Allowed group-bys are campaign_id, campaign_message_id, campaign_message_name, group, group_name, send_channel, tag_id, tag_name, text_message_format, variation, variation_name.
If not passed in, the data will be grouped by campaign_id, campaign_message_id, send_channel.
The following group by attributes are required: campaign_id, campaign_message_id'
type: array
items:
type: string
enum:
- campaign_id
- campaign_message_id
- campaign_message_name
- group
- group_name
- send_channel
- tag_id
- tag_name
- text_message_format
- variation
- variation_name
description: Attributes to represent what is being grouped by / filtered on for Campaigns
nullable: true
filter:
description: 'API filter string used to filter the query.
Scalar attributes (send_channel, campaign_id, campaign_message_id, campaign_message_name, variation, variation_name, text_message_format): Supported operators: equals, contains-any.
List attributes (tag_id, tag_name): Supported operators: contains-any, contains-all.
Only one filter can be used per attribute.
Only AND can be used as a combination operator.
Max of 100 items per list filter.
When filtering on send_channel, allowed values are email, sms, push-notification, whatsapp.'
type: string
example: and(equals(campaign_id,"abc123"),contains-any(send_channel,["email","sms"]))
nullable: true
required:
- statistics
- timeframe
- conversion_metric_id
required:
- type
- attributes
SegmentValuesRequestDTO:
type: object
properties:
data:
$ref: '#/components/schemas/SegmentValuesRequestDTOResourceObject'
required:
- data
FormSeriesRequestDTOResourceObject:
type: object
properties:
type:
$ref: '#/components/schemas/FormSeriesReportEnum'
attributes:
type: object
properties:
statistics:
description: List of statistics to query for. All rate statistics will be returned in fractional form [0.0, 1.0]
type: array
items:
type: string
enum:
- closed_form
- closed_form_uniques
- qualified_form
- qualified_form_uniques
- submit_rate
- submits
- submitted_form_step
- submitted_form_step_uniques
- viewed_form
- viewed_form_step
- viewed_form_step_uniques
- viewed_form_uniques
description: Defined form reporting metric
example:
- viewed_form
- submit_rate
timeframe:
description: 'The time frame to pull data from (Max length: 1 year). See [available time frames](https://developers.klaviyo.com/en/reference/reporting_api_overview#available-time-frames).'
oneOf:
- $ref: '#/components/schemas/Timeframe'
- $ref: '#/components/schemas/CustomTimeframe'
interval:
description: 'The interval used to aggregate data within the series request.
If hourly is used, the timeframe cannot be longer than 7 days.
If daily is used, the timeframe cannot be longer than 60 days.
If monthly is used, the timeframe cannot be longer than 52 weeks.'
type: string
example: weekly
enum:
- daily
- hourly
- monthly
- weekly
group_by:
description: 'List of attributes to group the data by.
Allowed group-bys are form_id, form_version_id.
If not passed in, the data will be grouped by form_id.
If a group by has prerequisites, they must be passed in together. The prerequisites for form_version_id is form_id'
type: array
items:
type: string
enum:
- form_id
- form_version_id
description: Attributes to represent what is being grouped by for Forms
nullable: true
filter:
description: 'API filter string used to filter the query.
Allowed filters are form_id, form_version_id.
Allowed operators are equals, any.
Only one filter can be used per attribute, only AND can be used as a combination operator.
Max of 100 messages per ANY filter.'
type: string
example: and(equals(form_id,"abc123"),any(form_version_id,["xyz123","ghi456"]))
nullable: true
required:
- statistics
- timeframe
- interval
required:
- type
- attributes
FormValuesReportEnum:
type: string
enum:
- form-values-report
SegmentSeriesRequestDTOResourceObject:
type: object
properties:
type:
$ref: '#/components/schemas/SegmentSeriesReportEnum'
attributes:
type: object
properties:
statistics:
description: List of statistics to query for.
type: array
items:
type: string
enum:
- members_added
- members_removed
- net_members_changed
- total_members
description: Defined segment reporting metric
example:
- total_members
- net_members_changed
timeframe:
description: 'The time frame to pull data from (Max length: 1 year). Data is unavailable before June 1st, 2023. Please use a time frame after this date. See [available time frames](https://developers.klaviyo.com/en/reference/reporting_api_overview#available-time-frames).'
oneOf:
- $ref: '#/components/schemas/Timeframe'
- $ref: '#/components/schemas/CustomTimeframe'
interval:
description: 'The interval used to aggregate data within the series request.
If hourly is used, the timeframe cannot be longer than 7 days.
If daily is used, the timeframe cannot be longer than 60 days.
If monthly is used, the timeframe cannot be longer than 52 weeks.'
type: string
example: weekly
enum:
- daily
- hourly
- monthly
- weekly
filter:
description: 'API filter string used to filter the query.
Allowed filters are segment_id.
Allowed operators are equals, any.
Only one filter can be used per attribute.
Max of 100 messages per ANY filter.'
type: string
example: any(segment_id,["xyz123","ghi456"])
nullable: true
required:
- statistics
- timeframe
- interval
required:
- type
- attributes
CampaignValuesReportEnum:
type: string
enum:
- campaign-values-report
FormSeriesReportEnum:
type: string
enum:
- form-series-report
ValuesData:
type: object
properties:
groupings:
description: Applied groupings and the values for this object
type: object
statistics:
description: Requested statistics and their values results
type: object
required:
- groupings
- statistics
FlowValuesRequestDTOResourceObject:
type: object
properties:
type:
$ref: '#/components/schemas/FlowValuesReportEnum'
attributes:
type: object
properties:
statistics:
description: List of statistics to query for. All rate statistics will be returned in fractional form [0.0, 1.0]
type: array
items:
type: string
enum:
- average_order_value
- bounce_rate
- bounced
- bounced_or_failed
- bounced_or_failed_rate
- click_rate
- click_to_open_rate
- clicks
- clicks_unique
- conversion_rate
- conversion_uniques
- conversion_value
- conversions
- delivered
- delivery_rate
- failed
- failed_rate
- message_segment_count_sum
- open_rate
- opens
- opens_unique
- recipients
- revenue_per_recipient
- spam_complaint_rate
- spam_complaints
- text_message_credit_usage_amount
- text_message_roi
- text_message_spend
- unsubscribe_rate
- unsubscribe_uniques
- unsubscribes
description: Defined reporting metric
example:
- opens
- open_rate
timeframe:
description: 'The time frame to pull data from (Max length: 1 year). See [available time frames](https://developers.klaviyo.com/en/reference/reporting_api_overview#available-time-frames).'
oneOf:
- $ref: '#/components/schemas/Timeframe'
- $ref: '#/components/schemas/CustomTimeframe'
conversion_metric_id:
description: ID of the metric to be used for conversion statistics
type: string
example: RESQ6t
group_by:
description: 'List of attributes to group the data by.
Allowed group-bys are flow_id, flow_message_id, flow_message_name, flow_name, send_channel, tag_id, tag_name, text_message_format, variation, variation_name.
If not passed in, the data will be grouped by flow_id, flow_message_id, send_channel.
The following group by attributes are required: flow_message_id, flow_id.'
type: array
items:
type: string
enum:
- flow_id
- flow_message_id
- flow_message_name
- flow_name
- send_channel
- tag_id
- tag_name
- text_message_format
- variation
- variation_name
description: Attributes to represent what is being grouped by for Flows
nullable: true
filter:
description: 'API filter string used to filter the query.
Scalar attributes (flow_id, flow_name, send_channel, flow_message_id, flow_message_name, text_message_format, variation, variation_name): Supported operators: equals, contains-any.
List attributes (tag_id, tag_name): Supported operators: contains-any, contains-all.
Only one filter can be used per attribute.
Only AND can be used as a combination operator.
Max of 100 items per list filter.
When filtering on send_channel, allowed values are email, sms, push-notification, whatsapp.'
type: string
example: and(equals(flow_id,"abc123"),contains-any(send_channel,["email","sms"]))
nullable: true
required:
- statistics
- timeframe
- conversion_metric_id
required:
- type
- attributes
PostSegmentSeriesResponseDTO:
type: object
properties:
data:
type: object
properties:
type:
$ref: '#/components/schemas/SegmentSeriesReportEnum'
attributes:
type: object
properties:
results:
description: 'An array of all the returned values data.
Each object in the array represents one unique grouping and the results for that grouping.
Each value in the results array corresponds to the date time at the same index.'
type: array
items:
$ref: '#/components/schemas/SeriesData'
example:
- groupings:
segment_id: abc123
statistics:
total_members:
- 120
- 185
- 240
net_members_changed:
- 40
- 62
- 88
- groupings:
segment_id: def456
statistics:
total_members:
- 103
- 163
- 213
net_members_changed:
- 36
- 66
- 86
date_times:
description: An array of date times which correspond to the equivalent index in the results data.
type: array
items:
type: string
format: date-time
example:
- '2024-01-05T00:00:00+00:00'
- '2024-01-06T00:00:00+00:00'
- '2024-01-07T00:00:00+00:00'
required:
- results
- date_times
required:
- type
- attributes
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- data
FlowSeriesReportEnum:
type: string
enum:
- flow-series-report
PostSegmentValuesResponseDTO:
type: object
properties:
data:
type: object
properties:
type:
$ref: '#/components/schemas/SegmentValuesReportEnum'
attributes:
type: object
properties:
results:
description: 'An array of all the returned values data.
Each object in the array represents one unique grouping and the results for that grouping.'
type: array
items:
$ref: '#/components/schemas/ValuesData'
example:
- groupings:
segment_id: abc123
statistics:
total_members: 120
net_members_changed: 53
- groupings:
segment_id: def123
statistics:
total_members: 250
net_members_changed: 113
required:
- results
required:
- type
- attributes
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- data
SegmentValuesRequestDTOResourceObject:
type: object
properties:
type:
$ref: '#/components/schemas/SegmentValuesReportEnum'
attributes:
type: object
properties:
statistics:
description: List of statistics to query for.
type: array
items:
type: string
enum:
- members_added
- members_removed
- net_members_changed
- total_members
description: Defined segment reporting metric
example:
- total_members
- net_members_changed
timeframe:
description: 'The time frame to pull data from (Max length: 1 year). Data is unavailable before June 1st, 2023. Please use a time frame after this date. See [available time frames](https://developers.klaviyo.com/en/reference/reporting_api_overview#available-time-frames).'
oneOf:
- $ref: '#/components/schemas/Timeframe'
- $ref: '#/components/schemas/CustomTimeframe'
filter:
description: 'API filter string used to filter the query.
Allowed filters are segment_id.
Allowed operators are equals, any.
Only one filter can be used per attribute.
Max of 100 messages per ANY filter.'
type: string
example: any(segment_id,["xyz123","ghi456"])
nullable: true
required:
- statistics
- timeframe
required:
- type
- attributes
PostFormValuesResponseDTO:
type: object
properties:
data:
type: object
properties:
type:
$ref: '#/components/schemas/FormValuesReportEnum'
attributes:
type: object
properties:
results:
description: 'An array of all the returned values data.
Each object in the array represents one unique grouping and the results for that grouping.'
type: array
items:
$ref: '#/components/schemas/ValuesData'
example:
- groupings:
form_id: abc123
form_version_id: 012tuy
statistics:
viewed_form: 90
submits: 9
submit_rate: 0.1
- groupings:
form_id: abc123
form_version_id: 756ghi
statistics:
viewed_form: 10
submits: 1
submit_rate: 0.1
required:
- results
required:
- type
- attributes
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- data
PostFlowSeriesResponseDTO:
type: object
properties:
data:
type: object
properties:
type:
$ref: '#/components/schemas/FlowSeriesReportEnum'
attributes:
type: object
properties:
results:
description: 'An array of all the returned values data.
Each object in the array represents one unique grouping and the results for that grouping.
Each value in the results array corresponds to the date time at the same index.'
type: array
items:
$ref: '#/components/schemas/SeriesData'
example:
- groupings:
flow_id: XVTP5Q
send_channel: email
flow_message_id: 01GMRWDSA0ARTAKE1SFX8JGXAY
statistics:
opens:
- 123
- 156
- 144
open_rate:
- 0.8253
- 0.8722
- 0.8398
- groupings:
flow_id: XVTP5Q
send_channel: email
flow_message_id: 01GJTHNWVG93F3KNX71SJ4FDBB
statistics:
opens:
- 97
- 98
- 65
open_rate:
- 0.7562
- 0.761
- 0.688
date_times:
description: An array of date times which correspond to the equivalent index in the results data.
type: array
items:
type: string
format: date-time
example:
- '2024-01-05T00:00:00+00:00'
- '2024-01-06T00:00:00+00:00'
- '2024-01-07T00:00:00+00:00'
required:
- results
- date_times
relationships:
type: object
properties:
flows:
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'
flow-messages:
type: object
properties:
data:
type: array
items:
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/FlowMessageEnum'
id:
type: string
links:
$ref: '#/components/schemas/RelationshipLinks'
required:
- type
- attributes
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- data
PostCampaignValuesResponseDTO:
type: object
properties:
data:
type: object
properties:
type:
$ref: '#/components/schemas/CampaignValuesReportEnum'
attributes:
type: object
properties:
results:
description: 'An array of all the returned values data.
Each object in the array represents one unique grouping and the results for that grouping.'
type: array
items:
$ref: '#/components/schemas/ValuesData'
example:
- groupings:
send_channel: email
campaign_id: 01GMRWDSA0ARTAKE1SFX8JGXAY
campaign_message_id: 01GMRWDSA0ARTAKE1SFX8JGXAY
statistics:
opens: 123
open_rate: 0.8253
- groupings:
send_channel: email
campaign_id: 01GJTHNWVG93F3KNX71SJ4FDBB
campaign_message_id: 01GJTHNWVG93F3KNX71SJ4FDBB
statistics:
opens: 97
open_rate: 0.7562
required:
- results
relationships:
type: object
properties:
campaigns:
type: object
properties:
data:
type: array
items:
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/CampaignEnum'
id:
type: string
links:
$ref: '#/components/schemas/RelationshipLinks'
required:
- type
- attributes
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- data
FlowEnum:
type: string
enum:
- flow
FlowSeriesRequestDTOResourceObject:
type: object
properties:
type:
$ref: '#/components/schemas/FlowSeriesReportEnum'
attributes:
type: object
properties:
statistics:
description: List of statistics to query for. All rate statistics will be returned in fractional form [0.0, 1.0]
type: array
items:
type: string
enum:
- average_order_value
- bounce_rate
- bounced
- bounced_or_failed
- bounced_or_failed_rate
- click_rate
- click_to_open_rate
- clicks
- clicks_unique
- conversion_rate
- conversion_uniques
- conversion_value
- conversions
- delivered
- delivery_rate
- failed
- failed_rate
- message_segment_count_sum
- open_rate
- opens
- opens_unique
- recipients
- revenue_per_recipient
- spam_complaint_rate
- spam_complaints
- text_message_credit_usage_amount
- text_message_roi
- text_message_spend
- unsubscribe_rate
- unsubscribe_uniques
- unsubscribes
description: Defined reporting metric
example:
- opens
- open_rate
timeframe:
description: 'The time frame to pull data from (Max length: 1 year). See [available time frames](https://developers.klaviyo.com/en/reference/reporting_api_overview#available-time-frames).'
oneOf:
- $ref: '#/components/schemas/Timeframe'
- $ref: '#/components/schemas/CustomTimeframe'
interval:
description: 'The interval used to aggregate data within the series request.
If hourly is used, the timeframe cannot be longer than 7 days.
If daily is used, the timeframe cannot be longer than 60 days.
If monthly is used, the timeframe cannot be longer than 52 weeks.'
type: string
example: weekly
enum:
- daily
- hourly
- monthly
- weekly
conversion_metric_id:
description: ID of the metric to be used for conversion statistics
type: string
example: RESQ6t
group_by:
description: 'List of attributes to group the data by.
Allowed group-bys are flow_id, flow_message_id, flow_message_name, flow_name, send_channel, tag_id, tag_name, text_message_format, variation, variation_name.
If not passed in, the data will be grouped by flow_id, flow_message_id, send_channel.
The following group by attributes are required: flow_message_id, flow_id.'
type: array
items:
type: string
enum:
- flow_id
- flow_message_id
- flow_message_name
- flow_name
- send_channel
- tag_id
- tag_name
- text_message_format
- variation
- variation_name
description: Attributes to represent what is being grouped by for Flows
nullable: true
filter:
description: 'API filter string used to filter the query.
Scalar attributes (flow_id, flow_name, send_channel, flow_message_id, flow_message_name, text_message_format, variation, variation_name): Supported operators: equals, contains-any.
List attributes (tag_id, tag_name): Supported operators: contains-any, contains-all.
Only one filter can be used per attribute.
Only AND can be used as a combination operator.
Max of 100 items per list filter.
When filtering on send_channel, allowed values are email, sms, push-notification, whatsapp.'
type: string
example: and(equals(flow_id,"abc123"),contains-any(send_channel,["email","sms"]))
nullable: true
required:
- statistics
- timeframe
- interval
- conversion_metric_id
required:
- type
- attributes
CampaignEnum:
type: string
enum:
- campaign
FormValuesRequestDTO:
type: object
properties:
data:
$ref: '#/components/schemas/FormValuesRequestDTOResourceObject'
required:
- data
FlowMessageEnum:
type: string
enum:
- flow-message
FormSeriesRequestDTO:
type: object
properties:
data:
$ref: '#/components/schemas/FormSeriesRequestDTOResourceObject'
required:
- data
SegmentValuesReportEnum:
type: string
enum:
- segment-values-report
CustomTimeframe:
type: object
properties:
start:
description: A datetime that represents the start of a custom time frame. Offset is ignored and the company timezone is used.
type: string
format: date-time
example: '2022-11-08T00:00:00+00:00'
end:
description: A datetime that represents the end of a custom time frame. Offset is ignored and the company timezone is used.
type: string
format: date-time
example: '2022-11-08T00:00:00+00:00'
required:
- start
- end
ObjectLinks:
type: object
properties:
self:
type: string
format: uri
required:
- self
SegmentSeriesReportEnum:
type: string
enum:
- segment-series-report
SegmentSeriesRequestDTO:
type: object
properties:
data:
$ref: '#/components/schemas/SegmentSeriesRequestDTOResourceObject'
required:
- data
Timeframe:
type: object
properties:
key:
description: Pre-defined key that represents a set timeframe
type: string
enum:
- last_12_months
- last_30_days
- last_365_days
- last_3_months
- last_7_days
- last_90_days
- last_month
- last_week
- last_year
- this_month
- this_week
- this_year
- today
- yesterday
required:
- key
FlowSeriesRequestDTO:
type: object
properties:
data:
$ref: '#/components/schemas/FlowSeriesRequestDTOResourceObject'
required:
- data
FlowValuesReportEnum:
type: string
enum:
- flow-values-report
FormValuesRequestDTOResourceObject:
type: object
properties:
type:
$ref: '#/components/schemas/FormValuesReportEnum'
attributes:
type: object
properties:
statistics:
description: List of statistics to query for. All rate statistics will be returned in fractional form [0.0, 1.0]
type: array
items:
type: string
enum:
- closed_form
- closed_form_uniques
- qualified_form
- qualified_form_uniques
- submit_rate
- submits
- submitted_form_step
- submitted_form_step_uniques
- viewed_form
- viewed_form_step
- viewed_form_step_uniques
- viewed_form_uniques
description: Defined form reporting metric
example:
- viewed_form
- submit_rate
timeframe:
description: 'The time frame to pull data from (Max length: 1 year). See [available time frames](https://developers.klaviyo.com/en/reference/reporting_api_overview#available-time-frames).'
oneOf:
- $ref: '#/components/schemas/Timeframe'
- $ref: '#/components/schemas/CustomTimeframe'
group_by:
description: 'List of attributes to group the data by.
Allowed group-bys are form_id, form_version_id.
If not passed in, the data will be grouped by form_id.
If a group by has prerequisites, they must be passed in together. The prerequisites for form_version_id is form_id'
type: array
items:
type: string
enum:
- form_id
- form_version_id
description: Attributes to represent what is being grouped by for Forms
nullable: true
filter:
description: 'API filter string used to filter the query.
Allowed filters are form_id, form_version_id.
Allowed operators are equals, any.
Only one filter can be used per attribute, only AND can be used as a combination operator.
Max of 100 messages per ANY filter.'
type: string
example: and(equals(form_id,"abc123"),any(form_version_id,["xyz123","ghi456"]))
nullable: true
required:
- statistics
- timeframe
required:
- type
- attributes
CampaignValuesRequestDTO:
type: object
properties:
data:
$ref: '#/components/schemas/CampaignValuesRequestDTOResourceObject'
required:
- data
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