Klaviyo Campaigns API

campaigns

Business capability
Digital Marketing Management BC-400.60

Operations 26

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

GET /api/campaigns List email or SMS campaigns · Get Campaigns #
Ask an LLM
“How do I list all my email campaigns in Klaviyo?”
“Why do I have to filter by channel before I can list campaigns?”
Tell an agent
List my campaigns matching {filter}.
Show SMS campaigns using filter {filter}, sorted by {sort}.
POST /api/campaigns Create a new campaign · Create Campaign #
Ask an LLM
“What do I need to set up a new email campaign from scratch?”
“Can I define the audience and send strategy when creating a campaign?”
Tell an agent
Create a campaign with these settings: {campaign}.
Set up a new draft campaign targeting the audiences in {campaign}.
GET /api/campaigns/{id} Get one campaign by ID · Get Campaign #
Ask an LLM
“How can I see the status and settings of a single campaign?”
“Can I include the campaign's messages and tags when fetching it?”
Tell an agent
Get campaign {campaign_id}.
Show campaign {campaign_id} with its related {include}.
PATCH /api/campaigns/{id} Update a campaign's settings · Update Campaign #
Ask an LLM
“Can I change the name or audience of a campaign that already exists?”
“How do I reschedule a campaign's send strategy after creating it?”
Tell an agent
Update campaign {campaign_id} with {changes}.
Rename campaign {campaign_id} and change its audiences to {changes}.
DELETE /api/campaigns/{id} Delete a campaign · Delete Campaign #
Ask an LLM
“How do I permanently remove a campaign I no longer need?”
“Is deleting a campaign by ID reversible?”
Tell an agent destructive · confirm first
Delete campaign {campaign_id}.
Remove the old campaign {campaign_id} from my account.
GET /api/campaign-messages/{id} Get one campaign message · Get Campaign Message #
Ask an LLM
“How do I see the subject line and content settings of a campaign message?”
“Can I fetch a single campaign message by its own ID?”
Tell an agent
Get campaign message {message_id}.
Show campaign message {message_id} including its {include}.
PATCH /api/campaign-messages/{id} Update a campaign message · Update Campaign Message #
Ask an LLM
“Can I change the subject line or preview text on a campaign message?”
“What's the way to edit a message's content settings before it sends?”
Tell an agent
Update campaign message {message_id} with {changes}.
Change the subject and preview text of message {message_id} to {changes}.
GET /api/campaign-send-jobs/{id} Check a campaign send job · Get Campaign Send Job #
Ask an LLM
“Has my campaign actually finished sending?”
“Where do I check the status of a campaign send I triggered?”
Tell an agent
Get campaign send job {send_job_id}.
Check whether send job {send_job_id} is still in progress.
PATCH /api/campaign-send-jobs/{id} Cancel or revert a campaign send · Cancel Campaign Send #
Ask an LLM
“Can I stop a campaign that's currently sending?”
“Is it possible to put a sending campaign back into draft instead of canceling it?”
Tell an agent destructive · confirm first
Cancel the send for campaign job {send_job_id}.
Revert send job {send_job_id} to draft using {action}.
GET /api/campaign-recipient-estimation-jobs/{id} Check a recipient estimation job · Get Campaign Recipient Estimation Job #
Ask an LLM
“Has the job refreshing my campaign's recipient count finished?”
“Where can I see the status of a recipient estimation job?”
Tell an agent
Get recipient estimation job {job_id}.
Check if estimation job {job_id} is done running.
GET /api/campaign-recipient-estimations/{id} Get a campaign's estimated recipients · Get Campaign Recipient Estimation #
Ask an LLM
“About how many people will receive this campaign?”
“What is the current estimated audience size for a campaign?”
Tell an agent
Get the estimated recipient count for campaign {campaign_id}.
Tell me how many people campaign {campaign_id} is expected to reach.
POST /api/campaign-clone Clone an existing campaign · Create Campaign Clone #
Ask an LLM
“Can I duplicate a past campaign as the starting point for a new one?”
“Does a cloned campaign get its own new ID and name?”
Tell an agent
Clone the campaign described in {clone_request}.
Duplicate a campaign under a new name: {clone_request}.
POST /api/campaign-message-assign-template Assign a template to a campaign message · Assign Template to Campaign Message #
Ask an LLM
“How do I apply one of my email templates to a campaign message?”
“Does assigning a template to a message change the original template?”
Tell an agent
Assign the template to the campaign message as described in {assignment}.
Use template and message IDs {assignment} to set the message's design.
POST /api/campaign-send-jobs Send a campaign · Send Campaign #
Ask an LLM
“How do I trigger a campaign to go out now?”
“Is sending a campaign synchronous, or does it run as a background job?”
Tell an agent
Send campaign {campaign}.
Start the send job for campaign {campaign} right away.
POST /api/campaign-recipient-estimation-jobs Refresh a campaign's recipient estimate · Refresh Campaign Recipient Estimation #
Ask an LLM
“My audience changed; how do I recalculate how many people a campaign will reach?”
“Can I kick off a fresh recipient count for a campaign?”
Tell an agent
Refresh the recipient estimate for campaign {campaign}.
Start a new recipient estimation job for {campaign}.
GET /api/campaign-messages/{id}/campaign Get the campaign a message belongs to · Get Campaign for Campaign Message #
Ask an LLM
“Which campaign does this campaign message belong to?”
“Can I get the full parent campaign from a message ID?”
Tell an agent
Get the campaign that message {message_id} belongs to.
Show the full parent campaign for message {message_id}.
GET /api/campaign-messages/{id}/relationships/campaign Get the campaign ID for a message · Get Campaign ID for Campaign Message #
Ask an LLM
“Can I fetch only the parent campaign ID for a campaign message?”
“What's the campaign relationship on a given message?”
Tell an agent
Get just the campaign ID for message {message_id}.
Return the campaign relationship of message {message_id}.
GET /api/campaign-messages/{id}/template Get the template used by a campaign message · Get Template for Campaign Message #
Ask an LLM
“Which template is a campaign message using right now?”
“Can I see the full HTML template assigned to a message?”
Tell an agent
Get the template assigned to campaign message {message_id}.
Show the full template content for message {message_id}.
GET /api/campaign-messages/{id}/relationships/template Get the template ID for a campaign message · Get Template ID for Campaign Message #
Ask an LLM
“Can I get only the template ID a campaign message points to?”
“What's the template relationship on a message?”
Tell an agent
Look up which template ID campaign message {message_id} points to.
Return the template relationship of message {message_id}.
GET /api/campaign-messages/{id}/image Get the image on a campaign message · Get Image for Campaign Message #
Ask an LLM
“Which image is attached to a campaign message?”
“Can I see the full image record used by a push or SMS message?”
Tell an agent
Get the image attached to campaign message {message_id}.
Show image details for message {message_id}.
GET /api/campaign-messages/{id}/relationships/image Get the image ID for a campaign message · Get Image ID for Campaign Message #
Ask an LLM
“Can I get only the image ID a campaign message references?”
“What's the image relationship on a message?”
Tell an agent
Look up the image ID referenced by campaign message {message_id}.
Return the image relationship of message {message_id}.
PATCH /api/campaign-messages/{id}/relationships/image Change the image on a campaign message · Update Image for Campaign Message #
Ask an LLM
“How do I swap the image used in a campaign message?”
“Can I point a message at a different uploaded image?”
Tell an agent
Set the image on campaign message {message_id} to {image}.
Replace message {message_id}'s image with {image}.
GET /api/campaigns/{id}/tags List a campaign's tags · Get Tags for Campaign #
Ask an LLM
“What tags are applied to a particular campaign?”
“Can I get the full tag records for one campaign?”
Tell an agent
List the tags on campaign {campaign_id}.
Show full tag details for campaign {campaign_id}.
GET /api/campaigns/{id}/relationships/tags Get tag IDs for a campaign · Get Tag IDs for Campaign #
Ask an LLM
“Can I fetch only the tag IDs on a campaign?”
“What tag relationships does a campaign have?”
Tell an agent
Get just the tag IDs for campaign {campaign_id}.
Return tag relationships of campaign {campaign_id}.
GET /api/campaigns/{id}/campaign-messages List a campaign's messages · Get Messages for Campaign #
Ask an LLM
“What messages make up a given campaign?”
“Can I see the full content settings of every message in a campaign?”
Tell an agent
List the messages in campaign {campaign_id}.
Show every message of campaign {campaign_id} with its {include}.
GET /api/campaigns/{id}/relationships/campaign-messages Get message IDs for a campaign · Get Message IDs for Campaign #
Ask an LLM
“Can I get only the message IDs that belong to a campaign?”
“What message relationships does a campaign carry?”
Tell an agent
Get just the message IDs for campaign {campaign_id}.
Return message relationships of campaign {campaign_id}.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/klaviyo:klaviyo-campaigns-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

klaviyo-campaigns-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Klaviyo Campaigns 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:


# --- truncated at 32 KB (139 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/klaviyo/refs/heads/main/openapi/klaviyo-campaigns-api-openapi.yml