{ "openapi": "3.0.2", "info": { "title": "Klaviyo API", "version": "2026-04-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/profiles": { "get": { "operationId": "get_profiles", "summary": "Get Profiles", "description": "Get all profiles in an account.\n\nProfiles can be sorted by the following fields in ascending and descending order: `id`, `created`, `updated`, `email`, `subscriptions.email.marketing.suppression.timestamp`, `subscriptions.email.marketing.list_suppressions.timestamp`\n\nUse the `additional-fields` parameter to include subscriptions and predictive analytics data in your response.

*Rate limits*:
Burst: `75/s`
Steady: `750/m`

Rate limits when using the `additional-fields[profile]=predictive_analytics` parameter in your API request:
Burst: `10/s`
Steady: `150/m`

To learn more about how the `additional-fields` parameter impacts rate limits, check out our [Rate limits, status codes, and errors](https://developers.klaviyo.com/en/v2026-04-15/docs/rate_limits_and_error_handling) guide.\n\n**Scopes:**\n`profiles:read`\n\n[OpenAPI Spec](https://raw.githubusercontent.com/klaviyo/openapi/main/openapi/stable/apis/get_profiles.json)", "parameters": [ { "name": "additional-fields[profile]", "in": "query", "description": "Request additional fields not included by default in the response. Supported values: 'subscriptions', 'predictive_analytics'", "required": false, "schema": { "type": "array", "items": { "type": "string", "enum": [ "subscriptions", "predictive_analytics" ] } }, "explode": false }, { "name": "fields[conversation]", "in": "query", "description": "For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets", "required": false, "schema": { "type": "array", "items": { "type": "string", "enum": [ "id" ] } }, "explode": false }, { "name": "fields[profile]", "in": "query", "description": "For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets", "required": false, "schema": { "type": "array", "items": { "type": "string", "enum": [ "created", "email", "external_id", "first_name", "id", "image", "last_event_date", "last_name", "locale", "location", "location.address1", "location.address2", "location.city", "location.country", "location.ip", "location.latitude", "location.longitude", "location.region", "location.timezone", "location.zip", "organization", "phone_number", "predictive_analytics", "predictive_analytics.average_days_between_orders", "predictive_analytics.average_order_value", "predictive_analytics.churn_probability", "predictive_analytics.expected_date_of_next_order", "predictive_analytics.historic_clv", "predictive_analytics.historic_number_of_orders", "predictive_analytics.predicted_clv", "predictive_analytics.predicted_number_of_orders", "predictive_analytics.ranked_channel_affinity", "predictive_analytics.total_clv", "properties", "subscriptions", "subscriptions.email", "subscriptions.email.marketing", "subscriptions.email.marketing.can_receive_email_marketing", "subscriptions.email.marketing.consent", "subscriptions.email.marketing.consent_timestamp", "subscriptions.email.marketing.custom_method_detail", "subscriptions.email.marketing.double_optin", "subscriptions.email.marketing.last_updated", "subscriptions.email.marketing.list_suppressions", "subscriptions.email.marketing.method", "subscriptions.email.marketing.method_detail", "subscriptions.email.marketing.suppression", "subscriptions.mobile_push", "subscriptions.mobile_push.marketing", "subscriptions.mobile_push.marketing.can_receive_push_marketing", "subscriptions.mobile_push.marketing.consent", "subscriptions.mobile_push.marketing.consent_timestamp", "subscriptions.sms", "subscriptions.sms.marketing", "subscriptions.sms.marketing.can_receive_sms_marketing", "subscriptions.sms.marketing.consent", "subscriptions.sms.marketing.consent_timestamp", "subscriptions.sms.marketing.last_updated", "subscriptions.sms.marketing.method", "subscriptions.sms.marketing.method_detail", "subscriptions.sms.transactional", "subscriptions.sms.transactional.can_receive_sms_transactional", "subscriptions.sms.transactional.consent", "subscriptions.sms.transactional.consent_timestamp", "subscriptions.sms.transactional.last_updated", "subscriptions.sms.transactional.method", "subscriptions.sms.transactional.method_detail", "subscriptions.whatsapp", "subscriptions.whatsapp.conversational", "subscriptions.whatsapp.conversational.can_receive", "subscriptions.whatsapp.conversational.consent", "subscriptions.whatsapp.conversational.consent_timestamp", "subscriptions.whatsapp.conversational.created_timestamp", "subscriptions.whatsapp.conversational.last_updated", "subscriptions.whatsapp.conversational.metadata", "subscriptions.whatsapp.conversational.phone_number", "subscriptions.whatsapp.conversational.valid_until", "subscriptions.whatsapp.marketing", "subscriptions.whatsapp.marketing.can_receive", "subscriptions.whatsapp.marketing.consent", "subscriptions.whatsapp.marketing.consent_timestamp", "subscriptions.whatsapp.marketing.created_timestamp", "subscriptions.whatsapp.marketing.last_updated", "subscriptions.whatsapp.marketing.metadata", "subscriptions.whatsapp.marketing.phone_number", "subscriptions.whatsapp.marketing.valid_until", "subscriptions.whatsapp.transactional", "subscriptions.whatsapp.transactional.can_receive", "subscriptions.whatsapp.transactional.consent", "subscriptions.whatsapp.transactional.consent_timestamp", "subscriptions.whatsapp.transactional.created_timestamp", "subscriptions.whatsapp.transactional.last_updated", "subscriptions.whatsapp.transactional.metadata", "subscriptions.whatsapp.transactional.phone_number", "subscriptions.whatsapp.transactional.valid_until", "title", "updated" ] } }, "explode": false }, { "name": "fields[push-token]", "in": "query", "description": "For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sparse-fieldsets", "required": false, "schema": { "type": "array", "items": { "type": "string", "enum": [ "background", "created", "enablement_status", "id", "metadata", "metadata.app_build", "metadata.app_id", "metadata.app_name", "metadata.app_version", "metadata.device_id", "metadata.device_model", "metadata.environment", "metadata.klaviyo_sdk", "metadata.manufacturer", "metadata.os_name", "metadata.os_version", "metadata.sdk_version", "platform", "recorded_date", "token", "vendor" ] } }, "explode": false }, { "name": "filter", "in": "query", "description": "For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#filtering
Allowed field(s)/operator(s):
`id`: `any`, `equals`
`email`: `any`, `equals`
`phone_number`: `any`, `equals`
`external_id`: `any`, `equals`
`_kx`: `equals`
`created`: `greater-than`, `less-than`
`updated`: `greater-than`, `less-than`
`subscriptions.email.marketing.list_suppressions.reason`: `equals`
`subscriptions.email.marketing.list_suppressions.timestamp`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`
`subscriptions.email.marketing.list_suppressions.list_id`: `equals`
`subscriptions.email.marketing.suppression.reason`: `equals`
`subscriptions.email.marketing.suppression.timestamp`: `greater-or-equal`, `greater-than`, `less-or-equal`, `less-than`", "schema": { "type": "string", "example": "equals(id,'example')" } }, { "name": "include", "in": "query", "description": "For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#relationships", "schema": { "type": "array", "items": { "type": "string", "enum": [ "conversation", "push-tokens" ] } }, "explode": false }, { "name": "page[cursor]", "in": "query", "description": "For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#pagination", "required": false, "schema": { "type": "string" } }, { "name": "page[size]", "in": "query", "description": "Default: 20. Min: 1. Max: 100.", "required": false, "schema": { "type": "integer", "default": 20, "maximum": 100, "minimum": 1 } }, { "name": "sort", "in": "query", "description": "For more information please visit https://developers.klaviyo.com/en/v2026-04-15/reference/api-overview#sorting", "schema": { "type": "string", "enum": [ "created", "-created", "email", "-email", "id", "-id", "subscriptions.email.marketing.list_suppressions.timestamp", "-subscriptions.email.marketing.list_suppressions.timestamp", "subscriptions.email.marketing.suppression.timestamp", "-subscriptions.email.marketing.suppression.timestamp", "updated", "-updated" ] } }, { "name": "revision", "in": "header", "description": "API endpoint revision (format: YYYY-MM-DD[.suffix])", "required": true, "schema": { "type": "string", "default": "2026-04-15" } } ], "responses": { "200": { "description": "Success", "content": { "application/vnd.api+json": { "schema": { "$ref": "#/components/schemas/GetProfileResponseCollectionCompoundDocument" } } } }, "4XX": { "$ref": "#/components/responses/ClientError" }, "5XX": { "$ref": "#/components/responses/ServerError" } }, "tags": [ "Profiles" ], "x-klaviyo-filters": { "id": { "operators": { "list": [ "any", "equals" ], "single": [ "equals" ] }, "value": { "type": "string" } }, "email": { "operators": { "list": [ "any", "equals" ], "single": [ "equals" ] }, "value": { "type": "string" } }, "phone_number": { "operators": { "list": [ "any", "equals" ], "single": [ "equals" ] }, "value": { "type": "string" } }, "external_id": { "operators": { "list": [ "any", "equals" ], "single": [ "equals" ] }, "value": { "type": "string" } }, "_kx": { "operators": { "single": [ "equals" ] }, "value": { "type": "string" } }, "created": { "operators": { "single": [ "greater-than", "less-than" ] }, "value": { "type": "string", "format": "date-time" } }, "updated": { "operators": { "single": [ "greater-than", "less-than" ] }, "value": { "type": "string", "format": "date-time" } }, "subscriptions.email.marketing.list_suppressions.reason": { "operators": { "single": [ "equals" ] }, "value": { "type": "string" } }, "subscriptions.email.marketing.list_suppressions.timestamp": { "operators": { "single": [ "greater-or-equal", "greater-than", "less-or-equal", "less-than" ] }, "value": { "type": "string", "format": "date-time" } }, "subscriptions.email.marketing.list_suppressions.list_id": { "operators": { "single": [ "equals" ] }, "value": { "type": "string" } }, "subscriptions.email.marketing.suppression.reason": { "operators": { "single": [ "equals" ] }, "value": { "type": "string" } }, "subscriptions.email.marketing.suppression.timestamp": { "operators": { "single": [ "greater-or-equal", "greater-than", "less-or-equal", "less-than" ] }, "value": { "type": "string", "format": "date-time" } } }, "x-klaviyo-pre-release": "None", "x-klaviyo-ratelimit": { "burst": "75/s", "steady": "750/m" }, "x-klaviyo-scopes": [ "profiles:read" ] } } }, "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": { "CollectionLinks": { "type": "object", "properties": { "self": { "type": "string", "format": "uri" }, "prev": { "type": "string", "format": "uri" }, "next": { "type": "string", "format": "uri" } }, "required": [ "self" ] }, "ConversationEnum": { "type": "string", "enum": [ "conversation" ] }, "ConversationResponseObjectResource": { "type": "object", "properties": { "type": { "$ref": "#/components/schemas/ConversationEnum" }, "id": { "type": "string" }, "relationships": { "type": "object", "properties": { "profile": { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "$ref": "#/components/schemas/ProfileEnum" }, "id": { "type": "string" } }, "required": [ "type", "id" ] }, "links": { "$ref": "#/components/schemas/RelationshipLinks" } } } } }, "links": { "$ref": "#/components/schemas/ObjectLinks" } }, "required": [ "type", "id", "links" ] }, "DeviceMetadata": { "type": "object", "properties": { "device_id": { "description": "Relatively stable ID for the device. Will update on app uninstall and reinstall", "type": "string", "example": "1234567890", "nullable": true }, "klaviyo_sdk": { "description": "The name of the SDK used to create the push token.", "type": "string", "example": "swift", "enum": [ "android", "flutter", "flutter_community", "react_native", "swift" ], "nullable": true }, "sdk_version": { "description": "The version of the SDK used to create the push token", "type": "string", "example": "1.0.0", "nullable": true }, "device_model": { "description": "The model of the device", "type": "string", "example": "iPhone12,1", "nullable": true }, "os_name": { "description": "The name of the operating system on the device.", "type": "string", "example": "ios", "enum": [ "android", "ios", "ipados", "macos", "tvos" ], "nullable": true }, "os_version": { "description": "The version of the operating system on the device", "type": "string", "example": "14.0", "nullable": true }, "manufacturer": { "description": "The manufacturer of the device", "type": "string", "example": "Apple", "nullable": true }, "app_name": { "description": "The name of the app that created the push token", "type": "string", "example": "Klaviyo", "nullable": true }, "app_version": { "description": "The version of the app that created the push token", "type": "string", "example": "1.0.0", "nullable": true }, "app_build": { "description": "The build of the app that created the push token", "type": "string", "example": "1", "nullable": true }, "app_id": { "description": "The ID of the app that created the push token", "type": "string", "example": "com.klaviyo.app", "nullable": true }, "environment": { "description": "The environment in which the push token was created", "type": "string", "example": "release", "enum": [ "debug", "release" ], "nullable": true } } }, "EmailChannel": { "type": "object", "properties": { "marketing": { "description": "The email marketing subscription.", "$ref": "#/components/schemas/EmailMarketing", "nullable": true } } }, "EmailMarketing": { "type": "object", "properties": { "can_receive_email_marketing": { "description": "Whether or not this profile has implicit consent to receive email marketing. True if it does profile does not have any global suppressions.", "type": "boolean" }, "consent": { "description": "The consent status for email marketing.", "type": "string", "example": "SUBSCRIBED" }, "consent_timestamp": { "description": "The timestamp when consent was recorded or updated for email marketing, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", "type": "string", "format": "date-time", "example": "2023-02-21T20:07:38+00:00", "nullable": true }, "last_updated": { "description": "The timestamp when a field on the email marketing object was last modified.", "type": "string", "format": "date-time", "example": "2023-02-21T20:07:38+00:00", "nullable": true }, "method": { "description": "The method by which the profile was subscribed to email marketing.", "type": "string", "example": "PREFERENCE_PAGE", "nullable": true }, "method_detail": { "description": "Additional details about the method by which the profile was subscribed to email marketing. This may be empty if no details were provided.", "type": "string", "example": "mydomain.com/signup", "default": "", "nullable": true }, "custom_method_detail": { "description": "Additional detail provided by the caller when the profile was subscribed. This may be empty if no details were provided.", "type": "string", "example": "marketing drive", "nullable": true }, "double_optin": { "description": "Whether the profile was subscribed to email marketing using a double opt-in.", "type": "boolean", "example": true, "nullable": true }, "suppression": { "description": "The global email marketing suppression for this profile.", "type": "array", "items": { "$ref": "#/components/schemas/EmailMarketingSuppression" }, "nullable": true }, "list_suppressions": { "description": "The list suppressions for this profile.", "type": "array", "items": { "$ref": "#/components/schemas/EmailMarketingListSuppression" }, "nullable": true } }, "required": [ "can_receive_email_marketing", "consent" ] }, "EmailMarketingListSuppression": { "type": "object", "properties": { "list_id": { "description": "The ID of list to which the suppression applies.", "type": "string", "example": "Y6nRLr" }, "reason": { "description": "The reason the profile was suppressed from the list.", "type": "string", "example": "USER_SUPPRESSED" }, "timestamp": { "description": "The timestamp when the profile was suppressed from the list, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", "type": "string", "format": "date-time", "example": "2023-02-21T20:07:38+00:00" } }, "required": [ "list_id", "reason", "timestamp" ] }, "EmailMarketingSuppression": { "type": "object", "properties": { "reason": { "description": "The reason the profile was suppressed.", "type": "string", "example": "HARD_BOUNCE", "enum": [ "HARD_BOUNCE", "INVALID_EMAIL", "SPAM_COMPLAINT", "UNSUBSCRIBE", "USER_SUPPRESSED" ] }, "timestamp": { "description": "The timestamp when the profile was suppressed, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", "type": "string", "format": "date-time", "example": "2023-02-21T20:07:38+00:00" } }, "required": [ "reason", "timestamp" ] }, "GetProfileResponseCollectionCompoundDocument": { "type": "object", "properties": { "data": { "type": "array", "items": { "allOf": [ { "properties": { "type": { "$ref": "#/components/schemas/ProfileEnum" }, "attributes": { "properties": { "subscriptions": { "$ref": "#/components/schemas/Subscriptions", "nullable": true }, "predictive_analytics": { "$ref": "#/components/schemas/PredictiveAnalytics", "nullable": true } } } } }, { "$ref": "#/components/schemas/ProfileResponseObjectResource" } ] } }, "links": { "$ref": "#/components/schemas/CollectionLinks" }, "included": { "type": "array", "items": { "oneOf": [ { "$ref": "#/components/schemas/ConversationResponseObjectResource" }, { "$ref": "#/components/schemas/PushTokenResponseObjectResource" } ] } } }, "required": [ "data" ] }, "ListEnum": { "type": "string", "enum": [ "list" ] }, "ObjectLinks": { "type": "object", "properties": { "self": { "type": "string", "format": "uri" } }, "required": [ "self" ] }, "PredictiveAnalytics": { "type": "object", "properties": { "historic_clv": { "description": "Total value of all historically placed orders", "type": "number", "example": 93.87, "nullable": true }, "predicted_clv": { "description": "Predicted value of all placed orders in the next 365 days", "type": "number", "example": 27.24, "nullable": true }, "total_clv": { "description": "Sum of historic and predicted CLV", "type": "number", "example": 121.11, "nullable": true }, "historic_number_of_orders": { "description": "Number of already placed orders", "type": "number", "example": 2, "nullable": true }, "predicted_number_of_orders": { "description": "Predicted number of placed orders in the next 365 days", "type": "number", "example": 0.54, "nullable": true }, "average_days_between_orders": { "description": "Average number of days between orders (None if only one order has been placed)", "type": "number", "example": 189, "nullable": true }, "average_order_value": { "description": "Average value of placed orders", "type": "number", "example": 46.94, "nullable": true }, "churn_probability": { "description": "Probability the customer has churned", "type": "number", "example": 0.89, "nullable": true }, "expected_date_of_next_order": { "description": "Expected date of next order, as calculated at the time of their most recent order", "type": "string", "format": "date-time", "example": "2022-11-08T00:00:00+00:00", "nullable": true }, "ranked_channel_affinity": { "description": "List of channels ranked by their predicted effectiveness for this profile, with the best channel being listed first at index 0", "type": "array", "items": { "type": "string", "enum": [ "email", "push", "sms", "whatsapp" ], "description": "Enum for channel name return values used in the V3 API for channel affinity for the field `ranked_channel_affinity`." }, "example": [ "sms", "email", "push" ], "nullable": true } } }, "ProfileEnum": { "type": "string", "enum": [ "profile" ] }, "ProfileLocation": { "type": "object", "properties": { "address1": { "description": "First line of street address", "type": "string", "example": "89 E 42nd St", "nullable": true }, "address2": { "description": "Second line of street address", "type": "string", "example": "1st floor", "nullable": true }, "city": { "description": "City name", "type": "string", "example": "New York", "nullable": true }, "country": { "description": "Country name", "type": "string", "example": "United States", "nullable": true }, "latitude": { "description": "Latitude coordinate. We recommend providing a precision of four decimal places.", "example": "40.7128", "nullable": true, "oneOf": [ { "type": "string" }, { "type": "number" } ] }, "longitude": { "description": "Longitude coordinate. We recommend providing a precision of four decimal places.", "example": "74.0060", "nullable": true, "oneOf": [ { "type": "string" }, { "type": "number" } ] }, "region": { "description": "Region within a country, such as state or province", "type": "string", "example": "NY", "nullable": true }, "zip": { "description": "Zip code", "type": "string", "example": "10017", "nullable": true }, "timezone": { "description": "Time zone name. We recommend using time zones from the IANA Time Zone Database.", "type": "string", "example": "America/New_York", "nullable": true }, "ip": { "description": "IP Address", "type": "string", "example": "127.0.0.1", "nullable": true } } }, "ProfileResponseObjectResource": { "type": "object", "properties": { "type": { "$ref": "#/components/schemas/ProfileEnum" }, "id": { "description": "Primary key that uniquely identifies this profile. Generated by Klaviyo.", "type": "string", "example": "01GDDKASAP8TKDDA2GRZDSVP4H", "nullable": true }, "attributes": { "type": "object", "properties": { "email": { "description": "Individual's email address", "type": "string", "example": "sarah.mason@klaviyo-demo.com", "nullable": true }, "phone_number": { "description": "Individual's phone number in E.164 format", "type": "string", "example": "+15005550006", "nullable": true }, "external_id": { "description": "A unique identifier used by customers to associate Klaviyo profiles with profiles in an external system, such as a point-of-sale system. Format varies based on the external system.", "type": "string", "nullable": true }, "first_name": { "description": "Individual's first name", "type": "string", "example": "Sarah", "nullable": true }, "last_name": { "description": "Individual's last name", "type": "string", "example": "Mason", "nullable": true }, "organization": { "description": "Name of the company or organization within the company for whom the individual works", "type": "string", "example": "Example Corporation", "nullable": true }, "locale": { "description": "The locale of the profile, in the IETF BCP 47 language tag format like (ISO 639-1/2)-(ISO 3166 alpha-2)", "type": "string", "example": "en-US", "nullable": true }, "title": { "description": "Individual's job title", "type": "string", "example": "Regional Manager", "nullable": true }, "image": { "description": "URL pointing to the location of a profile image", "type": "string", "example": "https://images.pexels.com/photos/3760854/pexels-photo-3760854.jpeg", "nullable": true }, "created": { "description": "Date and time when the profile was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)", "type": "string", "format": "date-time", "example": "2022-11-08T00:00:00+00:00", "nullable": true }, "updated": { "description": "Date and time when the profile was last updated, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)", "type": "string", "format": "date-time", "example": "2022-11-08T00:00:00+00:00", "nullable": true }, "last_event_date": { "description": "Date and time of the most recent event the triggered an update to the profile, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm)", "type": "string", "format": "date-time", "example": "2022-11-08T00:00:00+00:00", "nullable": true }, "location": { "$ref": "#/components/schemas/ProfileLocation", "nullable": true }, "properties": { "description": "An object containing key/value pairs for any custom properties assigned to this profile", "type": "object", "example": { "pseudonym": "Dr. Octopus" }, "nullable": true } } }, "relationships": { "type": "object", "properties": { "lists": { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "required": [ "type", "id" ], "properties": { "type": { "$ref": "#/components/schemas/ListEnum" }, "id": { "type": "string" } } } }, "links": { "$ref": "#/components/schemas/RelationshipLinks" } } }, "segments": { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "required": [ "type", "id" ], "properties": { "type": { "$ref": "#/components/schemas/SegmentEnum" }, "id": { "type": "string" } } } }, "links": { "$ref": "#/components/schemas/RelationshipLinks" } } }, "push-tokens": { "type": "object", "properties": { "data": { "type": "array", "items": { "type": "object", "required": [ "type", "id" ], "properties": { "type": { "$ref": "#/components/schemas/PushTokenEnum" }, "id": { "type": "string" } } } }, "links": { "$ref": "#/components/schemas/RelationshipLinks" } } } } }, "links": { "$ref": "#/components/schemas/ObjectLinks" } }, "required": [ "type", "attributes", "links" ] }, "PushChannel": { "type": "object", "properties": { "marketing": { "description": "The mobile push marketing subscription.", "$ref": "#/components/schemas/PushMarketing", "nullable": true } } }, "PushMarketing": { "type": "object", "properties": { "can_receive_push_marketing": { "description": "Whether or not this profile is subscribed to receive mobile push.", "type": "boolean" }, "consent": { "description": "The consent status for mobile push marketing.", "type": "string", "example": "SUBSCRIBED" }, "consent_timestamp": { "description": "The timestamp when the consent was last changed, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", "type": "string", "format": "date-time", "example": "2023-02-21T20:07:38+00:00", "nullable": true } }, "required": [ "can_receive_push_marketing", "consent" ] }, "PushTokenEnum": { "type": "string", "enum": [ "push-token" ] }, "PushTokenResponseObjectResource": { "type": "object", "properties": { "type": { "$ref": "#/components/schemas/PushTokenEnum" }, "id": { "description": "ID of push token", "type": "string" }, "attributes": { "type": "object", "properties": { "created": { "description": "The time at which the token was created", "type": "string", "format": "date-time", "example": "2022-11-08T00:00:00+00:00" }, "token": { "description": "The push token", "type": "string" }, "enablement_status": { "description": "The enablement status of the push token", "type": "string", "enum": [ "AUTHORIZED", "DENIED", "NOT_DETERMINED", "PROVISIONAL", "UNAUTHORIZED" ] }, "platform": { "description": "The platform of the push token('ios', 'android')", "type": "string", "enum": [ "android", "ios" ] }, "vendor": { "description": "The vendor of the push token('APNs', 'FCM')", "type": "string" }, "background": { "description": "The background state of the push token", "type": "string" }, "recorded_date": { "description": "The date the push token was recorded", "type": "string" }, "metadata": { "description": "Metadata of device", "$ref": "#/components/schemas/DeviceMetadata", "nullable": true } }, "required": [ "created", "token", "enablement_status", "platform", "vendor", "background", "recorded_date" ] }, "relationships": { "type": "object", "properties": { "profile": { "type": "object", "properties": { "data": { "type": "object", "properties": { "type": { "$ref": "#/components/schemas/ProfileEnum" }, "id": { "description": "The profile associated with the push token", "type": "string" } }, "required": [ "type", "id" ] }, "links": { "$ref": "#/components/schemas/RelationshipLinks" } } } } }, "links": { "$ref": "#/components/schemas/ObjectLinks" } }, "required": [ "type", "id", "attributes", "links" ] }, "RelationshipLinks": { "type": "object", "properties": { "self": { "type": "string", "format": "uri" }, "related": { "type": "string", "format": "uri" } }, "required": [ "self", "related" ] }, "SMSChannel": { "type": "object", "properties": { "marketing": { "description": "The SMS marketing subscription.", "$ref": "#/components/schemas/SMSMarketing", "nullable": true }, "transactional": { "description": "The SMS transactional subscription.", "$ref": "#/components/schemas/SMSTransactional", "nullable": true } } }, "SMSMarketing": { "type": "object", "properties": { "can_receive_sms_marketing": { "description": "Whether or not this profile is subscribed to receive SMS marketing.", "type": "boolean" }, "consent": { "description": "The consent status for SMS marketing.", "type": "string", "example": "SUBSCRIBED" }, "consent_timestamp": { "description": "The timestamp when consent was recorded or updated for SMS marketing, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", "type": "string", "format": "date-time", "example": "2023-02-21T20:07:38+00:00", "nullable": true }, "method": { "description": "The method by which the profile was subscribed to SMS marketing.", "type": "string", "example": "TEXT", "nullable": true }, "method_detail": { "description": "Additional details about the method which the profile was subscribed to SMS marketing. This may be empty if no details were provided.", "type": "string", "example": "JOIN", "default": "", "nullable": true }, "last_updated": { "description": "The timestamp when the SMS consent record was last modified, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", "type": "string", "format": "date-time", "example": "2023-02-21T20:07:38+00:00", "nullable": true } }, "required": [ "can_receive_sms_marketing", "consent" ] }, "SMSTransactional": { "type": "object", "properties": { "can_receive_sms_transactional": { "description": "Whether or not this profile is subscribed to receive transactional SMS.", "type": "boolean" }, "consent": { "description": "The consent status for SMS Transactional.", "type": "string", "example": "SUBSCRIBED" }, "consent_timestamp": { "description": "The timestamp when consent was recorded or updated for Transactional SMS messaging , in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", "type": "string", "format": "date-time", "example": "2023-02-21T20:07:38+00:00", "nullable": true }, "method": { "description": "The method by which the profile was subscribed to Transactional SMS messaging .", "type": "string", "example": "TEXT", "nullable": true }, "method_detail": { "description": "Additional details about the method which the profile was subscribed to Transactional SMS messaging. This may be empty if no details were provided.", "type": "string", "example": "JOIN", "default": "", "nullable": true }, "last_updated": { "description": "The timestamp when the SMS consent record was last modified, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", "type": "string", "format": "date-time", "example": "2023-02-21T20:07:38+00:00", "nullable": true } }, "required": [ "can_receive_sms_transactional", "consent" ] }, "SegmentEnum": { "type": "string", "enum": [ "segment" ] }, "Subscriptions": { "type": "object", "properties": { "email": { "description": "The email channel subscription.", "$ref": "#/components/schemas/EmailChannel", "nullable": true }, "sms": { "description": "The SMS channel subscription.", "$ref": "#/components/schemas/SMSChannel", "nullable": true }, "mobile_push": { "description": "The mobile push channel subscription.", "$ref": "#/components/schemas/PushChannel", "nullable": true }, "whatsapp": { "description": "The whatsapp channel subscription.", "$ref": "#/components/schemas/WhatsappChannel", "nullable": true } } }, "WhatsappChannel": { "type": "object", "properties": { "marketing": { "description": "The Whatsapp marketing subscription.", "$ref": "#/components/schemas/WhatsappMarketingChannel", "nullable": true }, "transactional": { "description": "The Whatsapp transactional subscription.", "$ref": "#/components/schemas/WhatsappTransactionalChannel", "nullable": true }, "conversational": { "description": "The Whatsapp conversational subscription.", "$ref": "#/components/schemas/WhatsappConversationalChannel", "nullable": true } } }, "WhatsappConversationalChannel": { "type": "object", "properties": { "consent": { "description": "The consent status for the channel.", "type": "string", "example": "SUBSCRIBED" }, "consent_timestamp": { "description": "The timestamp when consent was recorded or updated for the channel, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", "type": "string", "format": "date-time", "example": "2023-02-21T20:07:38+00:00", "nullable": true }, "last_updated": { "description": "The timestamp when the channel was last modified, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", "type": "string", "format": "date-time", "example": "2023-02-21T20:07:38+00:00", "nullable": true }, "created_timestamp": { "description": "The timestamp when the channel was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", "type": "string", "format": "date-time", "example": "2023-02-21T20:07:38+00:00", "nullable": true }, "metadata": { "description": "Channel-specific metadata containing additional information about the permission.", "type": "object", "nullable": true }, "can_receive": { "description": "Whether the profile can receive messages on this channel.", "type": "boolean" }, "valid_until": { "description": "Optional expiration date for the permission, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", "type": "string", "format": "date-time", "example": "2024-02-21T20:07:38+00:00", "nullable": true }, "phone_number": { "description": "Phone number to which the consent was granted for.", "type": "string" } }, "required": [ "consent", "can_receive", "phone_number" ] }, "WhatsappMarketingChannel": { "type": "object", "properties": { "consent": { "description": "The consent status for the channel.", "type": "string", "example": "SUBSCRIBED" }, "consent_timestamp": { "description": "The timestamp when consent was recorded or updated for the channel, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", "type": "string", "format": "date-time", "example": "2023-02-21T20:07:38+00:00", "nullable": true }, "last_updated": { "description": "The timestamp when the channel was last modified, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", "type": "string", "format": "date-time", "example": "2023-02-21T20:07:38+00:00", "nullable": true }, "created_timestamp": { "description": "The timestamp when the channel was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", "type": "string", "format": "date-time", "example": "2023-02-21T20:07:38+00:00", "nullable": true }, "metadata": { "description": "Channel-specific metadata containing additional information about the permission.", "type": "object", "nullable": true }, "can_receive": { "description": "Whether the profile can receive messages on this channel.", "type": "boolean" }, "valid_until": { "description": "Optional expiration date for the permission, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", "type": "string", "format": "date-time", "example": "2024-02-21T20:07:38+00:00", "nullable": true }, "phone_number": { "description": "Phone number to which the consent was granted for.", "type": "string" } }, "required": [ "consent", "can_receive", "phone_number" ] }, "WhatsappTransactionalChannel": { "type": "object", "properties": { "consent": { "description": "The consent status for the channel.", "type": "string", "example": "SUBSCRIBED" }, "consent_timestamp": { "description": "The timestamp when consent was recorded or updated for the channel, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", "type": "string", "format": "date-time", "example": "2023-02-21T20:07:38+00:00", "nullable": true }, "last_updated": { "description": "The timestamp when the channel was last modified, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", "type": "string", "format": "date-time", "example": "2023-02-21T20:07:38+00:00", "nullable": true }, "created_timestamp": { "description": "The timestamp when the channel was created, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", "type": "string", "format": "date-time", "example": "2023-02-21T20:07:38+00:00", "nullable": true }, "metadata": { "description": "Channel-specific metadata containing additional information about the permission.", "type": "object", "nullable": true }, "can_receive": { "description": "Whether the profile can receive messages on this channel.", "type": "boolean" }, "valid_until": { "description": "Optional expiration date for the permission, in ISO 8601 format (YYYY-MM-DDTHH:MM:SS.mmmmmm).", "type": "string", "format": "date-time", "example": "2024-02-21T20:07:38+00:00", "nullable": true }, "phone_number": { "description": "Phone number to which the consent was granted for.", "type": "string" } }, "required": [ "consent", "can_receive", "phone_number" ] } }, "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-04-15/reference/api-overview#authentication", "x-default": "Klaviyo-API-Key your-private-api-key" } } }, "tags": [ { "name": "Profiles", "description": "profiles" } ] }