openapi: 3.1.0
info:
title: API Reference subpackage_advertisement_opportunities subpackage_bulk_subscriptions API
version: 1.0.0
servers:
- url: https://api.beehiiv.com/v2
tags:
- name: subpackage_bulk_subscriptions
paths:
/publications/{publicationId}/bulk_subscriptions:
post:
operationId: create
summary: 'Bulk create subscription OAuth Scope: subscriptions:write'
description: Create new subscriptions for a publication.
tags:
- subpackage_bulk_subscriptions
parameters:
- name: publicationId
in: path
description: The prefixed ID of the publication object
required: true
schema:
$ref: '#/components/schemas/type_ids:PublicationId'
- name: Authorization
in: header
description: Bearer authentication
required: true
schema:
type: string
responses:
'200':
description: Subscriptions created
content:
application/json:
schema:
$ref: '#/components/schemas/type_bulk_subscriptions:BulkSubscriptionCreateResponse'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/type_:Error'
'404':
description: Resource Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/type_:Error'
'429':
description: Rate Limit Exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/type_:Error'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/type_:Error'
requestBody:
content:
application/json:
schema:
type: object
properties:
subscriptions:
type: array
items:
$ref: '#/components/schemas/type_:SubscriptionRequest'
required:
- subscriptions
components:
schemas:
type_:SubscriptionRequest:
type: object
properties:
email:
type: string
description: The email address of the subscription.
reactivate_existing:
type: boolean
default: false
description: Whether or not to reactivate the subscription if they have already unsubscribed. This option should be used only if the subscriber is knowingly resubscribing.
send_welcome_email:
type: boolean
default: false
utm_source:
type: string
description: The source of the subscription.
utm_medium:
type: string
description: The medium of the subscription
utm_campaign:
type: string
description: The acquisition campaign of the subscription
utm_term:
type: string
description: The acquisition term; typically the keyword or search term
utm_content:
type: string
description: The acquisition content; typically used for A/B testing or ad variations
referring_site:
type: string
description: The website that the subscriber was referred from
referral_code:
type: string
description: This should be a subscribers referral_code. This gives referral credit for the new subscription.
custom_fields:
type: array
items:
$ref: '#/components/schemas/type_:CustomFieldValue'
description: The custom fields must already exist for the publication. Any new custom fields here will be discarded.
double_opt_override:
$ref: '#/components/schemas/type_:DoubleOptOverride'
description: 'Override the publication''s default double opt-in settings for this subscription. Possible values are:
- "on" — The subscriber will receive a double opt-in confirmation email and will need to confirm their subscription prior to being marked as active.
- "off" — The subscriber will be marked as active immediately and will not receive a double opt-in confirmation email.
- "not_set" — The publication''s default double opt-in settings will be applied to this subscription.'
tier:
$ref: '#/components/schemas/type_:SubscriptionsCreateRequestTier'
description: The tier for this subscription.
premium_tiers:
type: array
items:
type: string
description: An array of premium tier names to assign to this subscription. When provided, the subscription will be assigned to premium tiers matching these names. Can be combined with `premium_tier_ids` to include tiers from both (duplicates are removed). Takes precedence over the `tier` parameter.
premium_tier_ids:
type: array
items:
type: string
description: An array of premium tier IDs to assign to this subscription. When provided, the subscription will be assigned to these specific premium tiers. Can be combined with `premium_tiers` to include tiers from both (duplicates are removed). Takes precedence over the `tier` parameter.
stripe_customer_id:
$ref: '#/components/schemas/type_ids:OptionalStripeCustomerId'
description: The Stripe customer ID for this subscription.
automation_ids:
type: array
items:
type: string
description: Enroll the subscriber into automations after their subscription has been created. Requires the automations to have an active *Add by API* trigger.
newsletter_list_ids:
type: array
items:
type: string
description: An array of newsletter list prefixed IDs to subscribe the new subscription to. The newsletter lists must belong to the same publication. Beta
skip_newsletter_list_auto_subscribe:
type: boolean
description: When true, the subscriber will not be auto-subscribed to newsletter lists configured with auto-subscribe. Defaults to false. Beta
required:
- email
title: SubscriptionRequest
type_:SubscriptionsCreateRequestTier:
type: string
enum:
- free
- premium
description: The tier for this subscription.
title: SubscriptionsCreateRequestTier
type_:DoubleOptOverride:
type: string
description: Override publication double-opt settings for this subscription.
title: DoubleOptOverride
type_ids:PublicationId:
type: string
description: The prefixed ID of the publication.
title: PublicationId
type_bulk_subscriptions:BulkSubscriptionCreateResponse:
type: object
properties:
message:
type: string
description: The result of the create request
import_id:
type: string
description: The database ID of the import object created from the Bulk Subscription Create request
required:
- message
- import_id
description: The response containing the import ID
title: BulkSubscriptionCreateResponse
type_:Error:
type: object
properties:
status:
type: integer
statusText:
type: string
errors:
type: array
items:
$ref: '#/components/schemas/type_:ErrorDetail'
required:
- status
- statusText
- errors
description: The top level error response.
title: Error
type_:ErrorDetail:
type: object
properties:
message:
type: string
code:
type: string
required:
- message
- code
title: ErrorDetail
type_:CustomFieldDataType:
oneOf:
- type: string
- type: number
format: double
- type: boolean
- type: array
items:
type: string
title: CustomFieldDataType
type_:CustomFieldValue:
type: object
properties:
name:
type: string
description: The name of the existing custom field
value:
$ref: '#/components/schemas/type_:CustomFieldDataType'
description: The value stored for the subscription
description: The object required for setting custom field values on a subscription
title: CustomFieldValue
type_ids:OptionalStripeCustomerId:
type: string
description: The prefixed ID of the Stripe customer.
title: OptionalStripeCustomerId
securitySchemes:
BearerAuthScheme:
type: http
scheme: bearer