Operations 36
Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay
Ask an LLM
“How do I pull every contact profile out of my Klaviyo account?”
“Can I sort profiles by when they were created or last updated?”
Tell an agent
List all profiles in my account, newest first.
Find profiles matching the filter {filter}.
Ask an LLM
“What's the way to add a brand-new contact profile that doesn't exist yet?”
“Is there a payload size limit when creating a single profile?”
Tell an agent
Create a new profile with these details: {profile}.
Add a brand-new contact profile for {profile} and return its subscriptions.
Ask an LLM
“How can I look up everything stored on a single profile by its ID?”
“Can I see a profile's predictive analytics along with its attributes?”
Tell an agent
Get profile {profile_id}.
Show profile {profile_id} including predictive analytics and subscriptions.
Ask an LLM
“How do I change the attributes on a profile I already have the ID for?”
“Does sending null for a field on a profile update clear it out?”
Tell an agent
Update profile {profile_id} with {changes}.
Clear the fields listed in {changes} on profile {profile_id} by setting them to null.
Ask an LLM
“Where can I see all the bulk profile import jobs I've submitted?”
“Can I filter my bulk import jobs by status?”
Tell an agent
List all my bulk profile import jobs.
Show bulk profile import jobs matching {filter}.
Ask an LLM
“How many profiles can I import in a single bulk import request?”
“What's the fastest way to create or update thousands of profiles at once?”
Tell an agent
Start a bulk import job for these profiles: {profiles}.
Bulk import {profiles} and add them to a list.
GET
/api/profile-bulk-import-jobs/{job_id}
Check a bulk profile import job · Get Bulk Import Profiles Job
#
Ask an LLM
“How do I check whether my bulk profile import job has finished?”
“Can I see the progress of one specific import job?”
Tell an agent
Get the status of bulk profile import job {job_id}.
Check how import job {job_id} is progressing.
GET
/api/profile-suppression-bulk-create-jobs
List bulk profile suppression jobs · Get Bulk Suppress Profiles Jobs
#
Ask an LLM
“Which bulk email suppression jobs have I run and what state are they in?”
“Can I filter suppression jobs by list or segment?”
Tell an agent
List the status of all my bulk suppression jobs.
Show bulk suppression jobs matching {filter}.
POST
/api/profile-suppression-bulk-create-jobs
Suppress profiles from email marketing · Bulk Suppress Profiles
#
Ask an LLM
“How do I stop email marketing to a batch of email addresses regardless of consent?”
“Can I suppress every current member of a list or segment in one go?”
Tell an agent
Suppress these email addresses from marketing email: {emails}.
Suppress all current members of {list_or_segment} from email marketing.
GET
/api/profile-suppression-bulk-create-jobs/{job_id}
Check a bulk suppression job · Get Bulk Suppress Profiles Job
#
Ask an LLM
“Did my bulk suppression request finish processing?”
“What's the current state of a single suppression job?”
Tell an agent
Get bulk suppression job {job_id}.
Check whether suppression job {job_id} has completed.
GET
/api/profile-suppression-bulk-delete-jobs
List bulk profile unsuppression jobs · Get Bulk Unsuppress Profiles Jobs
#
Ask an LLM
“Where do I see all the jobs I ran to lift email suppressions?”
“Can I sort unsuppression jobs by creation date?”
Tell an agent
List all my bulk unsuppression jobs.
Show unsuppression jobs matching {filter}.
POST
/api/profile-suppression-bulk-delete-jobs
Lift manual email suppressions in bulk · Bulk Unsuppress Profiles
#
Ask an LLM
“How can I remove manual suppressions so people can get marketing email again?”
“Will unsuppressing also restore profiles that unsubscribed or had invalid emails?”
Tell an agent
Unsuppress these email addresses: {emails}.
Remove user suppressions from every member of {list_or_segment}.
GET
/api/profile-suppression-bulk-delete-jobs/{job_id}
Check a bulk unsuppression job · Get Bulk Unsuppress Profiles Job
#
Ask an LLM
“Has my request to lift suppressions finished?”
“What does a single unsuppression job report about its progress?”
Tell an agent
Get bulk unsuppression job {job_id}.
Check the status of unsuppress job {job_id}.
Ask an LLM
“How do I see all the mobile push tokens registered for my company?”
“Can I filter push tokens by platform or profile?”
Tell an agent
List every push token in my account.
Show push tokens matching {filter}.
Ask an LLM
“Can I migrate existing mobile push tokens from another system into Klaviyo?”
“What's the server-side way to register a device push token for a profile?”
Tell an agent
Register push token {push_token} for its profile.
Create or update the push token record {push_token}.
Ask an LLM
“How do I look up a single push token by its ID?”
“What details are stored on a specific push token?”
Tell an agent
Get push token {token_id}.
Show the details of push token {token_id}.
Ask an LLM
“How do I remove a device's push token so it stops getting notifications?”
“Can I delete a stale push token by its ID?”
Tell an agent destructive · confirm first
Delete push token {token_id}.
Remove the stale push token {token_id} from my account.
Ask an LLM
“Is there a single call that creates a profile if it's new or updates it if it exists?”
“How can I tell whether an upsert created a new profile or updated an old one?”
Tell an agent
Create or update the profile for {profile}.
Upsert a profile using the email and properties in {profile}.
Ask an LLM
“How do I combine two duplicate profiles for the same person?”
“Which profile survives when I merge a source profile into a destination?”
Tell an agent destructive · confirm first
Merge the duplicate profiles described in {merge_request} into the destination profile.
Queue a merge of source and destination profiles: {merge_request}.
POST
/api/profile-subscription-bulk-create-jobs
Subscribe profiles to marketing channels · Bulk Subscribe Profiles
#
Ask an LLM
“How do I opt people in to email, SMS, WhatsApp or push marketing in bulk?”
“Will subscribers get a confirmation message if the list uses double opt-in?”
Tell an agent
Subscribe these profiles to marketing: {subscriptions}.
Opt the contacts in {subscriptions} in to SMS and email on a list.
POST
/api/profile-subscription-bulk-delete-jobs
Unsubscribe profiles from marketing channels · Bulk Unsubscribe Profiles
#
Ask an LLM
“How can I unsubscribe a batch of people from email or SMS marketing?”
“What happens to profiles that aren't on the list I pass when unsubscribing?”
Tell an agent destructive · confirm first
Unsubscribe these profiles from marketing: {unsubscriptions}.
Opt out the contacts in {unsubscriptions} from SMS and email.
Ask an LLM
“Which devices does a given profile have push tokens registered on?”
“Can I get the full push token records for one profile?”
Tell an agent
List the push tokens belonging to profile {profile_id}.
Show full push token details for profile {profile_id}.
GET
/api/profiles/{id}/relationships/push-tokens
Get push token IDs for a profile · Get Push Token IDs for Profile
#
Ask an LLM
“Can I get just the IDs of a profile's push tokens without the full records?”
“What's the lightweight way to see which token IDs are linked to a profile?”
Tell an agent
Get only the push token IDs linked to profile {profile_id}.
Return the token ID relationships for profile {profile_id}.
Ask an LLM
“Which email lists is a particular person a member of?”
“Can I see full list details for every list a profile has joined?”
Tell an agent
Show the lists profile {profile_id} is a member of.
Get full list records for profile {profile_id}'s memberships.
GET
/api/profiles/{id}/relationships/lists
Get list IDs a profile belongs to · Get List IDs for Profile
#
Ask an LLM
“Can I fetch only the list IDs a profile is on, not the whole list objects?”
“What's the quick way to check list membership IDs for a contact?”
Tell an agent
Get just the list IDs for profile {profile_id}.
Return list membership relationships for profile {profile_id}.
Ask an LLM
“Which segments does this customer currently fall into?”
“Can I see the full segment definitions a profile qualifies for?”
Tell an agent
Show the segments profile {profile_id} belongs to.
Get full segment records for profile {profile_id}'s memberships.
GET
/api/profiles/{id}/relationships/segments
Get segment IDs a profile is in · Get Segment IDs for Profile
#
Ask an LLM
“Can I retrieve only the segment IDs for a profile?”
“Is there a lightweight check for which segment IDs a contact matches?”
Tell an agent
Get just the segment IDs for profile {profile_id}.
Return segment membership relationships for profile {profile_id}.
Ask an LLM
“How do I pull up the messaging conversation tied to a customer's profile?”
“Can I read the full conversation record for one profile?”
Tell an agent
Get the conversation for profile {profile_id}.
Show the full conversation record attached to profile {profile_id}.
GET
/api/profiles/{id}/relationships/conversation
Get a profile's conversation ID · Get Conversation ID for Profile
#
Ask an LLM
“Can I get only the conversation ID linked to a profile?”
“What's the conversation relationship ID for a given contact?”
Tell an agent
Get just the conversation ID for profile {profile_id}.
Return the conversation relationship of profile {profile_id}.
GET
/api/profile-bulk-import-jobs/{id}/lists
Get the list a bulk import job targets · Get List for Bulk Import Profiles Job
#
Ask an LLM
“Which list were the profiles in my bulk import job added to?”
“Can I see the full list record attached to an import job?”
Tell an agent
Get the list that bulk import job {job_id} adds profiles to.
Show list details for import job {job_id}.
GET
/api/profile-bulk-import-jobs/{id}/relationships/lists
Get list IDs for a bulk import job · Get List IDs for Bulk Import Profiles Job
#
Ask an LLM
“Can I get only the list ID a bulk import job is tied to?”
“What list relationship does an import job carry?”
Tell an agent
Get just the list IDs for bulk import job {job_id}.
Return the list relationship of import job {job_id}.
GET
/api/profile-bulk-import-jobs/{id}/profiles
List profiles from a bulk import job · Get Profiles for Bulk Import Profiles Job
#
Ask an LLM
“Which profiles were created or updated by a particular bulk import?”
“Can I page through the full profile records an import job touched?”
Tell an agent
List the profiles imported by bulk import job {job_id}.
Show {page_size} imported profiles at a time from job {job_id}.
GET
/api/profile-bulk-import-jobs/{id}/relationships/profiles
Get profile IDs from a bulk import job · Get Profile IDs for Bulk Import Profiles Job
#
Ask an LLM
“Can I get just the profile IDs that a bulk import job processed?”
“What's the lightweight way to see which profile IDs an import touched?”
Tell an agent
Get only the profile IDs from bulk import job {job_id}.
Return profile relationships for import job {job_id}.
GET
/api/profile-bulk-import-jobs/{id}/import-errors
Get errors from a bulk import job · Get Errors for Bulk Import Profiles Job
#
Ask an LLM
“Why did some profiles fail to import in my bulk job?”
“Where do I find the import errors for a bulk profile upload?”
Tell an agent
Show the import errors for bulk import job {job_id}.
List which rows failed in import job {job_id}.
GET
/api/push-tokens/{id}/profile
Get the profile that owns a push token · Get Profile for Push Token
#
Ask an LLM
“Who is the customer behind a given push token?”
“Can I get the full profile record for a device token?”
Tell an agent
Get the profile that owns push token {token_id}.
Show the full customer profile for device token {token_id}.
GET
/api/push-tokens/{id}/relationships/profile
Get the profile ID for a push token · Get Profile ID for Push Token
#
Ask an LLM
“Can I fetch only the profile ID linked to a push token?”
“What profile relationship does a device token point to?”
Tell an agent
Get just the profile ID for push token {token_id}.
Return the profile relationship of token {token_id}.
Documentation
📖
Documentation
https://developers.klaviyo.com/
📖
Authentication
https://developers.klaviyo.com/en/docs/authenticate_
📖
RateLimits
https://developers.klaviyo.com/en/docs/rate_limits_and_error_handling
Specifications
⚙
OpenAPI
https://raw.githubusercontent.com/api-evangelist/klaviyo/refs/heads/main/openapi/klaviyo-profiles-api-openapi.yml
⚙
AsyncAPI
https://raw.githubusercontent.com/api-evangelist/klaviyo/refs/heads/main/asyncapi/klaviyo-webhooks-asyncapi.yaml
Other Resources
🔗
Reference
https://developers.klaviyo.com/en/reference/api_overview
🔗
Versioning
https://developers.klaviyo.com/en/docs/api_versioning_and_deprecation_policy
🔗
ChangeLog
https://developers.klaviyo.com/en/docs/changelog_
🔗
SDKs
https://developers.klaviyo.com/en/docs/sdk_overview
🔗
GitHub
https://github.com/klaviyo/openapi
🔗
Overlay
https://raw.githubusercontent.com/api-evangelist/klaviyo/refs/heads/main/overlays/klaviyo-profiles-api-overlay.yaml