The Klaviyo CLI lets you build, test, and manage your Klaviyo integration from the terminal.
With the CLI, you can:
Call every Klaviyo API operation as a typed command (generated from the OpenAPI spec )
Authenticate once per account and switch between accounts
Script against the API with built-in jq filtering and cursor pagination
Hit any endpoint raw with klaviyo api, including ones newer than your CLI build
Binary releases (amd64 and arm64) are on the Releases page . The commands below stream the release straight to the install directory with the GitHub CLI — they leave nothing behind in the working directory and are safe to re-run for upgrades.
macOS
# Intel Macs: darwin_amd64
gh release download -R klaviyo/klaviyo-cli --pattern ' *darwin_arm64.tar.gz' -O - | sudo tar -xz -C /usr/local/bin klaviyo
Linux
# ARM: linux_arm64
gh release download -R klaviyo/klaviyo-cli --pattern ' *linux_amd64.tar.gz' -O - | sudo tar -xz -C /usr/local/bin klaviyo
-C can point at any directory on your PATH; drop sudo for one you own.
Windows (PowerShell)
gh release download - R klaviyo/ klaviyo- cli -- pattern ' *windows_amd64.zip' - O klaviyo- cli.zip -- clobber # ARM: windows_arm64
Expand-Archive klaviyo- cli.zip - DestinationPath klaviyo- cli- release - Force
Move-Item - Force klaviyo- cli- release\klaviyo.exe " $env: LOCALAPPDATA \Microsoft\WindowsApps\" # or any directory on your PATH
Downloading an archive from the Releases page by hand works too — unpack it and put the klaviyo binary on your PATH. The binaries are not notarized yet, so macOS quarantines browser-downloaded files (gh downloads are not quarantined) — clear it with sudo xattr -d com.apple.quarantine /usr/local/bin/klaviyo.
From source (Go 1.25+):
go install github.com/klaviyo/klaviyo-cli/cmd/klaviyo@latest
To upgrade, re-run the install command for your platform — it fetches the latest release and overwrites the installed binary in place (same for go install ...@latest). Upgrade through the channel you installed with.
The CLI checks GitHub for a newer release at most once per day and prints a notice to stderr — only on interactive terminals, never in CI or when piped. It never self-updates. Opt out of the check with KLAVIYO_NO_UPDATE_NOTIFIER=1.
# Store a private API key for an account (interactive; verified before saving)
klaviyo auth login
# In scripts, CI, or agents, skip login and set KLAVIYO_API_KEY instead
export KLAVIYO_API_KEY=pk_...
# Confirm credentials
klaviyo auth status
# Typed commands for every API operation
klaviyo metrics list
klaviyo profiles list --filter ' equals(email,"someone@example.com")'
klaviyo profiles get 01ABC123 --fields-profile email,first_name
klaviyo lists list --paginate # follow cursors, merge all pages
klaviyo lists create --name Newsletter # body attributes are flags
klaviyo profiles create --email someone@example.com --location.city Boston
klaviyo events create -d @event.json # or supply the whole body yourself
# Filter any response with the built-in jq (no jq install needed)
klaviyo lists list --jq ' .data[].attributes.name'
klaviyo profiles list --paginate --jq ' .data | length'
# Or call any endpoint raw
klaviyo api /api/metrics/
klaviyo api POST /api/events/ -d @event.json
Core commands:
Command
Description
klaviyo auth login
Store an API key for a named account (verified first)
klaviyo auth logout <account>
Remove an account and its key
klaviyo auth list
List configured accounts
klaviyo auth switch <account>
Set the default account
klaviyo auth status
Verify credentials for the selected account
klaviyo api [method] <path>
Raw authenticated API request (defaults to GET)
klaviyo config
Show or edit CLI configuration (--list, --set, -e)
klaviyo open <shortcut>
Open Klaviyo dashboard or docs pages in your browser
klaviyo completion <shell>
Generate shell completion scripts
klaviyo version
Print the CLI version
Resource commands cover every JSON operation in the Klaviyo API — one command per operation, 344 commands across 23 groups. Not covered (non-JSON request body): Create Agent Knowledge File (beta), Upload Image From File. Expand a group for its commands (run klaviyo <group> <command> --help for arguments and flags):
accounts — 2 commands
Command
Description
klaviyo accounts get
Get Account
klaviyo accounts list
Get Accounts
campaigns — 26 commands
Command
Description
klaviyo campaigns assign-template-to-campaign-message
Assign Template to Campaign Message
klaviyo campaigns cancel-campaign-send
Cancel Campaign Send
klaviyo campaigns create
Create Campaign
klaviyo campaigns create-campaign-clone
Create Campaign Clone
klaviyo campaigns delete
Delete Campaign
klaviyo campaigns get
Get Campaign
klaviyo campaigns get-campaign-for-campaign-message
Get Campaign for Campaign Message
klaviyo campaigns get-campaign-id-for-campaign-message
Get Campaign ID for Campaign Message
klaviyo campaigns get-campaign-message
Get Campaign Message
klaviyo campaigns get-campaign-recipient-estimation
Get Campaign Recipient Estimation
klaviyo campaigns get-campaign-recipient-estimation-job
Get Campaign Recipient Estimation Job
klaviyo campaigns get-campaign-send-job
Get Campaign Send Job
klaviyo campaigns get-image-for-campaign-message
Get Image for Campaign Message
klaviyo campaigns get-image-id-for-campaign-message
Get Image ID for Campaign Message
klaviyo campaigns get-message-ids-for-campaign
Get Message IDs for Campaign
klaviyo campaigns get-messages-for-campaign
Get Messages for Campaign
klaviyo campaigns get-tag-ids-for-campaign
Get Tag IDs for Campaign
klaviyo campaigns get-tags-for-campaign
Get Tags for Campaign
klaviyo campaigns get-template-for-campaign-message
Get Template for Campaign Message
klaviyo campaigns get-template-id-for-campaign-message
Get Template ID for Campaign Message
klaviyo campaigns list
Get Campaigns
klaviyo campaigns refresh-campaign-recipient-estimation
Refresh Campaign Recipient Estimation
klaviyo campaigns send-campaign
Send Campaign
klaviyo campaigns update
Update Campaign
klaviyo campaigns update-campaign-message
Update Campaign Message
klaviyo campaigns update-image-for-campaign-message
Update Image for Campaign Message
catalogs — 55 commands
Command
Description
klaviyo catalogs add-categories-to-catalog-item
Add Categories to Catalog Item
klaviyo catalogs add-items-to-catalog-category
Add Items to Catalog Category
klaviyo catalogs bulk-create-catalog-categories
Bulk Create Catalog Categories
klaviyo catalogs bulk-create-catalog-items
Bulk Create Catalog Items
klaviyo catalogs bulk-create-catalog-variants
Bulk Create Catalog Variants
klaviyo catalogs bulk-delete-catalog-categories
Bulk Delete Catalog Categories
klaviyo catalogs bulk-delete-catalog-items
Bulk Delete Catalog Items
klaviyo catalogs bulk-delete-catalog-variants
Bulk Delete Catalog Variants
klaviyo catalogs bulk-update-catalog-categories
Bulk Update Catalog Categories
klaviyo catalogs bulk-update-catalog-items
Bulk Update Catalog Items
klaviyo catalogs bulk-update-catalog-variants
Bulk Update Catalog Variants
klaviyo catalogs create-back-in-stock-subscription
Create Back In Stock Subscription
klaviyo catalogs create-catalog-category
Create Catalog Category
klaviyo catalogs create-catalog-item
Create Catalog Item
klaviyo catalogs create-catalog-variant
Create Catalog Variant
klaviyo catalogs delete-catalog-category
Delete Catalog Category
klaviyo catalogs delete-catalog-item
Delete Catalog Item
klaviyo catalogs delete-catalog-variant
Delete Catalog Variant
klaviyo catalogs get-bulk-create-catalog-items-job
Get Bulk Create Catalog Items Job
klaviyo catalogs get-bulk-create-catalog-items-jobs
Get Bulk Create Catalog Items Jobs
klaviyo catalogs get-bulk-create-categories-job
Get Bulk Create Categories Job
klaviyo catalogs get-bulk-create-categories-jobs
Get Bulk Create Categories Jobs
klaviyo catalogs get-bulk-create-variants-job
Get Bulk Create Variants Job
klaviyo catalogs get-bulk-create-variants-jobs
Get Bulk Create Variants Jobs
klaviyo catalogs get-bulk-delete-catalog-items-job
Get Bulk Delete Catalog Items Job
klaviyo catalogs get-bulk-delete-catalog-items-jobs
Get Bulk Delete Catalog Items Jobs
klaviyo catalogs get-bulk-delete-categories-job
Get Bulk Delete Categories Job
klaviyo catalogs get-bulk-delete-categories-jobs
Get Bulk Delete Categories Jobs
klaviyo catalogs get-bulk-delete-variants-job
Get Bulk Delete Variants Job
klaviyo catalogs get-bulk-delete-variants-jobs
Get Bulk Delete Variants Jobs
klaviyo catalogs get-bulk-update-catalog-items-job
Get Bulk Update Catalog Items Job
klaviyo catalogs get-bulk-update-catalog-items-jobs
Get Bulk Update Catalog Items Jobs
klaviyo catalogs get-bulk-update-categories-job
Get Bulk Update Categories Job
klaviyo catalogs get-bulk-update-categories-jobs
Get Bulk Update Categories Jobs
klaviyo catalogs get-bulk-update-variants-job
Get Bulk Update Variants Job
klaviyo catalogs get-bulk-update-variants-jobs
Get Bulk Update Variants Jobs
klaviyo catalogs get-catalog-categories
Get Catalog Categories
klaviyo catalogs get-catalog-category
Get Catalog Category
klaviyo catalogs get-catalog-item
Get Catalog Item
klaviyo catalogs get-catalog-items
Get Catalog Items
klaviyo catalogs get-catalog-variant
Get Catalog Variant
klaviyo catalogs get-catalog-variants
Get Catalog Variants
klaviyo catalogs get-categories-for-catalog-item
Get Categories for Catalog Item
klaviyo catalogs get-category-ids-for-catalog-item
Get Category IDs for Catalog Item
klaviyo catalogs get-item-ids-for-catalog-category
Get Item IDs for Catalog Category
klaviyo catalogs get-items-for-catalog-category
Get Items for Catalog Category
klaviyo catalogs get-variant-ids-for-catalog-item
Get Variant IDs for Catalog Item
klaviyo catalogs get-variants-for-catalog-item
Get Variants for Catalog Item
klaviyo catalogs remove-categories-from-catalog-item
Remove Categories from Catalog Item
klaviyo catalogs remove-items-from-catalog-category
Remove Items from Catalog Category
klaviyo catalogs update-catalog-category
Update Catalog Category
klaviyo catalogs update-catalog-item
Update Catalog Item
klaviyo catalogs update-catalog-variant
Update Catalog Variant
klaviyo catalogs update-categories-for-catalog-item
Update Categories for Catalog Item
klaviyo catalogs update-items-for-catalog-category
Update Items for Catalog Category
client — 12 commands
Command
Description
klaviyo client bulk-create-client-events
Bulk Create Client Events
klaviyo client create-client-back-in-stock-subscription
Create Client Back In Stock Subscription
klaviyo client create-client-event
Create Client Event
klaviyo client create-client-profile
Create or Update Client Profile
klaviyo client create-client-push-token
Create or Update Client Push Token
klaviyo client create-client-review
Create Client Review
klaviyo client create-client-subscription
Create Client Subscription
klaviyo client get-client-geofences
Get Client Geofences
klaviyo client get-client-ip-allowlist
Get Client IP Allowlist
klaviyo client get-client-review-values-reports
Get Client Review Values Reports
klaviyo client get-client-reviews
Get Client Reviews
klaviyo client unregister-client-push-token
Unregister Client Push Token
conversations — 1 command
Command
Description
klaviyo conversations create-conversation-message
Create Conversation Message
coupons — 17 commands
Command
Description
klaviyo coupons bulk-create-coupon-codes
Bulk Create Coupon Codes
klaviyo coupons create
Create Coupon
klaviyo coupons create-coupon-code
Create Coupon Code
klaviyo coupons delete
Delete Coupon
klaviyo coupons delete-coupon-code
Delete Coupon Code
klaviyo coupons get
Get Coupon
klaviyo coupons get-bulk-create-coupon-code-jobs
Get Bulk Create Coupon Code Jobs
klaviyo coupons get-bulk-create-coupon-codes-job
Get Bulk Create Coupon Codes Job
klaviyo coupons get-coupon-code
Get Coupon Code
klaviyo coupons get-coupon-code-ids-for-coupon
Get Coupon Code IDs for Coupon
klaviyo coupons get-coupon-codes
Get Coupon Codes
klaviyo coupons get-coupon-codes-for-coupon
Get Coupon Codes for Coupon
klaviyo coupons get-coupon-for-coupon-code
Get Coupon For Coupon Code
klaviyo coupons get-coupon-id-for-coupon-code
Get Coupon ID for Coupon Code
klaviyo coupons list
Get Coupons
klaviyo coupons update
Update Coupon
klaviyo coupons update-coupon-code
Update Coupon Code
custom-objects — 39 commands
Command
Description
klaviyo custom-objects bulk-create-data-source-records
Bulk Create Data Source Records
klaviyo custom-objects bulk-delete-object-records
Bulk Delete Object Records
klaviyo custom-objects create-data-source
Create Data Source
klaviyo custom-objects create-data-source-record
Create Data Source Record
klaviyo custom-objects create-object-schema
Create Object Schema
klaviyo custom-objects create-object-schema-relationship
Create Object Schema Relationship
klaviyo custom-objects create-object-type
Create Object Type
klaviyo custom-objects create-profile-schema-relationship
Create Profile Schema Relationship
klaviyo custom-objects delete-data-source
Delete Data Source
klaviyo custom-objects delete-object-schema-relationship
Delete Object Schema Relationship
klaviyo custom-objects delete-object-type
Delete Object Type
klaviyo custom-objects delete-profile-schema-relationship
Delete Profile Schema Relationship
klaviyo custom-objects get-current-schema-for-object-type
Get Current Schema for Object Type
klaviyo custom-objects get-current-schema-id-for-object-type
Get Current Schema ID for Object Type
klaviyo custom-objects get-data-source
Get Data Source
klaviyo custom-objects get-data-sources
Get Data Sources
klaviyo custom-objects get-draft-schema-for-object-type
Get Draft Schema for Object Type
klaviyo custom-objects get-draft-schema-id-for-object-type
Get Draft Schema ID for Object Type
klaviyo custom-objects get-ingestion-log-ids-for-object-type
Get Ingestion Log IDs for Object Type
klaviyo custom-objects get-ingestion-logs-for-object-type
Get Ingestion Logs for Object Type
klaviyo custom-objects get-object-record
Get Object Record
klaviyo custom-objects get-object-schema
Get Object Schema
klaviyo custom-objects get-object-schema-relationships
Get Object Schema Relationships
klaviyo custom-objects get-object-type
Get Object Type
klaviyo custom-objects get-object-type-relationships
Get Object Type Relationships
klaviyo custom-objects get-object-types
Get Object Types
klaviyo custom-objects get-profile-schema-relationships
Get Profile Schema Relationships
klaviyo custom-objects get-profile-type-relationships
Get Profile Type Relationships
klaviyo custom-objects get-record-ids-for-object-type
Get Record IDs for Object Type
klaviyo custom-objects get-records-for-object-type
Get Records for Object Type
klaviyo custom-objects get-schema-version-ids-for-object-type
Get Schema Version IDs for Object Type
klaviyo custom-objects get-schema-versions-for-object-type
Get Schema Versions for Object Type
klaviyo custom-objects get-source-mapping
Get Source Mapping
klaviyo custom-objects get-source-mapping-for-object-schema
Get Source Mapping for Object Schema
klaviyo custom-objects get-source-mapping-id-for-object-schema
Get Source Mapping ID for Object Schema
klaviyo custom-objects update-object-schema
Update Object Schema
klaviyo custom-objects update-object-schema-relationship
Update Object Schema Relationship
klaviyo custom-objects update-profile-schema-relationship
Update Profile Schema Relationship
klaviyo custom-objects update-source-mapping
Update Source Mapping
data-privacy — 1 command
Command
Description
klaviyo data-privacy request-profile-deletion
Request Profile Deletion
events — 8 commands
Command
Description
klaviyo events bulk-create-events
Bulk Create Events
klaviyo events create
Create Event
klaviyo events get
Get Event
klaviyo events get-metric-for-event
Get Metric for Event
klaviyo events get-metric-id-for-event
Get Metric ID for Event
klaviyo events get-profile-for-event
Get Profile for Event
klaviyo events get-profile-id-for-event
Get Profile ID for Event
klaviyo events list
Get Events
flows — 21 commands
Command
Description
klaviyo flows create
Create Flow
klaviyo flows delete
Delete Flow
klaviyo flows delete-flow-action
Delete Flow Action
klaviyo flows get
Get Flow
klaviyo flows get-action-for-flow-message
Get Action for Flow Message
klaviyo flows get-action-id-for-flow-message
Get Action ID for Flow Message
klaviyo flows get-action-ids-for-flow
Get Action IDs for Flow
klaviyo flows get-actions-for-flow
Get Actions for Flow
klaviyo flows get-flow-action
Get Flow Action
klaviyo flows get-flow-action-messages
Get Messages For Flow Action
klaviyo flows get-flow-for-flow-action
Get Flow for Flow Action
klaviyo flows get-flow-id-for-flow-action
Get Flow ID for Flow Action
klaviyo flows get-flow-message
Get Flow Message
klaviyo flows get-message-ids-for-flow-action
Get Message IDs for Flow Action
klaviyo flows get-tag-ids-for-flow
Get Tag IDs for Flow
klaviyo flows get-tags-for-flow
Get Tags for Flow
klaviyo flows get-template-for-flow-message
Get Template for Flow Message
klaviyo flows get-template-id-for-flow-message
Get Template ID for Flow Message
klaviyo flows list
Get Flows
klaviyo flows update
Update Flow Status
klaviyo flows update-flow-action
Update Flow Action
forms — 9 commands
Command
Description
klaviyo forms create
Create Form
klaviyo forms delete
Delete Form
klaviyo forms get
Get Form
klaviyo forms get-form-for-form-version
Get Form for Form Version
klaviyo forms get-form-id-for-form-version
Get Form ID for Form Version
klaviyo forms get-form-version
Get Form Version
klaviyo forms get-version-ids-for-form
Get Version IDs for Form
klaviyo forms get-versions-for-form
Get Versions for Form
klaviyo forms list
Get Forms
images — 4 commands
Command
Description
klaviyo images get
Get Image
klaviyo images list
Get Images
klaviyo images update
Update Image
klaviyo images upload-image-from-url
Upload Image From URL
lists — 13 commands
Command
Description
klaviyo lists add-profiles-to-list
Add Profiles to List
klaviyo lists create
Create List
klaviyo lists delete
Delete List
klaviyo lists get
Get List
klaviyo lists get-flows-triggered-by-list
Get Flows Triggered by List
klaviyo lists get-ids-for-flows-triggered-by-list
Get IDs for Flows Triggered by List
klaviyo lists get-profile-ids-for-list
Get Profile IDs for List
klaviyo lists get-profiles-for-list
Get Profiles for List
klaviyo lists get-tag-ids-for-list
Get Tag IDs for List
klaviyo lists get-tags-for-list
Get Tags for List
klaviyo lists list
Get Lists
klaviyo lists remove-profiles-from-list
Remove Profiles from List
klaviyo lists update
Update List
metrics — 24 commands
Command
Description
klaviyo metrics create-custom-metric
Create Custom Metric
klaviyo metrics delete-custom-metric
Delete Custom Metric
klaviyo metrics get
Get Metric
klaviyo metrics get-custom-metric
Get Custom Metric
klaviyo metrics get-custom-metric-for-mapped-metric
Get Custom Metric for Mapped Metric
klaviyo metrics get-custom-metric-id-for-mapped-metric
Get Custom Metric ID for Mapped Metric
klaviyo metrics get-custom-metrics
Get Custom Metrics
klaviyo metrics get-flows-triggered-by-metric
Get Flows Triggered by Metric
klaviyo metrics get-ids-for-flows-triggered-by-metric
Get IDs for Flows Triggered by Metric
klaviyo metrics get-mapped-metric
Get Mapped Metric
klaviyo metrics get-mapped-metrics
Get Mapped Metrics
klaviyo metrics get-metric-for-mapped-metric
Get Metric for Mapped Metric
klaviyo metrics get-metric-for-metric-property
Get Metric for Metric Property
klaviyo metrics get-metric-id-for-mapped-metric
Get Metric ID for Mapped Metric
klaviyo metrics get-metric-id-for-metric-property
Get Metric ID for Metric Property
klaviyo metrics get-metric-ids-for-custom-metric
Get Metric IDs for Custom Metric
klaviyo metrics get-metric-property
Get Metric Property
klaviyo metrics get-metrics-for-custom-metric
Get Metrics for Custom Metric
klaviyo metrics get-properties-for-metric
Get Properties for Metric
klaviyo metrics get-property-ids-for-metric
Get Property IDs for Metric
klaviyo metrics list
Get Metrics
klaviyo metrics query-metric-aggregates
Query Metric Aggregates
klaviyo metrics update-custom-metric
Update Custom Metric
klaviyo metrics update-mapped-metric
Update Mapped Metric
profiles — 38 commands
Command
Description
klaviyo profiles bulk-import-profiles
Bulk Import Profiles
klaviyo profiles bulk-subscribe-profiles
Bulk Subscribe Profiles
klaviyo profiles bulk-suppress-profiles
Bulk Suppress Profiles
klaviyo profiles bulk-unsubscribe-profiles
Bulk Unsubscribe Profiles
klaviyo profiles bulk-unsuppress-profiles
Bulk Unsuppress Profiles
klaviyo profiles create
Create Profile
klaviyo profiles create-or-update-profile
Create or Update Profile
klaviyo profiles create-push-token
Create or Update Push Token
klaviyo profiles delete-push-token
Delete Push Token
klaviyo profiles get
Get Profile
klaviyo profiles get-bulk-import-profiles-job
Get Bulk Import Profiles Job
klaviyo profiles get-bulk-import-profiles-jobs
Get Bulk Import Profiles Jobs
klaviyo profiles get-bulk-suppress-profiles-job
Get Bulk Suppress Profiles Job
klaviyo profiles get-bulk-suppress-profiles-jobs
Get Bulk Suppress Profiles Jobs
klaviyo profiles get-bulk-unsuppress-profiles-job
Get Bulk Unsuppress Profiles Job
klaviyo profiles get-bulk-unsuppress-profiles-jobs
Get Bulk Unsuppress Profiles Jobs
klaviyo profiles get-conversation-for-profile
Get Conversation for Profile
klaviyo profiles get-conversation-id-for-profile
Get Conversation ID for Profile
klaviyo profiles get-conversation-ids-for-profile
Get Conversation IDs for Profile
klaviyo profiles get-conversations-for-profile
Get Conversations for Profile
klaviyo profiles get-errors-for-bulk-import-profiles-job
Get Errors for Bulk Import Profiles Job
klaviyo profiles get-list-for-bulk-import-profiles-job
Get List for Bulk Import Profiles Job
klaviyo profiles get-list-ids-for-bulk-import-profiles-job
Get List IDs for Bulk Import Profiles Job
klaviyo profiles get-list-ids-for-profile
Get List IDs for Profile
klaviyo profiles get-lists-for-profile
Get Lists for Profile
klaviyo profiles get-profile-for-push-token
Get Profile for Push Token
klaviyo profiles get-profile-id-for-push-token
Get Profile ID for Push Token
klaviyo profiles get-profile-ids-for-bulk-import-profiles-job
Get Profile IDs for Bulk Import Profiles Job
klaviyo profiles get-profiles-for-bulk-import-profiles-job
Get Profiles for Bulk Import Profiles Job
klaviyo profiles get-push-token
Get Push Token
klaviyo profiles get-push-token-ids-for-profile
Get Push Token IDs for Profile
klaviyo profiles get-push-tokens
Get Push Tokens
klaviyo profiles get-push-tokens-for-profile
Get Push Tokens for Profile
klaviyo profiles get-segment-ids-for-profile
Get Segment IDs for Profile
klaviyo profiles get-segments-for-profile
Get Segments for Profile
klaviyo profiles list
Get Profiles
klaviyo profiles merge-profiles
Merge Profiles
klaviyo profiles update
Update Profile
reporting — 7 commands
Command
Description
klaviyo reporting query-campaign-values
Query Campaign Values
klaviyo reporting query-flow-series
Query Flow Series
klaviyo reporting query-flow-values
Query Flow Values
klaviyo reporting query-form-series
Query Form Series
klaviyo reporting query-form-values
Query Form Values
klaviyo reporting query-segment-series
Query Segment Series
klaviyo reporting query-segment-values
Query Segment Values
reviews — 3 commands
Command
Description
klaviyo reviews get
Get Review
klaviyo reviews list
Get Reviews
klaviyo reviews update
Update Review
segments — 11 commands
Command
Description
klaviyo segments create
Create Segment
klaviyo segments delete
Delete Segment
klaviyo segments get
Get Segment
klaviyo segments get-flows-triggered-by-segment
Get Flows Triggered by Segment
klaviyo segments get-ids-for-flows-triggered-by-segment
Get IDs for Flows Triggered by Segment
klaviyo segments get-profile-ids-for-segment
Get Profile IDs for Segment
klaviyo segments get-profiles-for-segment
Get Profiles for Segment
klaviyo segments get-tag-ids-for-segment
Get Tag IDs for Segment
klaviyo segments get-tags-for-segment
Get Tags for Segment
klaviyo segments list
Get Segments
klaviyo segments update
Update Segment
tags — 26 commands
Command
Description
klaviyo tags create
Create Tag
klaviyo tags create-tag-group
Create Tag Group
klaviyo tags delete
Delete Tag
klaviyo tags delete-tag-group
Delete Tag Group
klaviyo tags get
Get Tag
klaviyo tags get-campaign-ids-for-tag
Get Campaign IDs for Tag
klaviyo tags get-flow-ids-for-tag
Get Flow IDs for Tag
klaviyo tags get-list-ids-for-tag
Get List IDs for Tag
klaviyo tags get-segment-ids-for-tag
Get Segment IDs for Tag
klaviyo tags get-tag-group
Get Tag Group
klaviyo tags get-tag-group-for-tag
Get Tag Group for Tag
klaviyo tags get-tag-group-id-for-tag
Get Tag Group ID for Tag
klaviyo tags get-tag-groups
Get Tag Groups
klaviyo tags get-tag-ids-for-tag-group
Get Tag IDs for Tag Group
klaviyo tags get-tags-for-tag-group
Get Tags for Tag Group
klaviyo tags list
Get Tags
klaviyo tags remove-tag-from-campaigns
Remove Tag from Campaigns
klaviyo tags remove-tag-from-flows
Remove Tag from Flows
klaviyo tags remove-tag-from-lists
Remove Tag from Lists
klaviyo tags remove-tag-from-segments
Remove Tag from Segments
klaviyo tags tag-campaigns
Tag Campaigns
klaviyo tags tag-flows
Tag Flows
klaviyo tags tag-lists
Tag Lists
klaviyo tags tag-segments
Tag Segments
klaviyo tags update
Update Tag
klaviyo tags update-tag-group
Update Tag Group
templates — 12 commands
Command
Description
klaviyo templates clone-template
Clone Template
klaviyo templates create
Create Template
klaviyo templates create-universal-content
Create Universal Content
klaviyo templates delete
Delete Template
klaviyo templates delete-universal-content
Delete Universal Content
klaviyo templates get
Get Template
klaviyo templates get-all-universal-content
Get All Universal Content
klaviyo templates get-universal-content
Get Universal Content
klaviyo templates list
Get Templates
klaviyo templates render-template
Render Template
klaviyo templates update
Update Template
klaviyo templates update-universal-content
Update Universal Content
tracking-settings — 3 commands
Command
Description
klaviyo tracking-settings get
Get Tracking Setting
klaviyo tracking-settings list
Get Tracking Settings
klaviyo tracking-settings update
Update Tracking Setting
web-feeds — 5 commands
Command
Description
klaviyo web-feeds create
Create Web Feed
klaviyo web-feeds delete
Delete Web Feed
klaviyo web-feeds get
Get Web Feed
klaviyo web-feeds list
Get Web Feeds
klaviyo web-feeds update
Update Web Feed
webhooks — 7 commands
Command
Description
klaviyo webhooks create
Create Webhook
klaviyo webhooks delete
Delete Webhook
klaviyo webhooks get
Get Webhook
klaviyo webhooks get-webhook-topic
Get Webhook Topic
klaviyo webhooks get-webhook-topics
Get Webhook Topics
klaviyo webhooks list
Get Webhooks
klaviyo webhooks update
Update Webhook
Beta API operations live under klaviyo beta — 184 commands across 13 groups, sending the beta revision header by default:
api-keys — 3 commands
Command
Description
klaviyo beta api-keys get
Get API Key
klaviyo beta api-keys list
Get API Keys
klaviyo beta api-keys update
Update API Key
applications — 1 command
Command
Description
klaviyo beta applications list
Get Applications
billing — 2 commands
Command
Description
klaviyo beta billing get-billing-usage
Get Billing Usage
klaviyo beta billing list-billing-usage
List Billing Usage
brands — 25 commands
Command
Description
klaviyo beta brands create-brand-button
Create Brand Button
klaviyo beta brands create-brand-color
Create Brand Color
klaviyo beta brands create-brand-logo
Create Brand Logo
klaviyo beta brands create-brand-social-group
Create Brand Social Group
klaviyo beta brands delete-brand-button
Delete Brand Button
klaviyo beta brands delete-brand-color
Delete Brand Color
klaviyo beta brands delete-brand-logo
Delete Brand Logo
klaviyo beta brands delete-brand-social-group
Delete Brand Social Group
klaviyo beta brands get-brand-button
Get Brand Button
klaviyo beta brands get-brand-buttons
Get Brand Buttons
klaviyo beta brands get-brand-color
Get Brand Color
klaviyo beta brands get-brand-colors
Get Brand Colors
klaviyo beta brands get-brand-email-default
Get Brand Email Default
klaviyo beta brands get-brand-email-defaults
Get Brand Email Defaults
klaviyo beta brands get-brand-logo
Get Brand Logo
klaviyo beta brands get-brand-logos
Get Brand Logos
klaviyo beta brands get-brand-social-group
Get Brand Social Group
klaviyo beta brands get-brand-social-groups
Get Brand Social Groups
klaviyo beta brands get-brand-voice
Get Brand Voice
klaviyo beta brands update-brand-button
Update Brand Button
klaviyo beta brands update-brand-color
Update Brand Color
klaviyo beta brands update-brand-email-default
Update Brand Email Default
klaviyo beta brands update-brand-logo
Update Brand Logo
klaviyo beta brands update-brand-social-group
Update Brand Social Group
klaviyo beta brands update-brand-voice
Update Brand Voice
campaigns — 45 commands
Command
Description
klaviyo beta campaigns clone-campaign
Clone Campaign
klaviyo beta campaigns clone-campaign-audience
Clone Campaign Audience
klaviyo beta campaigns clone-campaign-message
Clone Campaign Message
klaviyo beta campaigns create
Create Campaign
klaviyo beta campaigns create-campaign-audience
Create Campaign Audience
klaviyo beta campaigns create-campaign-message
Create Campaign Message
klaviyo beta campaigns create-campaign-variation
Create Campaign Variation
klaviyo beta campaigns delete
Delete Campaign
klaviyo beta campaigns delete-campaign-audience
Delete Campaign Audience
klaviyo beta campaigns delete-campaign-message
Delete Campaign Message
klaviyo beta campaigns delete-campaign-variation
Delete Campaign Variation
klaviyo beta campaigns get
Get Campaign
klaviyo beta campaigns get-audience-for-campaign-message
Get Audience for Campaign Message
klaviyo beta campaigns get-audience-id-for-campaign-message
Get Audience ID for Campaign Message
klaviyo beta campaigns get-audience-ids-for-campaign
Get Audience IDs for Campaign
klaviyo beta campaigns get-campaign-audience
Get Campaign Audience
klaviyo beta campaigns get-campaign-audiences-for-campaign
Get Campaign Audiences for Campaign
klaviyo beta campaigns get-campaign-for-campaign-audience
Get Campaign for Campaign Audience
klaviyo beta campaigns get-campaign-for-campaign-message
Get Campaign for Campaign Message
klaviyo beta campaigns get-campaign-id-for-campaign-audience
Get Campaign ID for Campaign Audience
klaviyo beta campaigns get-campaign-id-for-campaign-message
Get Campaign ID for Campaign Message
klaviyo beta campaigns get-campaign-message
Get Campaign Message
klaviyo beta campaigns get-campaign-messages
Get Campaign Messages
klaviyo beta campaigns get-campaign-messages-for-campaign-audience
Get Campaign Messages for Campaign Audience
klaviyo beta campaigns get-campaign-variation
Get Campaign Variation
klaviyo beta campaigns get-image-for-campaign-variation
Get Image for Campaign Variation
klaviyo beta campaigns get-image-id-for-campaign-variation
Get Image ID for Campaign Variation
klaviyo beta campaigns get-message-for-campaign-variation
Get Message for Campaign Variation
klaviyo beta campaigns get-message-id-for-campaign-variation
Get Message ID for Campaign Variation
klaviyo beta campaigns get-message-ids-for-campaign
Get Message IDs for Campaign
klaviyo beta campaigns get-message-ids-for-campaign-audience
Get Message IDs for Campaign Audience
klaviyo beta campaigns get-messages-for-campaign
Get Messages for Campaign
klaviyo beta campaigns get-tag-ids-for-campaign-message
Get Tag IDs for Campaign Message
klaviyo beta campaigns get-tags-for-campaign-message
Get Tags for Campaign Message
klaviyo beta campaigns get-translation-for-campaign-variation
Get Translation for Campaign Variation
klaviyo beta campaigns get-translation-id-for-campaign-variation
Get Translation ID for Campaign Variation
klaviyo beta campaigns get-variation-ids-for-campaign-message
Get Variation IDs for Campaign Message
klaviyo beta campaigns get-variations-for-campaign-message
Get Variations for Campaign Message
klaviyo beta campaigns list
Get Campaigns
klaviyo beta campaigns schedule-campaign-message
Schedule Campaign Message
klaviyo beta campaigns update
Update Campaign
klaviyo beta campaigns update-campaign-audience
Update Campaign Audience
klaviyo beta campaigns update-campaign-message
Update Campaign Message
klaviyo beta campaigns update-campaign-message-schedule
Update Campaign Message Schedule
klaviyo beta campaigns update-campaign-variation
Update Campaign Variation
custom-objects — 30 commands
Command
Description
klaviyo beta custom-objects create-object-schema
Create Object Schema
klaviyo beta custom-objects create-object-schema-relationship
Create Object Schema Relationship
klaviyo beta custom-objects create-object-type
Create Object Type
klaviyo beta custom-objects create-profile-schema-relationship
Create Profile Schema Relationship
klaviyo beta custom-objects delete-object-schema-relationship
Delete Object Schema Relationship
klaviyo beta custom-objects delete-object-type
Delete Object Type
klaviyo beta custom-objects delete-profile-schema-relationship
Delete Profile Schema Relationship
klaviyo beta custom-objects get-current-schema-for-object-type
Get Current Schema for Object Type
klaviyo beta custom-objects get-current-schema-id-for-object-type
Get Current Schema ID for Object Type
klaviyo beta custom-objects get-draft-schema-for-object-type
Get Draft Schema for Object Type
klaviyo beta custom-objects get-draft-schema-id-for-object-type
Get Draft Schema ID for Object Type
klaviyo beta custom-objects get-object-record
Get Object Record
klaviyo beta custom-objects get-object-schema
Get Object Schema
klaviyo beta custom-objects get-object-schema-relationships
Get Object Schema Relationships
klaviyo beta custom-objects get-object-type
Get Object Type
klaviyo beta custom-objects get-object-type-relationships
Get Object Type Relationships
klaviyo beta custom-objects get-object-types
Get Object Types
klaviyo beta custom-objects get-profile-schema-relationships
Get Profile Schema Relationships
klaviyo beta custom-objects get-profile-type-relationships
Get Profile Type Relationships
klaviyo beta custom-objects get-record-ids-for-object-type
Get Record IDs for Object Type
klaviyo beta custom-objects get-records-for-object-type
Get Records for Object Type
klaviyo beta custom-objects get-schema-version-ids-for-object-type
Get Schema Version IDs for Object Type
klaviyo beta custom-objects get-schema-versions-for-object-type
Get Schema Versions for Object Type
klaviyo beta custom-objects get-source-mapping
Get Source Mapping
klaviyo beta custom-objects get-source-mapping-for-object-schema
Get Source Mapping for Object Schema
klaviyo beta custom-objects get-source-mapping-id-for-object-schema
Get Source Mapping ID for Object Schema
klaviyo beta custom-objects update-object-schema
Update Object Schema
klaviyo beta custom-objects update-object-schema-relationship
Update Object Schema Relationship
klaviyo beta custom-objects update-profile-schema-relationship
Update Profile Schema Relationship
klaviyo beta custom-objects update-source-mapping
Update Source Mapping
customer-agent — 38 commands
Command
Description
klaviyo beta customer-agent create-agent-knowledge
Create Agent Knowledge
klaviyo beta customer-agent create-agent-secret
Create Agent Secret
klaviyo beta customer-agent create-agent-skill
Create Agent Skill
klaviyo beta customer-agent create-agent-tool
Create Agent Tool
klaviyo beta customer-agent create-customer-agent-conversation
Create Conversation
klaviyo beta customer-agent create-customer-agent-response
Generate Customer Agent Response
klaviyo beta customer-agent delete-agent-knowledge
Delete Agent Knowledge
klaviyo beta customer-agent delete-agent-secret
Delete Agent Secret
klaviyo beta customer-agent delete-agent-skill
Delete Agent Skill
klaviyo beta customer-agent delete-agent-tool
Delete Agent Tool
klaviyo beta customer-agent get-agent-knowledge
Get Agent Knowledge
klaviyo beta customer-agent get-agent-message-ids-for-customer-agent-conversation
Get Agent Message IDs for Customer Agent Conversation
klaviyo beta customer-agent get-agent-messages-for-customer-agent-conversation
Get Agent Messages for Customer Agent Conversation
klaviyo beta customer-agent get-agent-secret
Get Agent Secret
klaviyo beta customer-agent get-agent-secrets
Get Agent Secrets
klaviyo beta customer-agent get-agent-skill
Get Agent Skill
klaviyo beta customer-agent get-agent-skills
Get Agent Skills
klaviyo beta customer-agent get-agent-tool
Get Agent Tool
klaviyo beta customer-agent get-agent-tools
Get Agent Tools
klaviyo beta customer-agent get-secret-ids-for-agent-tool
Get Secret IDs for Agent Tool
klaviyo beta customer-agent get-secrets-for-agent-tool
Get Secrets for Agent Tool
klaviyo beta customer-agent get-skill-ids-for-agent-tool
Get Skill IDs for Agent Tool
klaviyo beta customer-agent get-skills-for-agent-tool
Get Skills for Agent Tool
klaviyo beta customer-agent get-tool-ids-for-agent-secret
Get Tool IDs for Agent Secret
klaviyo beta customer-agent get-tools-for-agent-secret
Get Tools for Agent Secret
klaviyo beta customer-agent list
Get Customer Agent
klaviyo beta customer-agent list-agent-knowledge
List Agent Knowledge
klaviyo beta customer-agent list-customer-agent-conversations
List Conversations
klaviyo beta customer-agent query-customer-agent-skill-values
Query Customer Agent Skill Values
klaviyo beta customer-agent query-customer-agent-tool-values
Query Customer Agent Tool Values
klaviyo beta customer-agent query-customer-agent-values
Query Customer Agent Conversation Metrics
klaviyo beta customer-agent retrieve-customer-agent-conversation
Retrieve Conversation
klaviyo beta customer-agent update
Update Customer Agent
klaviyo beta customer-agent update-agent-knowledge
Update Agent Knowledge
klaviyo beta customer-agent update-agent-secret
Update Agent Secret
klaviyo beta customer-agent update-agent-skill
Update Agent Skill
klaviyo beta customer-agent update-agent-tool
Update Agent Tool
klaviyo beta customer-agent update-customer-agent-conversation
Update Conversation
events — 3 commands
Command
Description
klaviyo beta events create-event-bulk-export-job
Create Event Bulk Export Job
klaviyo beta events get-download-for-event-bulk-export-job
Get Download for Event Bulk Export Job
klaviyo beta events get-event-bulk-export-job
Get Event Bulk Export Job
profiles — 3 commands
Command
Description
klaviyo beta profiles create-profile-bulk-export-job
Create Profile Bulk Export Job
klaviyo beta profiles get-download-for-profile-bulk-export-job
Get Download for Profile Bulk Export Job
klaviyo beta profiles get-profile-bulk-export-job
Get Profile Bulk Export Job
sending-domains — 6 commands
Command
Description
klaviyo beta sending-domains create
Create Sending Domain
klaviyo beta sending-domains create-sending-domain-activation-job
Create Sending Domain Activation Job
klaviyo beta sending-domains create-sending-domain-verification-job
Create Sending Domain Verification Job
klaviyo beta sending-domains delete
Delete Sending Domain
klaviyo beta sending-domains get
Get Sending Domain
klaviyo beta sending-domains list
Get Sending Domains
templates — 6 commands
Command
Description
klaviyo beta templates create-template-preview-send-job
Create Template Preview Send Job
klaviyo beta templates create-universal-content
Create Universal Content
klaviyo beta templates delete-universal-content
Delete Universal Content
klaviyo beta templates get-all-universal-content
Get All Universal Content
klaviyo beta templates get-universal-content
Get Universal Content
klaviyo beta templates update-universal-content
Update Universal Content
text-messaging — 9 commands
Command
Description
klaviyo beta text-messaging create-text-messaging-configuration
Create Text Messaging Configuration
klaviyo beta text-messaging create-text-messaging-sender
Create Text Messaging Sender
klaviyo beta text-messaging create-text-messaging-sender-registration
Create Text Messaging Sender Registration
klaviyo beta text-messaging get-messaging-sender-registration-for-text-messaging-sender
Get Messaging Sender Registration for Text Messaging Sender
klaviyo beta text-messaging get-messaging-sender-registration-id-for-text-messaging-sender
Get Messaging Sender Registration ID for Text Messaging Sender
klaviyo beta text-messaging get-text-messaging-configuration
Get Text Messaging Configuration
klaviyo beta text-messaging get-text-messaging-sender
Get Text Messaging Sender
klaviyo beta text-messaging get-text-messaging-sender-registration
Get Text Messaging Sender Registration
klaviyo beta text-messaging get-text-messaging-senders
Get Text Messaging Senders
translations — 13 commands
Command
Description
klaviyo beta translations create
Create Translation
klaviyo beta translations delete
Delete Translation
klaviyo beta translations get
Get Translation
klaviyo beta translations get-campaign-variation-for-translation
Get Campaign Variation for Translation
klaviyo beta translations get-campaign-variation-id-for-translation
Get Campaign Variation ID for Translation
klaviyo beta translations get-flow-message-for-translation
Get Flow Message for Translation
klaviyo beta translations get-flow-message-id-for-translation
Get Flow Message ID for Translation
klaviyo beta translations get-template-for-translation
Get Template for Translation
klaviyo beta translations get-template-id-for-translation
Get Template ID for Translation
klaviyo beta translations get-template-universal-content-for-translation
Get Template Universal Content for Translation
klaviyo beta translations get-template-universal-content-id-for-translation
Get Template Universal Content ID for Translation
klaviyo beta translations list
Get Translations
klaviyo beta translations update
Update Translation
Conventions across all resource commands:
Canonical CRUD is list, get, create, update, delete; everything else keeps its operation name (klaviyo profiles get-lists-for-profile).
Path parameters are positional arguments; query parameters are flags (page[size] becomes --page-size).
Body attributes are flags too : each scalar field under the body's data.attributes gets its own typed, documented flag — klaviyo lists create --name Newsletter --opt-in-process double_opt_in, with dots for nested objects (--location.city Boston) and repeats for arrays. The JSON:API data.type is filled in automatically, and --help lists every field with its description from the API spec.
Anything a flag can't express — free-form maps like event properties, arrays of objects, relationships, bulk endpoints — uses -d / --data: repeatable path=value pairs where dots nest objects (-d data.attributes.properties.item=shirt) and := assigns a JSON value (-d 'data.relationships.lists.data:=[{"type":"list","id":"Abc123"}]'), or a single -d with inline JSON, @file, or - for stdin. Body flags and -d pairs combine into one body; conflicting fields are an error.
List commands accept --paginate to follow cursors and merge every page's data array.
Run klaviyo <group> --help for a group's commands, or klaviyo <group> <command> --help for its flags. The full reference is the CLI's own help output.
Authentication and accounts
klaviyo auth login verifies a private API key against the API, then stores it as a named account profile. The account name defaults to the key's organization name; the first account added becomes the default. Store as many accounts as you like:
klaviyo auth login --account prod
klaviyo auth login --account staging
klaviyo auth list # * marks the default
klaviyo auth switch staging # change the default (name or account ID)
# One-off override for a single command:
klaviyo api /api/metrics/ --account prod
# Non-interactive login (scripts, agents): pipe the key, keeping it out of
# shell history; the account name defaults to the organization name.
printf ' %s' " $KLAVIYO_KEY " | klaviyo auth login --api-key-stdin
The key used for a request resolves in this order:
--api-key flag
KLAVIYO_API_KEY environment variable
The selected account's stored key, where the account is chosen by --account flag, then KLAVIYO_ACCOUNT, then the configured default
Profiles live in ~/.config/klaviyo/config.toml; the API keys themselves are stored in the OS keychain (macOS Keychain, Windows Credential Manager, Linux Secret Service). Where no keychain is available — headless Linux, containers — pass --insecure-storage to auth login to store the key in the config file instead, written with 0600 permissions. In CI, skip stored accounts entirely and set KLAVIYO_API_KEY.
Terminals get tables, pipes get JSON. List responses render as aligned tables on an interactive terminal; piped or redirected output is always pretty-printed JSON, so scripts never parse table text.
--jq <expr> filters any response through a built-in jq interpreter (gojq ) — no jq install needed. Following jq convention, string results print raw and other values print as JSON, one result per line.
--paginate follows links.next cursors and merges all pages' data into one response (GET list endpoints only). Combines with --jq, which runs on the merged result.
--revision <date> overrides the pinned API revision header for a single call.
Errors: non-2xx responses print the API's JSON:API error body and exit non-zero.
Completion covers every command, flag, and configured account name:
# zsh (bash/fish/powershell also supported)
klaviyo completion zsh > " ${fpath[1]} /_klaviyo"
Variable
Purpose
KLAVIYO_API_KEY
API key for requests, bypassing stored accounts (below --api-key in precedence)
KLAVIYO_ACCOUNT
Named account to use (below --account in precedence)
KLAVIYO_CONFIG_DIR
Config directory override (default ~/.config/klaviyo)
KLAVIYO_NO_UPDATE_NOTIFIER
Disable the update check (also disabled when CI is set)
VISUAL, EDITOR
Editor for klaviyo config -e
KLAVIYO_API_URL
Base URL override for development and tests only; unsupported for normal use
Requires Go 1.25+; everything else self-installs. See ARCHITECTURE.md for how the pieces fit together.
make build # builds bin/klaviyo
make test # go test -race ./...
make lint # installs the pinned golangci-lint into ./bin, then runs it
make fmt # gofumpt + goimports via golangci-lint fmt
CI runs lint, tests on all three platforms, a snapshot release build, and fails if go mod tidy would change the committed tree. The resource commands are generated from the published Klaviyo OpenAPI spec by an internal tool; regeneration happens automatically when the spec updates.
Releases are cut by pushing a v* tag; GoReleaser builds and publishes the binaries.
Found a bug or want a feature? Open an issue .
MIT