{"command":{"effect":"write","timeoutSeconds":30,"inputSchema":{"type":"object","description":"Subscribe one or more profiles to email marketing, SMS marketing, WhatsApp, or push. If the provided list has double opt-in enabled, profiles will receive a message requiring their confirmation before subscribing. Otherwise, profiles will be immediately subscribed without receiving a confirmation message. Learn more about [consent in this guide](https://developers.klaviyo.com/en/docs/collect_email_and_sms_consent_via_api).\n\nIf a list is not provided, the opt-in process used will be determined by the [account-level default opt-in setting](https://www.klaviyo.com/settings/account/api-keys).\n\nTo add someone to a list without changing their subscription status, use [Add Profile to List](https://developers.klaviyo.com/en/reference/create_list_relationships).\n\nThis API will remove any `UNSUBSCRIBE`, `SPAM_REPORT` or `USER_SUPPRESSED` suppressions from the provided profiles. Learn more about [suppressed profiles](https://help.klaviyo.com/hc/en-us/articles/115005246108-Understanding-suppressed-email-profiles#what-is-a-suppressed-profile-1).\n\nMaximum number of profiles can be submitted for subscription: 1000\n\nThis endpoint now supports a `historical_import` flag. If this flag is set `true`, profiles being subscribed will bypass double opt-in emails and be subscribed immediately. They will also bypass any associated \"Added to list\" flows. This is useful for importing historical data where you have already collected consent. If `historical_import` is set to true, the `consented_at` field is required and must be in the past.\n\nPush tokens provided in `push_tokens` will be registered for each profile as long as push subscriptions are consented to.<br><br>*Rate limits*:<br>Burst: `75/s`<br>Steady: `750/m`\n\n**Scopes:**\n`lists:write`\n`profiles:write`\n`subscriptions:write`\n\n[OpenAPI Spec](https://raw.githubusercontent.com/klaviyo/openapi/main/openapi/stable/apis/bulk_subscribe_profiles.json)","properties":{"headers":{"type":"object","properties":{"revision":{"type":"string","default":"2026-10-15","enum":["2026-10-15"],"description":"API endpoint revision (format: YYYY-MM-DD[.suffix])"}},"required":["revision"],"additionalProperties":false},"body":{"$ref":"#/definitions/SubscriptionCreateJobCreateQuery"}},"required":["headers","body"],"additionalProperties":false,"definitions":{"SubscriptionCreateJobCreateQuery":{"type":"object","properties":{"data":{"$ref":"#/definitions/SubscriptionCreateJobCreateQueryResourceObject"}},"required":["data"]},"SubscriptionCreateJobCreateQueryResourceObject":{"type":"object","properties":{"type":{"$ref":"#/definitions/ProfileSubscriptionBulkCreateJobEnum"},"attributes":{"type":"object","properties":{"custom_source":{"description":"A custom method detail or source to store on the consent records.","type":["string","null"],"examples":["Marketing Event"]},"profiles":{"description":"The profile(s) to subscribe","type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/definitions/ProfileSubscriptionCreateQueryResourceObject"}}},"required":["data"]},"historical_import":{"description":"Whether this subscription is part of a historical import. If true, the consented_at field must be provided for each profile.","type":["boolean","null"],"default":false}},"required":["profiles"]},"relationships":{"type":"object","properties":{"list":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"$ref":"#/definitions/ListEnum"},"id":{"description":"The list to add the newly subscribed profiles to","type":"string","examples":["Y6nRLr"]}},"required":["type","id"]}}}}}},"required":["type","attributes"]},"ProfileSubscriptionBulkCreateJobEnum":{"type":"string","enum":["profile-subscription-bulk-create-job"]},"ProfileSubscriptionCreateQueryResourceObject":{"type":"object","properties":{"type":{"$ref":"#/definitions/ProfileEnum"},"id":{"description":"The ID of the profile to subscribe. If provided, this will be used to perform the lookup.","type":["string","null"],"examples":["01GDDKASAP8TKDDA2GRZDSVP4H"]},"attributes":{"type":"object","properties":{"email":{"description":"The email address relating to the email subscription included in `subscriptions`. If the email channel is omitted from `subscriptions`, this will be set on the profile.","type":["string","null"],"examples":["matt-kemp@klaviyo-demo.com"]},"phone_number":{"description":"The phone number relating to the SMS subscription included in `subscriptions`. If the SMS channel is omitted from `subscriptions`, this will be set on the profile. This must be in E.164 format.","type":["string","null"],"examples":["+15005550006"]},"subscriptions":{"$ref":"#/definitions/SubscriptionChannels"},"age_gated_date_of_birth":{"description":"The profile's date of birth. This field is required to update SMS consent for accounts using age-gating: https://help.klaviyo.com/hc/en-us/articles/17252552814875","type":["string","null"],"format":"date"}},"required":["subscriptions"]}},"required":["type","attributes"]},"ListEnum":{"type":"string","enum":["list"]},"ProfileEnum":{"type":"string","enum":["profile"]},"SubscriptionChannels":{"type":"object","properties":{"email":{"$ref":"#/definitions/EmailSubscriptionParameters"},"sms":{"$ref":"#/definitions/SMSSubscriptionParameters"},"whatsapp":{"$ref":"#/definitions/WhatsAppSubscriptionParameters"},"push":{"$ref":"#/definitions/PushSubscriptionParameters"}}},"EmailSubscriptionParameters":{"type":"object","properties":{"marketing":{"$ref":"#/definitions/SubscriptionParameters"},"open_tracking":{"$ref":"#/definitions/OpenTrackingSubscriptionParameters"},"click_tracking":{"$ref":"#/definitions/ClickTrackingSubscriptionParameters"}}},"SMSSubscriptionParameters":{"type":"object","properties":{"marketing":{"$ref":"#/definitions/SubscriptionParameters"},"transactional":{"$ref":"#/definitions/SubscriptionParameters"}}},"WhatsAppSubscriptionParameters":{"type":"object","properties":{"marketing":{"$ref":"#/definitions/SubscriptionParameters"},"transactional":{"$ref":"#/definitions/SubscriptionParameters"}}},"PushSubscriptionParameters":{"type":"object","properties":{"marketing":{"$ref":"#/definitions/SubscriptionParameters"},"tokens":{"description":"A list of push tokens to register for this profile.","type":["array","null"],"items":{"$ref":"#/definitions/PushTokenEntry"}},"anonymous_id":{"description":"An anonymous identifier for push-only profiles with no email/phone.","type":["string","null"]}},"required":["marketing"]},"SubscriptionParameters":{"type":"object","properties":{"consent":{"description":"The Consent status to be set as part of the subscribe call. Currently supports \"SUBSCRIBED\".","type":"string","enum":["SUBSCRIBED"],"examples":["SUBSCRIBED"]},"consented_at":{"description":"The timestamp of when the profile's consent was gathered. This should only be used when syncing over historical consent info to Klaviyo; if the `historical_import` flag is not included, providing any value for this field will raise an error.","type":["string","null"],"format":"date-time"}},"required":["consent"]},"OpenTrackingSubscriptionParameters":{"type":"object","properties":{"consent":{"description":"The open-tracking consent to grant. Currently supports \"SUBSCRIBED\".","type":"string","enum":["SUBSCRIBED"],"examples":["SUBSCRIBED"]}},"required":["consent"]},"ClickTrackingSubscriptionParameters":{"type":"object","properties":{"consent":{"description":"The click-tracking consent to grant. Currently supports \"SUBSCRIBED\".","type":"string","enum":["SUBSCRIBED"],"examples":["SUBSCRIBED"]}},"required":["consent"]},"PushTokenEntry":{"type":"object","properties":{"token":{"description":"A push token from APNS or FCM.","type":"string","examples":["1234567890abcdef"]},"platform":{"description":"The platform on which the push token was created. Either \"ios\" or \"android\".","type":"string","enum":["android","ios"]},"vendor":{"description":"The vendor of the push token. Either \"apns\" or \"fcm\".","type":"string","enum":["apns","fcm"],"examples":["apns"]},"enablement_status":{"description":"The enablement status for the push token.","type":["string","null"],"enum":["AUTHORIZED","DENIED","NOT_DETERMINED","PROVISIONAL","UNAUTHORIZED"],"examples":["AUTHORIZED"]},"background":{"description":"The background state of the push token.","type":["string","null"],"enum":["AVAILABLE","DENIED","RESTRICTED"],"examples":["AVAILABLE"]},"device_metadata":{"$ref":"#/definitions/PushTokenDeviceMetadata"}},"required":["token","platform","vendor"]},"PushTokenDeviceMetadata":{"type":"object","properties":{"device_id":{"description":"Relatively stable ID for the device. Will update on app uninstall and reinstall","type":["string","null"],"examples":["1234567890"]},"klaviyo_sdk":{"description":"The name of the SDK used to create the push token.","type":["string","null"],"enum":["android","flutter","flutter_community","react_native","swift"],"examples":["swift"]},"sdk_version":{"description":"The version of the SDK used to create the push token","type":["string","null"],"examples":["1.0.0"]},"device_model":{"description":"The model of the device","type":["string","null"],"examples":["iPhone12,1"]},"os_name":{"description":"The name of the operating system on the device.","type":["string","null"],"enum":["android","ios","ipados","macos","tvos"],"examples":["ios"]},"os_version":{"description":"The version of the operating system on the device","type":["string","null"],"examples":["14.0"]},"manufacturer":{"description":"The manufacturer of the device","type":["string","null"],"examples":["Apple"]},"app_name":{"description":"The name of the app that created the push token","type":["string","null"],"examples":["Klaviyo"]},"app_version":{"description":"The version of the app that created the push token","type":["string","null"],"examples":["1.0.0"]},"app_build":{"description":"The build of the app that created the push token","type":["string","null"],"examples":["1"]},"app_id":{"description":"The ID of the app that created the push token","type":["string","null"],"examples":["com.klaviyo.app"]},"environment":{"description":"The environment in which the push token was created","type":["string","null"],"enum":["debug","release"],"examples":["release"]}}}}},"name":"Bulk Subscribe Profiles","id":"klaviyo.bulk_subscribe_profiles","example":{"headers":{"revision":"2026-10-15"},"body":{"data":{"type":"profile-subscription-bulk-create-job","attributes":{"profiles":{"data":[]}}}}},"maxRequests":1,"summary":false}}