openapi: 3.2.0 info: title: Beehiiv Webhooks API version: 1.0.0 description: 'Operations tagged Webhooks across 3 of this provider''s published API definitions: beehiiv-openapi.yml, beehiiv-webhook-events-openapi.yml, beehiiv-webhooks-openapi.json. Each path carries the servers of the definition it was published in.' servers: - url: https://api.beehiiv.com/v2 description: Default tags: - name: Webhooks paths: /publications/{publicationId}/webhooks: post: operationId: create summary: 'Create a webhook OAuth Scope: webhooks:write' description: Create a new webhook for a given publication. tags: - Webhooks 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: Webhook created content: application/json: schema: $ref: '#/components/schemas/type_webhooks_WebhookResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/type__Error' '401': description: Unauthorized. The API key or OAuth access token is missing, invalid, or expired. 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: url: type: string format: uri description: The webhook URL to send events to. event_types: type: array items: $ref: '#/components/schemas/type_webhooks_WebhookEventType' description: The types of events the webhook will receive. description: type: string description: A description of the webhook. required: - url - event_types get: operationId: index summary: 'List webhooks OAuth Scope: webhooks:read' description: Retrieve all webhooks belonging to a specific publication. tags: - Webhooks parameters: - name: publicationId in: path description: The prefixed ID of the publication object required: true schema: $ref: '#/components/schemas/type_ids_PublicationId' - name: limit in: query description: A limit on the number of objects to be returned. The limit can range between 1 and 100, and the default is 10. required: false schema: type: integer - name: Authorization in: header description: Bearer authentication required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/type_webhooks_IndexWebhooksResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/type__Error' '401': description: Unauthorized. The API key or OAuth access token is missing, invalid, or expired. 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' servers: - url: https://api.beehiiv.com/v2 description: Default /publications/{publicationId}/webhooks/{endpointId}: get: operationId: show summary: 'Get webhook OAuth Scope: webhooks:read' description: Retrieve a specific webhook belonging to a publication. tags: - Webhooks parameters: - name: publicationId in: path description: The prefixed ID of the publication object required: true schema: $ref: '#/components/schemas/type_ids_PublicationId' - name: endpointId in: path description: The prefixed ID of the webhook object required: true schema: $ref: '#/components/schemas/type_ids_EndpointId' - name: Authorization in: header description: Bearer authentication required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/type_webhooks_WebhookResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/type__Error' '401': description: Unauthorized. The API key or OAuth access token is missing, invalid, or expired. content: application/json: schema: $ref: '#/components/schemas/type__Error' '404': description: Resource Not Found content: application/json: schema: $ref: '#/components/schemas/type__Error' '422': description: Unprocessable Entity 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' patch: operationId: update summary: 'Update webhook OAuth Scope: webhooks:write' description: Update a webhook subscription for a publication. tags: - Webhooks parameters: - name: publicationId in: path description: The prefixed ID of the publication object required: true schema: $ref: '#/components/schemas/type_ids_PublicationId' - name: endpointId in: path description: The prefixed ID of the webhook object required: true schema: $ref: '#/components/schemas/type_ids_EndpointId' - name: Authorization in: header description: Bearer authentication required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/type_webhooks_WebhookResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/type__Error' '401': description: Unauthorized. The API key or OAuth access token is missing, invalid, or expired. 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: event_types: type: array items: $ref: '#/components/schemas/type_webhooks_WebhookEventType' description: The types of events the webhook will receive. description: type: string description: A description of the webhook. delete: operationId: delete summary: 'Delete a webhook OAuth Scope: webhooks:write' description: Delete a webhook subscription from a publication. tags: - Webhooks parameters: - name: publicationId in: path description: The prefixed ID of the publication object required: true schema: $ref: '#/components/schemas/type_ids_PublicationId' - name: endpointId in: path description: The prefixed ID of the webhook object required: true schema: $ref: '#/components/schemas/type_ids_EndpointId' - name: Authorization in: header description: Bearer authentication required: true schema: type: string responses: '204': description: No Content content: application/json: schema: $ref: '#/components/schemas/type_webhooks_WebhooksDeleteResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/type__Error' '401': description: Unauthorized. The API key or OAuth access token is missing, invalid, or expired. 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' servers: - url: https://api.beehiiv.com/v2 description: Default webhooks: subscribed: post: operationId: subscribed summary: Newsletter List Subscription Subscribed responses: '200': description: Webhook received successfully requestBody: content: application/json: schema: $ref: '#/components/schemas/type_newsletter_list_subscription_NewsletterListSubscription' tags: - Webhooks unsubscribed: post: operationId: unsubscribed summary: Newsletter List Subscription Unsubscribed responses: '200': description: Webhook received successfully requestBody: content: application/json: schema: $ref: '#/components/schemas/type_newsletter_list_subscription_NewsletterListSubscription' tags: - Webhooks paused: post: operationId: paused summary: Subscription Paused responses: '200': description: Webhook received successfully requestBody: content: application/json: schema: $ref: '#/components/schemas/type_subscription_Subscription' tags: - Webhooks resumed: post: operationId: resumed summary: Subscription Resumed responses: '200': description: Webhook received successfully requestBody: content: application/json: schema: $ref: '#/components/schemas/type_subscription_Subscription' tags: - Webhooks episode-published: post: operationId: episode-published summary: Podcast Episode Published responses: '200': description: Webhook received successfully requestBody: content: application/json: schema: $ref: '#/components/schemas/type_podcasts_PodcastEpisode' tags: - Webhooks episode-updated: post: operationId: episode-updated summary: Podcast Episode Updated responses: '200': description: Webhook received successfully requestBody: content: application/json: schema: $ref: '#/components/schemas/type_podcasts_PodcastEpisode' tags: - Webhooks episode-archived: post: operationId: episode-archived summary: Podcast Episode Archived responses: '200': description: Webhook received successfully requestBody: content: application/json: schema: $ref: '#/components/schemas/type_podcasts_PodcastEpisode' tags: - Webhooks episode-deleted: post: operationId: episode-deleted summary: Podcast Episode Deleted responses: '200': description: Webhook received successfully requestBody: content: application/json: schema: $ref: '#/components/schemas/type_podcasts_PodcastEpisode' tags: - Webhooks private-feed-activated: post: operationId: private-feed-activated summary: Podcast Private Feed Activated responses: '200': description: Webhook received successfully requestBody: content: application/json: schema: $ref: '#/components/schemas/type_podcasts_PodcastPrivateFeed' tags: - Webhooks sent: post: operationId: sent summary: Post Sent responses: '200': description: Webhook received successfully requestBody: content: application/json: schema: $ref: '#/components/schemas/type_post_Post' tags: - Webhooks updated: post: operationId: updated summary: Post Updated responses: '200': description: Webhook received successfully requestBody: content: application/json: schema: $ref: '#/components/schemas/type_post_Post' tags: - Webhooks scheduled: post: operationId: scheduled summary: Post Scheduled responses: '200': description: Webhook received successfully requestBody: content: application/json: schema: $ref: '#/components/schemas/type_post_Post' tags: - Webhooks created: post: operationId: created summary: Subscription Created responses: '200': description: Webhook received successfully requestBody: content: application/json: schema: $ref: '#/components/schemas/type_subscription_Subscription' tags: - Webhooks confirmed: post: operationId: confirmed summary: Subscription Confirmed responses: '200': description: Webhook received successfully requestBody: content: application/json: schema: $ref: '#/components/schemas/type_subscription_Subscription' tags: - Webhooks deleted: post: operationId: deleted summary: Subscription Deleted responses: '200': description: Webhook received successfully requestBody: content: application/json: schema: $ref: '#/components/schemas/type_subscription_Subscription' tags: - Webhooks upgraded: post: operationId: upgraded summary: Subscription Upgraded responses: '200': description: Webhook received successfully requestBody: content: application/json: schema: $ref: '#/components/schemas/type_subscription_Subscription' tags: - Webhooks downgraded: post: operationId: downgraded summary: Subscription Downgraded responses: '200': description: Webhook received successfully requestBody: content: application/json: schema: $ref: '#/components/schemas/type_subscription_Subscription' tags: - Webhooks tier-paused: post: operationId: tier-paused summary: Subscription Tier Paused responses: '200': description: Webhook received successfully requestBody: content: application/json: schema: $ref: '#/components/schemas/type_subscription_Subscription' tags: - Webhooks tier-resumed: post: operationId: tier-resumed summary: Subscription Tier Resumed responses: '200': description: Webhook received successfully requestBody: content: application/json: schema: $ref: '#/components/schemas/type_subscription_Subscription' tags: - Webhooks tier-added: post: operationId: tier-added summary: Subscription Tier Created responses: '200': description: Webhook received successfully requestBody: content: application/json: schema: $ref: '#/components/schemas/type_subscription_Subscription' tags: - Webhooks tier-deleted: post: operationId: tier-deleted summary: Subscription Tier Deleted responses: '200': description: Webhook received successfully requestBody: content: application/json: schema: $ref: '#/components/schemas/type_subscription_Subscription' tags: - Webhooks submitted: post: operationId: submitted summary: Survey Response Submitted responses: '200': description: Webhook received successfully requestBody: content: application/json: schema: $ref: '#/components/schemas/type_survey_SurveyResponse' tags: - Webhooks components: schemas: type_webhooks_WebhooksDeleteResponse: type: object properties: message: type: string title: WebhooksDeleteResponse type_ids_EndpointId: type: string description: The prefixed ID of the endpoint. title: EndpointId type_webhooks_WebhookEventType: type: string enum: - post.sent - post.updated - subscription.confirmed - subscription.created - subscription.downgraded - subscription.paused - subscription.resumed - subscription.tier.paused - subscription.tier.resumed - subscription.upgraded - subscription.tier.created - subscription.tier.deleted - subscription.deleted - newsletter_list_subscription.subscribed - newsletter_list_subscription.unsubscribed - newsletter_list_subscription.paused - newsletter_list_subscription.resumed - post.scheduled - survey.response_submitted - podcasts.episode.published - podcasts.episode.updated - podcasts.episode.archived - podcasts.episode.deleted - podcasts.private_feed.activated title: WebhookEventType type_webhooks_WebhookResponse: type: object properties: data: $ref: '#/components/schemas/type_webhooks_Webhook' required: - data title: WebhookResponse type_ids_PublicationId: type: string description: The prefixed ID of the publication. title: PublicationId 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_webhooks_Webhook: type: object properties: id: $ref: '#/components/schemas/type_ids_EndpointId' description: The prefixed ID for the webhook. url: type: string format: uri description: The webhook URL to send events to. created: type: integer description: The date the webhook was created. Measured in seconds since the Unix epoch. updated: type: integer description: The date the webhook was last updated. Measured in seconds since the Unix epoch. event_types: type: array items: $ref: '#/components/schemas/type_webhooks_WebhookEventType' description: The types of events the webhook will receive. description: type: string description: The user-defined description for the webhook. required: - id - url - created - updated - event_types - description title: Webhook type__ErrorDetail: type: object properties: message: type: string code: type: string required: - message - code title: ErrorDetail type_webhooks_IndexWebhooksResponse: type: object properties: data: type: array items: $ref: '#/components/schemas/type_webhooks_Webhook' required: - data title: IndexWebhooksResponse type_subscription_SubscriptionData: type: object properties: created: type: integer description: The time the subscription was created. Measured in seconds since the Unix epoch. email: type: string description: The email address of the subscription. id: type: string description: The prefixed ID of the subscription. referral_code: type: string description: The code associated to this subscriber to refer others. When a new subscription is created with this referral code, credit for the referral goes to this subscription. referring_site: type: string description: The website that the subscriber was referred from. status: $ref: '#/components/schemas/type_subscription_SubscriptionDataStatus' description: The status of the subscription. subscription_tier: type: string description: The tier of the subscription. subscription_premium_tier_names: type: array items: type: string description: The names of the premium tiers associated with the subscription. stripe_customer_id: type: string description: The Stripe customer ID associated with the subscription. utm_campaign: type: string description: The acquisition campaign that the subscriber was acquired from. utm_channel: type: string description: The channel that the subscriber was acquired from. utm_medium: type: string description: The medium that the subscriber was acquired from. utm_source: type: string description: The source that the subscriber was acquired from. custom_fields: type: array items: $ref: '#/components/schemas/type_subscription_CustomFieldValue' description: An array of custom field values that have been set on the subscription. Each custom field value includes the field name, kind (type), and formatted value. tags: type: array items: type: string description: An array of tag names that have been applied to the subscription. title: SubscriptionData type_newsletter_list_subscription_NewsletterListSubscriptionStatus: type: string enum: - pending - active - inactive - paused description: The status of the newsletter list subscription. title: NewsletterListSubscriptionStatus type_subscription_Subscription: type: object properties: uid: type: string description: The prefixed event ID, unique to each webhook event. event_timestamp: type: integer description: The date the event was created. Measured in seconds since the Unix epoch. event_type: type: string description: The event type. data: $ref: '#/components/schemas/type_subscription_SubscriptionData' title: Subscription type_subscription_SubscriptionDataStatus: type: string enum: - validating - invalid - pending - active - inactive - needs_attention description: The status of the subscription. title: SubscriptionDataStatus type_podcasts_PodcastShowType: type: string enum: - episodic - serial description: The type of the podcast.
`episodic` - Episodes can be consumed in any order.
`serial` - Episodes are intended to be consumed in order. title: PodcastShowType type_survey_SurveyResponse: type: object properties: uid: type: string description: The prefixed event ID, unique to each webhook event. event_timestamp: type: integer description: The date the event was created. Measured in seconds since the Unix epoch. event_type: type: string description: The event type. data: $ref: '#/components/schemas/type_survey_SurveyResponseData' title: SurveyResponse type_newsletter_list_subscription_NewsletterListSubscriptionData: type: object properties: id: type: string description: The prefixed ID of the newsletter list subscription. list_name: type: string description: The name of the newsletter list. subscription_id: type: string description: The prefixed ID of the subscription. email: type: string description: The email address of the subscriber. status: $ref: '#/components/schemas/type_newsletter_list_subscription_NewsletterListSubscriptionStatus' description: The status of the newsletter list subscription. subscribed_at: type: integer description: The time the subscriber was added to the list. Measured in seconds since the Unix epoch. unsubscribed_at: type: integer description: The time the subscriber was removed from the list. Measured in seconds since the Unix epoch. created: type: integer description: The time the newsletter list subscription was created. Measured in seconds since the Unix epoch. updated: type: integer description: The time the newsletter list subscription was last updated. Measured in seconds since the Unix epoch. required: - id - list_name - subscription_id - email - status - created - updated title: NewsletterListSubscriptionData type_post_PostData: type: object properties: audience: type: string description: The audience that the post is available to on the web. Only applicable if the platform is `web` or `both`. authors: type: array items: type: string description: An array of author names content_tags: type: array items: type: string description: All content tags that were associated with the post. created: type: integer description: The time the post was created. Measured in seconds since the Unix epoch displayed_date: type: integer description: The time displayed in place of the `publish_date`. Measured in seconds since the Unix epoch id: type: string description: The prefixed post id preview_text: type: string description: The email preview text publish_date: type: integer description: The time the post was set to be published. Measured in seconds since the Unix epoch slug: type: string description: The web slug where this post can be accessed. split_tested: type: boolean description: A flag to indicate if a split test was done. Only applicable to email posts. status: $ref: '#/components/schemas/type_post_PostStatus' description: The status of the post.
`draft` - not been scheduled.
`confirmed` - The post will be active after the `scheduled_at`.
`archived` - The post is no longer active. subject_line: type: string description: The email subject line. In cases of A/B Testing, this will be adjusted to the winning subject line. subtitle: type: string description: The subtitle displayed in web views thumbnail_url: type: string description: The URL of the thumbnail. Defaults to the Publication logo if not set. title: type: string description: The title displayed in web views web_url: type: string description: The full URL where this post can be accessed on the web. Only applicable if the platform is `web` or `both`. platform: type: string description: The platform that the post is or will be published to. meta_default_description: type: string description: Meta tag description for the post, called SEO Description in the admin UI meta_default_title: type: string description: Meta tag title for the post, called SEO Title in the admin UI hidden_from_feed: type: boolean description: A flag to indicate if the post is hidden from the website feed. enforce_gated_content: type: boolean description: A flag to indicate if the post enforces gated content for non-subscribers. email_capture_popup: type: boolean description: A flag to indicate if popup email capture is enabled for this post. required: - audience - authors - content_tags - created - id - preview_text - slug - split_tested - status - subject_line - subtitle - thumbnail_url - title - platform - hidden_from_feed - enforce_gated_content - email_capture_popup title: PostData type_survey_SurveyResponseQuestion: type: object properties: answer: type: string description: The answer provided to the question. prompt: type: string description: The question that was asked. type: type: string description: The type of question asked (e.g. multiple choice). title: SurveyResponseQuestion type_podcasts_PodcastShowStatus: type: string enum: - draft - live - archived description: The status of the podcast.
`draft` - No episodes have been published.
`live` - Published and active.
`archived` - The podcast is no longer active. title: PodcastShowStatus type_podcasts_PodcastPrivateFeed: type: object properties: uid: type: string description: The prefixed event ID, unique to each webhook event. event_timestamp: type: integer description: The date the event was created. Measured in seconds since the Unix epoch. event_type: type: string description: The event type. data: $ref: '#/components/schemas/type_podcasts_PodcastPrivateFeedData' title: PodcastPrivateFeed type_subscription_CustomFieldKind: type: string enum: - string - integer - number - boolean - date - datetime - list description: The type of the custom field. title: CustomFieldKind type_podcasts_PodcastEpisodeStatus: type: string enum: - draft - scheduled - published - archived description: The status of the episode.
`draft` - Not yet published.
`scheduled` - Scheduled for future publication.
`published` - Available via web and RSS.
`archived` - No longer available via web or RSS. title: PodcastEpisodeStatus type_podcasts_PodcastPrivateFeedData: type: object properties: id: type: string description: The prefixed ID of the private feed token. url: type: string description: The personalized private RSS feed URL. created: type: integer description: The time the private feed token was created. Measured in seconds since the Unix epoch. activated: type: integer description: The time the private feed was first fetched by a recognized podcast app. Measured in seconds since the Unix epoch. Null when the feed has not been activated. revoked: type: integer description: The time the private feed token was revoked. Measured in seconds since the Unix epoch. Null when the token has not been revoked. expires: type: integer description: The time the private feed token expires. Measured in seconds since the Unix epoch. Null when the token does not expire. subscription: $ref: '#/components/schemas/type_subscription_SubscriptionData' description: The subscription associated with the private feed token. show: $ref: '#/components/schemas/type_podcasts_PodcastShowData' description: The podcast associated with the private feed token. required: - id - url - created - subscription - show title: PodcastPrivateFeedData type_newsletter_list_subscription_NewsletterListSubscription: type: object properties: uid: type: string description: The prefixed event ID, unique to each webhook event. event_timestamp: type: integer description: The date the event was created. Measured in seconds since the Unix epoch. event_type: type: string description: The event type. data: $ref: '#/components/schemas/type_newsletter_list_subscription_NewsletterListSubscriptionData' title: NewsletterListSubscription type_podcasts_PodcastEpisode: type: object properties: uid: type: string description: The prefixed event ID, unique to each webhook event. event_timestamp: type: integer description: The date the event was created. Measured in seconds since the Unix epoch. event_type: type: string description: The event type. data: $ref: '#/components/schemas/type_podcasts_PodcastEpisodeData' title: PodcastEpisode type_survey_SurveyResponseAnswer: type: object properties: answer: type: string description: The answer provided to the question. created: type: integer description: The time the answer was created. Measured in seconds since the Unix epoch. id: type: integer description: The ID of the answer. question_data: $ref: '#/components/schemas/type_survey_SurveyResponseQuestion' updated: type: integer description: The date the answer was updated. Measured in seconds since the Unix epoch. title: SurveyResponseAnswer type_post_PostStatus: type: string enum: - draft - confirmed - archived description: The status of the post.
`draft` - not been scheduled.
`confirmed` - The post will be active after the `scheduled_at`.
`archived` - The post is no longer active. title: PostStatus type_podcasts_PodcastEpisodeData: type: object properties: id: type: string description: The prefixed ID of the episode. created: type: integer description: The time the episode was created. Measured in seconds since the Unix epoch. updated: type: integer description: The time the episode was last updated. Measured in seconds since the Unix epoch. title: type: string description: The title of the episode. slug: type: string description: The web slug where this episode can be accessed. publish_date: type: integer description: The exact time the system published the episode (when it went live), not the scheduled time the user set for publication. Measured in seconds since the Unix epoch. Null when the episode has not been published. displayed_date: type: integer description: The time displayed in place of the `publish_date`. Measured in seconds since the Unix epoch. duration: type: integer description: The duration of the episode audio in seconds. Null when no completed audio file is available. description: type: string description: A plain-text, truncated version of the episode show notes (max 255 characters). show_notes: type: string description: The full HTML show notes for the episode. artwork_url: type: string description: The URL of the episode artwork. Falls back to the podcast artwork when the episode has none. Empty string when no artwork is set. status: $ref: '#/components/schemas/type_podcasts_PodcastEpisodeStatus' description: The status of the episode. season_number: type: integer description: The season number for the episode, if set. episode_number: type: integer description: The episode number within the season, if set. audio_url: type: string description: The public streaming URL for the episode audio. Null when no completed audio file is available. transcript_url: type: string description: The WebVTT transcript URL for the episode. Null when transcripts are disabled or no completed transcript is available. show: $ref: '#/components/schemas/type_podcasts_PodcastShowData' description: The podcast this episode belongs to. required: - id - created - updated - title - slug - displayed_date - description - show_notes - artwork_url - status - show title: PodcastEpisodeData type_post_Post: type: object properties: uid: type: string description: The prefixed event ID, unique to each webhook event. event_timestamp: type: integer description: The date the event was created. Measured in seconds since the Unix epoch. event_type: type: string description: The event type. data: $ref: '#/components/schemas/type_post_PostData' title: Post type_survey_SurveyResponseData: type: object properties: answers: type: array items: $ref: '#/components/schemas/type_survey_SurveyResponseAnswer' description: An array of answers from the survey response. created: type: integer description: The time the survey response was created. Measured in seconds since the Unix epoch. id: type: string description: The response ID. This is unique to the individual submission. survey_id: type: string description: The ID of the survey that the response was submitted to. subscription: $ref: '#/components/schemas/type_subscription_SubscriptionData' updated: type: integer description: The date the survey response was updated. Measured in seconds since the Unix epoch. title: SurveyResponseData type_podcasts_PodcastShowData: type: object properties: id: type: string description: The prefixed ID of the podcast. created: type: integer description: The time the podcast was created. Measured in seconds since the Unix epoch. slug: type: string description: The URL slug of the podcast. description: type: string description: The description of the podcast. categories: type: array items: type: string description: Selected categories for the podcast, ordered by display position. artwork_url: type: string description: The URL of the podcast artwork. Empty string when no artwork is set. status: $ref: '#/components/schemas/type_podcasts_PodcastShowStatus' description: The status of the podcast. language: type: string description: The ISO 639-1 two-letter language code for the podcast. title: type: string description: The title of the podcast. author: type: string description: The author of the podcast. type: $ref: '#/components/schemas/type_podcasts_PodcastShowType' description: The type of the podcast. imported: type: boolean description: Whether the podcast was created via an import. copyright: type: string description: The copyright text for the podcast. publishing_frequency: type: integer description: The most common interval, in whole days, between consecutive published episodes. website_url: type: string description: The website URL associated with the podcast. explicit: type: boolean description: Whether the podcast is marked as explicit. platform_links: type: object additionalProperties: type: string description: Platform distribution URLs keyed by platform name. Present only for public podcasts. required: - id - created - slug - description - categories - artwork_url - status - language - title - author - type - imported - copyright - explicit title: PodcastShowData type_subscription_CustomFieldValue: type: object properties: name: type: string description: The display name of the custom field. kind: $ref: '#/components/schemas/type_subscription_CustomFieldKind' description: The type of the custom field. value: type: string description: 'The formatted value of the custom field. The actual JSON type depends on the kind: - string: the value as a string - integer, number: the value as a number (JSON number type) - boolean: true or false (JSON boolean type) - date: formatted date string (e.g., "Jan 15, 2024") - datetime: formatted date and time string (e.g., "Jan 15, 2024 3:45 PM") - list: comma-separated values as a string' required: - name - kind title: CustomFieldValue securitySchemes: BearerAuthScheme: type: http scheme: bearer x-refined-from: - beehiiv-openapi.yml - beehiiv-webhook-events-openapi.yml - beehiiv-webhooks-openapi.json