Klaviyo · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Klaviyo Client API
12 actions
12 updates
phrasing
extends
openapi/klaviyo-client-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Klaviyo's API. It is a proposal applied on top of the contract, not a document Klaviyo publishes.
What the actions change
x-apievangelist-phrasing
Targets 12
$.info
$.paths['/client/review-values-reports'].get
$.paths['/client/reviews'].get
$.paths['/client/reviews'].post
$.paths['/client/geofences'].get
$.paths['/client/subscriptions'].post
$.paths['/client/push-tokens'].post
$.paths['/client/push-token-unregister'].post
$.paths['/client/events'].post
$.paths['/client/profiles'].post
$.paths['/client/event-bulk-create'].post
$.paths['/client/back-in-stock-subscriptions'].post
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Klaviyo Client API
version: 1.0.0
extends: openapi/klaviyo-client-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 11
- target: $.paths['/client/review-values-reports'].get
update:
x-apievangelist-phrasing:
intent: Get review statistics for a storefront
effect: read
questions:
- Can my storefront show average star rating and review counts per product?
- Which statistics and timeframes can I group review reports by?
instructions:
- text: Get review {statistics} for site {site_id} grouped by {group_by} over {timeframe}.
slots:
statistics: query.statistics
site_id: query.company_id
group_by: query.group_by
timeframe: query.timeframe
- text: Show review value reports for site {site_id} grouped by {group_by}.
slots:
site_id: query.company_id
group_by: query.group_by
method: generated
generated: '2026-09-26'
- target: $.paths['/client/reviews'].get
update:
x-apievangelist-phrasing:
intent: List reviews from a client-side app
effect: read
questions:
- How do I display product reviews on my storefront from the browser?
- Can a client-side page show only verified or five-star reviews?
instructions:
- text: List reviews for site {site_id} from the storefront.
slots:
site_id: query.company_id
- text: Fetch client-side reviews for site {site_id} matching {filter}.
slots:
site_id: query.company_id
filter: query.filter
method: generated
generated: '2026-09-26'
- target: $.paths['/client/reviews'].post
update:
x-apievangelist-phrasing:
intent: Submit a review from the storefront
effect: write
questions:
- Can shoppers submit a product review straight from my website?
- What's needed to post a review from a client-side environment?
instructions:
- text: Submit review {review} for site {site_id}.
slots:
review: requestBody.data
site_id: query.company_id
- text: 'Post a shopper''s product review from the browser: {review} on site {site_id}.'
slots:
review: requestBody.data
site_id: query.company_id
method: generated
generated: '2026-09-26'
- target: $.paths['/client/geofences'].get
update:
x-apievangelist-phrasing:
intent: List geofences for a mobile app
effect: read
questions:
- Which geofences should my mobile app monitor?
- Can I sort geofences by distance from the user's location?
instructions:
- text: List geofences for site {site_id}.
slots:
site_id: query.company_id
- text: Get geofences for site {site_id} nearest to location {location}.
slots:
site_id: query.company_id
location: header.X-Klaviyo-API-Filters
method: generated
generated: '2026-09-26'
- target: $.paths['/client/subscriptions'].post
update:
x-apievangelist-phrasing:
intent: Subscribe a visitor to email or SMS from the browser
effect: write
questions:
- How do I capture email or SMS consent from a signup form on my site?
- Do I need both an email and a phone number to subscribe someone client-side?
instructions:
- text: Subscribe visitor {subscription} to marketing for site {site_id}.
slots:
subscription: requestBody.data
site_id: query.company_id
- text: 'Record email and SMS consent from my signup form for site {site_id}: {subscription}.'
slots:
subscription: requestBody.data
site_id: query.company_id
method: generated
generated: '2026-09-26'
- target: $.paths['/client/push-tokens'].post
update:
x-apievangelist-phrasing:
intent: Register or refresh a mobile push token
effect: write
questions:
- How does my iOS or Android app register a device for push notifications?
- Can the mobile SDK update an existing push token?
instructions:
- text: Register push token {token} for site {site_id}.
slots:
token: requestBody.data
site_id: query.company_id
- text: 'Save or refresh this device''s push token for site {site_id}: {token}.'
slots:
token: requestBody.data
site_id: query.company_id
method: generated
generated: '2026-09-26'
- target: $.paths['/client/push-token-unregister'].post
update:
x-apievangelist-phrasing:
intent: Unregister a mobile push token
effect: destructive
questions:
- How do I stop push notifications to a device when the user logs out?
- Can the mobile app unregister its push token?
instructions:
- text: Unregister push token {token} for site {site_id}.
slots:
token: requestBody.data
site_id: query.company_id
- text: 'Stop sending push to this device on site {site_id}: {token}.'
slots:
token: requestBody.data
site_id: query.company_id
method: generated
generated: '2026-09-26'
- target: $.paths['/client/events'].post
update:
x-apievangelist-phrasing:
intent: Track a shopper event from the browser
effect: write
questions:
- How do I track a Viewed Product event from my website's JavaScript?
- Can I record one activity event client-side with a public key?
instructions:
- text: Track event {event} from the browser for site {site_id}.
slots:
event: requestBody.data
site_id: query.company_id
- text: 'Record this single storefront activity for site {site_id}: {event}.'
slots:
event: requestBody.data
site_id: query.company_id
method: generated
generated: '2026-09-26'
- target: $.paths['/client/profiles'].post
update:
x-apievangelist-phrasing:
intent: Create or update a profile from the browser
effect: write
questions:
- Can I save a visitor's properties from my site without tracking an event?
- How are profile attributes updated from a client-side page?
instructions:
- text: Create or update profile {profile} for site {site_id}.
slots:
profile: requestBody.data
site_id: query.company_id
- text: 'Set these visitor properties client-side for site {site_id}: {profile}.'
slots:
profile: requestBody.data
site_id: query.company_id
method: generated
generated: '2026-09-26'
- target: $.paths['/client/event-bulk-create'].post
update:
x-apievangelist-phrasing:
intent: Track many shopper events from the browser
effect: write
questions:
- Can I send a batch of activity events from a client-side app in one request?
- What's the maximum number of events per client-side bulk call?
instructions:
- text: 'Track these events in one batch for site {site_id}: {events}.'
slots:
events: requestBody.data
site_id: query.company_id
- text: Bulk send storefront activity {events} for site {site_id}.
slots:
events: requestBody.data
site_id: query.company_id
method: generated
generated: '2026-09-26'
- target: $.paths['/client/back-in-stock-subscriptions'].post
update:
x-apievangelist-phrasing:
intent: Sign up a shopper for back-in-stock alerts on-site
effect: write
questions:
- How do I add a 'notify me when available' button to a product page?
- Can a shopper subscribe to restock alerts from the browser?
instructions:
- text: Subscribe shopper {subscription} to back in stock alerts from the storefront for site {site_id}.
slots:
subscription: requestBody.data
site_id: query.company_id
- text: 'Create a client-side restock notification for site {site_id}: {subscription}.'
slots:
subscription: requestBody.data
site_id: query.company_id
method: generated
generated: '2026-09-26'