Skip to main content
Every klaviyo.api.* operation is listed below with parameter shapes and return types from the plugin Zod schemas.
New to Corsair? See API access, authentication, and error handling.

Events

create

events.create Record an event against a profile by metric name; Klaviyo creates the metric on first use, and the event can trigger flows Risk: write
Input metric is a name, not an id: Klaviyo creates the metric if it is new. properties is required by the spec, and the profile must be given by id or email. Output

get

events.get Read one event by id, with its properties and timestamp Risk: read
Input Output

list

events.list Page the events recorded for the account, filtered by metric, profile or time Risk: read
Input Output

Lists

addProfiles

lists.addProfiles Add up to 1000 profiles to a list by id; adding does not change their subscription consent Risk: write
Input Output

create

lists.create Create an empty marketing list with a name Risk: write
Input Output

get

lists.get Read one marketing list by id, with its name and timestamps Risk: read
Input Output

list

lists.list List the marketing lists on the account, filtered and cursor-paged Risk: read
Input Output

profiles

lists.profiles Page the profiles that belong to a list Risk: read
Input Output

remove

lists.remove Delete a list; the profiles on it stay on the account but lose that membership, and the list cannot be restored Risk: destructive · Irreversible
Input Output

removeProfiles

lists.removeProfiles Remove up to 1000 profiles from a list; their submission or consent elsewhere is untouched Risk: destructive · Irreversible
Input Output

update

lists.update Rename an existing list Risk: write
Input Output

Metrics

aggregate

metrics.aggregate Aggregate a metric into time buckets, such as a daily count over a date range, optionally grouped by a dimension Risk: read
Input filter must carry a date range, and Klaviyo rejects the call without one. dates in the response are the bucket start times, and each row of data holds its measurement arrays in the same order. Output

get

metrics.get Read one metric by id Risk: read
Input Output

list

metrics.list List the metrics defined on the account, such as Placed Order Risk: read
Input Output

Profiles

create

profiles.create Create a profile from an email, phone number or external id, with names, location and custom properties; Klaviyo merges a duplicate onto the existing profile Risk: write
Input
Output

get

profiles.get Read one profile by id, optionally including its conversations or push tokens Risk: read
Input Output

list

profiles.list Search profiles with a Klaviyo filter expression, sorted and cursor-paged; returns each profile with its attributes and subscription state Risk: read
Input Output

subscribe

profiles.subscribe Subscribe a profile to a list over email or SMS; this grants marketing consent through a queued bulk job, so it confirms the request was accepted rather than returning the profile Risk: write
Input This grants marketing consent, so Klaviyo queues a bulk job and answers 202 with no body. The consent is not immediate, and there is no job id to poll. Output

update

profiles.update Change a profile name, location, custom properties or identifiers by id Risk: write
Input
Output

Segments

create

segments.create Create a segment from a condition group; Klaviyo evaluates it server-side, so the segment is not immediately populated Risk: write
Input definition is a JSON:API condition group, not the filter string the list routes take. Klaviyo evaluates it asynchronously. Output

get

segments.get Read one segment by id, with its active flag Risk: read
Input Output

list

segments.list List the segments on the account, filtered and cursor-paged Risk: read
Input Output

profiles

segments.profiles Page the profiles that currently match a segment Risk: read
Input Output

remove

segments.remove Delete a segment; its definition is lost and cannot be restored Risk: destructive · Irreversible
Input Output

update

segments.update Change a segment name or its condition group Risk: write
Input Output

Tag Groups

create

tagGroups.create Create a tag group, optionally exclusive so only one of its tags applies Risk: write
Input Output

list

tagGroups.list List the tag groups, which namespace tags and can allow only one tag each Risk: read
Input Output

remove

tagGroups.remove Delete a tag group; the tags inside it go with it and cannot be restored Risk: destructive · Irreversible
Input Output

Tags

create

tags.create Create a tag with a name, unique within its tag group Risk: write
Input Output

get

tags.get Read one tag by id, with its name and timestamps Risk: read
Input Output

list

tags.list List the tags on the account, filtered and cursor-paged Risk: read
Input Output

remove

tags.remove Delete a tag; it detaches from every campaign, flow, list and segment that carried it Risk: destructive · Irreversible
Input Output

update

tags.update Rename a tag; its group and attachments stay as they are Risk: write
Input Klaviyo answers 204 with no body, so this returns { success: true } rather than the renamed tag. Output

Webhooks

create

webhooks.create Create a webhook with an endpoint URL, a shared secret and one or more topics; Klaviyo signs each delivery with that secret Risk: write
Input The spec marks a secret key and at least one topic required. Klaviyo signs each delivery with secretKey, so keep it and verify on your side. Output

get

webhooks.get Read one webhook by id Risk: read
Input Output

list

webhooks.list List the webhooks configured on the account Risk: read
Input Output

remove

webhooks.remove Delete a webhook; deliveries stop immediately and it cannot be restored Risk: destructive · Irreversible
Input Output

update

webhooks.update Change a webhook name, description, endpoint URL or enabled flag Risk: write
Input Output

Webhook Topics

list

webhookTopics.list List the topics a webhook can subscribe to, such as Placed Order Risk: read
Input: empty object Output