openapi: 3.1.0 info: title: API Reference subpackage_advertisement_opportunities subpackage_webhooks API version: 1.0.0 servers: - url: https://api.beehiiv.com/v2 tags: - name: subpackage_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: - subpackage_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' '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: - subpackage_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' '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' /publications/{publicationId}/webhooks/{endpointId}: get: operationId: show summary: 'Get webhook OAuth Scope: webhooks:read' description: Retrieve a specific webhook belonging to a publication. tags: - subpackage_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' '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: - subpackage_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' '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: - subpackage_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' '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' components: schemas: 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_ids:EndpointId: type: string description: The prefixed ID of the endpoint. title: EndpointId type_webhooks:IndexWebhooksResponse: type: object properties: data: type: array items: $ref: '#/components/schemas/type_webhooks:Webhook' required: - data title: IndexWebhooksResponse type_webhooks:WebhookResponse: type: object properties: data: $ref: '#/components/schemas/type_webhooks:Webhook' required: - data title: WebhookResponse type_:ErrorDetail: type: object properties: message: type: string code: type: string required: - message - code title: ErrorDetail type_webhooks:WebhooksDeleteResponse: type: object properties: message: type: string title: WebhooksDeleteResponse 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 title: WebhookEventType 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 securitySchemes: BearerAuthScheme: type: http scheme: bearer