Authenticate with Authorization: Klaviyo-API-Key YOUR_KEY and set the revision header to the current stable API version.
List all flows with GET /api/flows/ to identify the target flow ID; use filter query parameters to narrow by name or trigger type if needed.
Retrieve the flow's actions by sending GET /api/flows/{flow_id}/flow-actions/ — each action object describes the type (e.g., send-email) and its current status.
To change a flow's status (e.g., from draft to live), send PATCH /api/flows/{flow_id} with a JSON:API body setting the status attribute to the desired value.
Confirm the change by re-fetching the flow with GET /api/flows/{flow_id} and verifying the status field in the response.
Known gotchas
Beta endpoints require an additional revision header with a .pre suffix — check the docs for which flow-action endpoints are still in beta before relying on them in production.
Flows triggered by a metric (e.g., cart abandonment) cannot be activated via API unless the metric integration is already configured in the Klaviyo account.
PATCH requests to the flow object use JSON:API format — the body must include a data object with type, id, and attributes keys.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp