openapi: 3.0.2
info:
title: Klaviyo Accounts Webhooks 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: Webhooks
description: webhooks
paths:
/api/webhooks:
get:
operationId: get_webhooks
summary: Get Webhooks
description: 'Get all webhooks in an account.
*Rate limits*:
Burst: `1/s`
Steady: `15/m`
**Scopes:**
`webhooks:read`'
parameters:
- name: fields[webhook]
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_at
- description
- enabled
- endpoint_url
- name
- updated_at
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:
- webhook-topics
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/GetWebhookResponseCollectionCompoundDocument'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Webhooks
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 1/s
steady: 15/m
x-klaviyo-scopes:
- webhooks:read
post:
operationId: create_webhook
summary: Create Webhook
description: 'Create a new Webhook
*Rate limits*:
Burst: `1/s`
Steady: `15/m`
**Scopes:**
`webhooks: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/WebhookCreateQuery'
responses:
'201':
description: Success
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/PostWebhookResponse'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Webhooks
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 1/s
steady: 15/m
x-klaviyo-scopes:
- webhooks:write
/api/webhooks/{id}:
get:
operationId: get_webhook
summary: Get Webhook
description: 'Get the webhook with the given ID.
*Rate limits*:
Burst: `1/s`
Steady: `15/m`
**Scopes:**
`webhooks:read`'
parameters:
- name: id
in: path
description: The ID of the webhook.
required: true
schema:
description: The ID of the webhook.
type: string
- name: fields[webhook]
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_at
- description
- enabled
- endpoint_url
- name
- updated_at
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:
- webhook-topics
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/GetWebhookResponseCompoundDocument'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Webhooks
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 1/s
steady: 15/m
x-klaviyo-scopes:
- webhooks:read
patch:
operationId: update_webhook
summary: Update Webhook
description: 'Update the webhook with the given ID.
*Rate limits*:
Burst: `1/s`
Steady: `15/m`
**Scopes:**
`webhooks:write`'
parameters:
- name: id
in: path
description: The ID of the webhook.
required: true
schema:
description: The ID of the webhook.
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/WebhookPartialUpdateQuery'
responses:
'200':
description: Success
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/PatchWebhookResponse'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Webhooks
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 1/s
steady: 15/m
x-klaviyo-scopes:
- webhooks:write
delete:
operationId: delete_webhook
summary: Delete Webhook
description: 'Delete a webhook with the given ID.
*Rate limits*:
Burst: `1/s`
Steady: `15/m`
**Scopes:**
`webhooks:write`'
parameters:
- name: id
in: path
description: The ID of the webhook.
required: true
schema:
description: The ID of the webhook.
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:
'204':
description: Success
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Webhooks
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 1/s
steady: 15/m
x-klaviyo-scopes:
- webhooks:write
/api/webhook-topics:
get:
operationId: get_webhook_topics
summary: Get Webhook Topics
description: 'Get all webhook topics in a Klaviyo account.
*Rate limits*:
Burst: `1/s`
Steady: `15/m`
**Scopes:**
`webhooks:read`'
parameters:
- 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/GetWebhookTopicResponseCollection'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Webhooks
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 1/s
steady: 15/m
x-klaviyo-scopes:
- webhooks:read
/api/webhook-topics/{id}:
get:
operationId: get_webhook_topic
summary: Get Webhook Topic
description: 'Get the webhook topic with the given ID.
*Rate limits*:
Burst: `1/s`
Steady: `15/m`
**Scopes:**
`webhooks:read`'
parameters:
- name: id
in: path
description: The ID of the webhook topic.
required: true
schema:
description: The ID of the webhook topic.
type: string
example: event:klaviyo.sent_sms
- 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/GetWebhookTopicResponse'
4XX:
$ref: '#/components/responses/ClientError'
5XX:
$ref: '#/components/responses/ServerError'
tags:
- Webhooks
x-klaviyo-pre-release: None
x-klaviyo-ratelimit:
burst: 1/s
steady: 15/m
x-klaviyo-scopes:
- webhooks:read
components:
schemas:
WebhookPartialUpdateQuery:
type: object
properties:
data:
$ref: '#/components/schemas/WebhookPartialUpdateQueryResourceObject'
required:
- data
GetWebhookResponseCompoundDocument:
type: object
properties:
data:
$ref: '#/components/schemas/WebhookResponseObjectResource'
included:
type: array
items:
$ref: '#/components/schemas/WebhookTopicResponseObjectResource'
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- data
GetWebhookResponseCollectionCompoundDocument:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/WebhookResponseObjectResource'
links:
$ref: '#/components/schemas/CollectionLinks'
included:
type: array
items:
$ref: '#/components/schemas/WebhookTopicResponseObjectResource'
required:
- data
WebhookTopicResponseObjectResource:
type: object
properties:
type:
$ref: '#/components/schemas/WebhookTopicEnum'
id:
description: The ID of the webhook topic.
type: string
example: event:klaviyo.sent_sms
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- type
- id
- links
WebhookResponseObjectResource:
type: object
properties:
type:
$ref: '#/components/schemas/WebhookEnum'
id:
description: The ID of the webhook.
type: string
example: 01HF7AYTK76RHR4F17G6DGTRGF
attributes:
type: object
properties:
name:
description: A name for the webhook.
type: string
example: My Webhook
description:
description: A description for the webhook.
type: string
example: A webhook for sms events
nullable: true
endpoint_url:
description: The url to send webhook requests to, truncated for security.
type: string
example: https://www.example.com
enabled:
description: Is the webhook enabled.
type: boolean
created_at:
description: Date and time when the webhook was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
type: string
format: date-time
example: '2022-11-08T01:23:45+00:00'
nullable: true
updated_at:
description: Date and time when the webhook was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
type: string
format: date-time
example: '2022-11-08T01:23:45+00:00'
nullable: true
required:
- name
- endpoint_url
- enabled
relationships:
type: object
properties:
webhook-topics:
type: object
properties:
data:
type: array
items:
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/WebhookTopicEnum'
id:
description: A topic the webhook is subscribed to.
type: string
example: event:klaviyo.sent_sms
links:
$ref: '#/components/schemas/RelationshipLinks'
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- type
- id
- attributes
- links
WebhookCreateQuery:
type: object
properties:
data:
$ref: '#/components/schemas/WebhookCreateQueryResourceObject'
required:
- data
PostWebhookResponse:
type: object
properties:
data:
type: object
properties:
type:
$ref: '#/components/schemas/WebhookEnum'
id:
description: The ID of the webhook.
type: string
example: 01HF7AYTK76RHR4F17G6DGTRGF
attributes:
type: object
properties:
name:
description: A name for the webhook.
type: string
example: My Webhook
description:
description: A description for the webhook.
type: string
example: A webhook for sms events
nullable: true
endpoint_url:
description: The url to send webhook requests to, truncated for security.
type: string
example: https://www.example.com
enabled:
description: Is the webhook enabled.
type: boolean
created_at:
description: Date and time when the webhook was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
type: string
format: date-time
example: '2022-11-08T01:23:45+00:00'
nullable: true
updated_at:
description: Date and time when the webhook was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
type: string
format: date-time
example: '2022-11-08T01:23:45+00:00'
nullable: true
required:
- name
- endpoint_url
- enabled
relationships:
type: object
properties:
webhook-topics:
type: object
properties:
data:
type: array
items:
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/WebhookTopicEnum'
id:
description: A topic the webhook is subscribed to.
type: string
example: event:klaviyo.sent_sms
links:
$ref: '#/components/schemas/RelationshipLinks'
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- type
- id
- attributes
- links
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- data
WebhookTopicEnum:
type: string
enum:
- webhook-topic
WebhookPartialUpdateQueryResourceObject:
type: object
properties:
type:
$ref: '#/components/schemas/WebhookEnum'
id:
description: The ID of the webhook.
type: string
attributes:
type: object
properties:
name:
description: A name for the webhook.
type: string
nullable: true
description:
description: A description for the webhook.
type: string
nullable: true
endpoint_url:
description: A url to send webhook calls to. Must be https.
type: string
example: https://www.example.com/example/path
nullable: true
secret_key:
description: A secret key, that will be used for webhook request signing.
type: string
nullable: true
enabled:
description: Is the webhook enabled.
type: boolean
nullable: true
relationships:
type: object
properties:
webhook-topics:
type: object
properties:
data:
type: array
items:
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/WebhookTopicEnum'
id:
description: A list of topics to subscribe to.
type: string
example: event:klaviyo.sent_sms
required:
- type
- id
- attributes
GetWebhookTopicResponse:
type: object
properties:
data:
$ref: '#/components/schemas/WebhookTopicResponseObjectResource'
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- data
PatchWebhookResponse:
type: object
properties:
data:
type: object
properties:
type:
$ref: '#/components/schemas/WebhookEnum'
id:
description: The ID of the webhook.
type: string
example: 01HF7AYTK76RHR4F17G6DGTRGF
attributes:
type: object
properties:
name:
description: A name for the webhook.
type: string
example: My Webhook
description:
description: A description for the webhook.
type: string
example: A webhook for sms events
nullable: true
endpoint_url:
description: The url to send webhook requests to, truncated for security.
type: string
example: https://www.example.com
enabled:
description: Is the webhook enabled.
type: boolean
created_at:
description: Date and time when the webhook was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
type: string
format: date-time
example: '2022-11-08T01:23:45+00:00'
nullable: true
updated_at:
description: Date and time when the webhook was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)
type: string
format: date-time
example: '2022-11-08T01:23:45+00:00'
nullable: true
required:
- name
- endpoint_url
- enabled
relationships:
type: object
properties:
webhook-topics:
type: object
properties:
data:
type: array
items:
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/WebhookTopicEnum'
id:
description: A topic the webhook is subscribed to.
type: string
example: event:klaviyo.sent_sms
links:
$ref: '#/components/schemas/RelationshipLinks'
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- type
- id
- attributes
- links
links:
$ref: '#/components/schemas/ObjectLinks'
required:
- data
WebhookCreateQueryResourceObject:
type: object
properties:
type:
$ref: '#/components/schemas/WebhookEnum'
attributes:
type: object
properties:
name:
description: A name for the webhook.
type: string
example: My Webhook
description:
description: A description for the webhook.
type: string
example: A webhook for sms events
nullable: true
endpoint_url:
description: A url to send webhook calls to. Must be https.
type: string
example: https://www.example.com/example/path
secret_key:
description: A secret key, that will be used for webhook request signing.
type: string
example: INSERT_SECRET_KEY
required:
- name
- endpoint_url
- secret_key
relationships:
type: object
properties:
webhook-topics:
type: object
properties:
data:
type: array
items:
type: object
required:
- type
- id
properties:
type:
$ref: '#/components/schemas/WebhookTopicEnum'
id:
description: A list of topics to subscribe to.
type: string
example: event:klaviyo.sent_sms
required:
- webhook-topics
required:
- type
- attributes
- relationships
WebhookEnum:
type: string
enum:
- webhook
ObjectLinks:
type: object
properties:
self:
type: string
format: uri
required:
- self
CollectionLinks:
type: object
properties:
self:
type: string
format: uri
first:
type: string
format: uri
last:
type: string
format: uri
prev:
type: string
format: uri
next:
type: string
format: uri
required:
- self
GetWebhookTopicResponseCollection:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/WebhookTopicResponseObjectResource'
links:
$ref: '#/components/schemas/CollectionLinks'
required:
- data
RelationshipLinks:
type: object
properties:
self:
type: string
format: uri
related:
type: string
format: uri
required:
- self
- related
responses:
ClientError:
description: Client Error
content:
application/vnd.api+json:
schema:
type: object
properties:
errors:
type: array
items:
type: object
required:
- id
- code
- title
- detail
properties:
id:
type: string
code:
type: string
title:
type: string
detail:
type: string
source:
type: object
properties:
pointer:
type: string
parameter:
type: string
required:
- errors
ServerError:
description: Server Error
content:
application/vnd.api+json:
schema:
type: object
properties:
errors:
type: array
items:
type: object
required:
- id
- code
- title
- detail
properties:
id:
type: string
code:
type: string
title:
type: string
detail:
type: string
source:
type: object
properties:
pointer:
type: string
parameter:
type: string
required:
- errors
securitySchemes:
Klaviyo-API-Key:
type: apiKey
in: header
name: Authorization
description: Private key authentication for /api/ endpoints is performed by setting the `Authorization` header to `Klaviyo-API-Key your-private-api-key`
For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#authentication
x-default: Klaviyo-API-Key your-private-api-key
x-readme:
explorer-enabled: false
proxy-enabled: true
samples-enabled: true