POST /client/subscriptions
Creates a subscription and consent record for email and/or SMS channels based on the provided email and phone_number attributes, respectively. One of either email or phone_number must be provided.
This endpoint is specifically designed to be called from publicly-browseable, client-side environments only and requires a public API key (site ID). Never use a private API key with our client-side endpoints.
Do not use this endpoint from server-side applications. To subscribe profiles from server-side applications, instead use POST /api/profile-subscription-bulk-create-jobs.
Profiles can be opted into multiple channels: email marketing, SMS marketing, and SMS transactional. You can specify the channel(s) to subscribe the profile to by providing a subscriptions object in the profile attributes.
If you include a subscriptions object, only channels in that object will be subscribed. You can use this to update email or phone on the profile without subscribing them, for example, by setting the profile property but omitting that channel in the subscriptions object. If a subscriptions object is not provided, subscriptions are defaulted to MARKETING.
Rate limits:
Burst: 350/s
Steady: 750/m
Scopes:
subscriptions:write
OpenAPI Spec
Servers
- https://a.klaviyo.com
Request headers
| Name | Type | Required | Description |
|---|---|---|---|
revision |
String | Yes |
API endpoint revision (format: YYYY-MM-DD[.suffix]) Default value: "2026-04-15" |
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
company_id |
String | Yes |
Your Public API Key / Site ID. See this article for more details. |
How to start integrating
- Add HTTP Task to your workflow definition.
- Search for the API you want to integrate with and click on the name.
- This loads the API reference documentation and prepares the Http request settings.
- Click Test request to test run your request to the API and see the API's response.