Klaviyo
live · conformance passing
Models the Klaviyo API a lifecycle marketing or ecommerce support integration actually uses — profiles with upsert semantics and a real duplicate conflict, lists and membership as relationships, consent per channel with suppressions and the bulk jobs that move them, event ingestion that creates its metric and its profile on first use, segments whose membership is derived from their definition on every read rather than stored, campaigns that queue a send job and go out when the environment is advanced, and Customer Hub conversations on WhatsApp, SMS and Instagram whose outbound reply answers 202 with no body at all and is only delivered once the environment is advanced — with private-key authentication, per-resource scope refusals, a dated revision header, per-endpoint burst and steady rate limits with a real Retry-After, and cursor pagination whose links point back at the environment.
- Category
- Marketing
- Environment key
- pk_…
- Verified against
- klaviyo-api 24.0.0
- Replaces
- Testing lifecycle marketing against a production Klaviyo account
What it models
Records your code can read, write and edit for the life of the environment. A route the twin does not model returns a provider-shaped refusal rather than a plausible response.
- account
- profiles
- lists
- list_memberships
- segments
- metrics
- events
- campaigns
- campaign_messages
- templates
- flows
- suppressions
- bulk_jobs
- conversations
- conversation_messages
Verified in CI against
- pythonklaviyo-api24.0.0