A request to subscribe the current profile to a Klaviyo list, with per-channel consent.

Set the profile's email and/or phone number before subscribing — the native SDKs drop a request whose channel has no matching identifier on the profile, and log a warning.

interface Subscription {
    channels: SubscriptionChannels | "allAvailableMarketing";
    customSource?: string;
    listId: string;
}

Properties

channels: SubscriptionChannels | "allAvailableMarketing"

Channels and consent sub-types to request, or ALL_AVAILABLE_MARKETING to request marketing consent on every identified channel.

Required so a broad consent grant is always an explicit choice.

customSource?: string

Free-text label describing where this signup originated (e.g. a form or screen name), stored as the consent record's $source. Omitted from the request when absent.

listId: string

ID of the Klaviyo list to subscribe the profile to.