{ "openapi": "3.0.2", "info": { "title": "Klaviyo API", "version": "2026-07-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": [] } ], "paths": { "/api/campaign-message-assign-template": { "post": { "operationId": "assign_template_to_campaign_message", "summary": "Assign Template to Campaign Message", "description": "Creates a non-reusable version of the template and assigns it to the message.

*Rate limits*:
Burst: `10/s`
Steady: `150/m`\n\n**Scopes:**\n`campaigns:write`\n\n[OpenAPI Spec](https://raw.githubusercontent.com/klaviyo/openapi/main/openapi/stable/apis/assign_template_to_campaign_message.json)", "parameters": [ { "name": "fields[campaign-message]", "in": "query", "description": "For more information please visit https://developers.klaviyo.com/en/v2026-07-15/reference/api-overview#sparse-fieldsets", "required": false, "schema": { "type": "array", "items": { "type": "string", "enum": [ "channel", "content", "content.bcc_email", "content.body", "content.cc_email", "content.from_email", "content.from_label", "content.media_url", "content.preview_text", "content.reply_to_email", "content.subject", "created_at", "id", "label", "render_options", "render_options.add_info_link", "render_options.add_opt_out_language", "render_options.add_org_prefix", "render_options.shorten_links", "send_times", "updated_at" ] } }, "explode": false }, { "name": "revision", "in": "header", "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", "required": true, "schema": { "type": "string", "default": "2026-07-15" } } ], "requestBody": { "description": "Takes a reusable template, clones it, and assigns the non-reusable clone to the message.", "required": true, "content": { "application/vnd.api+json": { "schema": { "$ref": "#/components/schemas/CampaignMessageAssignTemplateQuery" } } } }, "responses": { "200": { "description": "Success", "content": { "application/vnd.api+json": { "schema": { "$ref": "#/components/schemas/PostCampaignMessageResponse" } } } }, "4XX": { "$ref": "#/components/responses/ClientError" }, "5XX": { "$ref": "#/components/responses/ServerError" } }, "tags": [ "Campaigns" ], "x-klaviyo-operation-aliases": [ "create_campaign_message_assign_template" ], "x-klaviyo-pre-release": "None", "x-klaviyo-ratelimit": { "burst": "10/s", "steady": "150/m" }, "x-klaviyo-scopes": [ "campaigns:write" ], "x-klaviyo-subtag": "Messages" } } }, "components": { "responses": { "ClientError": { "description": "Client Error", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "errors": { "type": "array", "items": { "type": "object", "required": [ "id", "code", "title", "detail" ], "properties": { "id": { "type": "string" }, "code": { "type": "string" }, "title": { "type": "string" }, "detail": { "type": "string" }, "source": { "type": "object", "properties": { "pointer": { "type": "string" }, "parameter": { "type": "string" } } } } } } }, "required": [ "errors" ] } } } }, "ServerError": { "description": "Server Error", "content": { "application/vnd.api+json": { "schema": { "type": "object", "properties": { "errors": { "type": "array", "items": { "type": "object", "required": [ "id", "code", "title", "detail" ], "properties": { "id": { "type": "string" }, "code": { "type": "string" }, "title": { "type": "string" }, "detail": { "type": "string" }, "source": { "type": "object", "properties": { "pointer": { "type": "string" }, "parameter": { "type": "string" } } } } } } }, "required": [ "errors" ] } } } } }, "schemas": { "AgentHints": { "description": "Optional hints emitted by the API for agent callers", "type": "object", "properties": { "next_steps": { "description": "Suggested follow-up actions for agents to take after this response", "type": "array", "items": { "type": "string" } } } }, "CampaignEnum": { "type": "string", "enum": [ "campaign" ] }, "CampaignMessageAssignTemplateQuery": { "type": "object", "properties": { "data": { "$ref": "#/components/schemas/CampaignMessageAssignTemplateQueryResourceObject" } }, "required": [ "data" ] }, "CampaignMessageAssignTemplateQueryResourceObject": { "type": "object", "properties": { "type": { "$ref": "#/components/schemas/CampaignMessageEnum" }, "id": { "description": "The message ID to be assigned to", "type": "string" }, "relationships": { "type": "object", "properties": { "template": { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "$ref": "#/components/schemas/TemplateEnum" }, "id": { "description": "The template ID to assign", "type": "string", "example": "RipRmi" } }, "required": [ "type", "id" ] } } } }, "required": [ "template" ] } }, "required": [ "type", "id", "relationships" ] }, "CampaignMessageEnum": { "type": "string", "enum": [ "campaign-message" ] }, "EmailContentSubObject": { "type": "object", "properties": { "subject": { "description": "The subject of the message", "type": "string", "example": "Buy our product!", "nullable": true }, "preview_text": { "description": "Preview text associated with the message", "type": "string", "example": "My preview text", "nullable": true }, "from_email": { "description": "The email the message should be sent from", "type": "string", "example": "store@my-company.com", "nullable": true }, "from_label": { "description": "The label associated with the from_email", "type": "string", "example": "My Company", "nullable": true }, "reply_to_email": { "description": "Optional Reply-To email address", "type": "string", "example": "reply-to@my-company.com", "nullable": true }, "cc_email": { "description": "Optional CC email address", "type": "string", "example": "cc@my-company.com", "nullable": true }, "bcc_email": { "description": "Optional BCC email address", "type": "string", "example": "bcc@my-company.com", "nullable": true } } }, "ObjectLinks": { "type": "object", "properties": { "self": { "type": "string", "format": "uri" } }, "required": [ "self" ] }, "PostCampaignMessageResponse": { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "$ref": "#/components/schemas/CampaignMessageEnum" }, "id": { "description": "The message ID", "type": "string" }, "attributes": { "type": "object", "properties": { "label": { "description": "The label or name on the message", "type": "string" }, "channel": { "description": "The channel the message is to be sent on", "type": "string" }, "content": { "description": "Additional attributes relating to the content of the message", "oneOf": [ { "$ref": "#/components/schemas/EmailContentSubObject" }, { "$ref": "#/components/schemas/SMSContentSubObject" } ] }, "send_times": { "description": "The list of appropriate Send Time Sub-objects associated with the message", "type": "array", "items": { "$ref": "#/components/schemas/SendTimeSubObject" }, "nullable": true }, "render_options": { "description": "Additional options for rendering the message", "$ref": "#/components/schemas/RenderOptionsSubObject", "nullable": true }, "created_at": { "description": "The datetime when the message was created", "type": "string", "format": "date-time", "example": "2022-11-08T00:00:00+00:00", "nullable": true }, "updated_at": { "description": "The datetime when the message was last updated", "type": "string", "format": "date-time", "example": "2022-11-08T00:00:00+00:00", "nullable": true } }, "required": [ "label", "channel", "content" ] }, "relationships": { "type": "object", "properties": { "campaign": { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "$ref": "#/components/schemas/CampaignEnum" }, "id": { "description": "The parent campaign id", "type": "string" } }, "required": [ "type", "id" ] }, "links": { "$ref": "#/components/schemas/RelationshipLinks" } } }, "template": { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "$ref": "#/components/schemas/TemplateEnum" }, "id": { "description": "The associated template id", "type": "string" } }, "required": [ "type", "id" ] }, "links": { "$ref": "#/components/schemas/RelationshipLinks" } } } } }, "links": { "$ref": "#/components/schemas/ObjectLinks" } }, "required": [ "type", "id", "attributes", "links" ] }, "links": { "$ref": "#/components/schemas/ObjectLinks" }, "meta": { "$ref": "#/components/schemas/ResponseMeta" } }, "required": [ "data" ] }, "RelationshipLinks": { "type": "object", "properties": { "self": { "type": "string", "format": "uri" }, "related": { "type": "string", "format": "uri" } }, "required": [ "self", "related" ] }, "RenderOptionsSubObject": { "type": "object", "properties": { "shorten_links": { "type": "boolean", "example": true, "default": true, "nullable": true }, "add_org_prefix": { "type": "boolean", "example": true, "default": true, "nullable": true }, "add_info_link": { "type": "boolean", "example": true, "default": true, "nullable": true }, "add_opt_out_language": { "type": "boolean", "default": false, "nullable": true } } }, "ResponseMeta": { "description": "Response-level metadata", "type": "object", "properties": { "agent_hints": { "$ref": "#/components/schemas/AgentHints" } } }, "SMSContentSubObject": { "type": "object", "properties": { "body": { "description": "The message body", "type": "string", "example": "My preview sms", "nullable": true }, "media_url": { "description": "URL for included media", "type": "string", "nullable": true } } }, "SendTimeSubObject": { "type": "object", "properties": { "datetime": { "description": "The datetime that the message is to be sent", "type": "string", "format": "date-time", "example": "2022-11-08T00:00:00+00:00" }, "is_local": { "description": "Whether that datetime is to be a local datetime for the recipient", "type": "boolean" } }, "required": [ "datetime", "is_local" ] }, "TemplateEnum": { "type": "string", "enum": [ "template" ] } }, "securitySchemes": { "Klaviyo-API-Key": { "type": "apiKey", "in": "header", "name": "Authorization", "description": "Private key authentication for /api/ endpoints is performed by setting the `Authorization` header to `Klaviyo-API-Key your-private-api-key`
For more information please visit https://developers.klaviyo.com/en/v2026-07-15/reference/api-overview#authentication", "x-default": "Klaviyo-API-Key your-private-api-key" } } }, "tags": [ { "name": "Campaigns", "description": "campaigns" } ] }