openapi: 3.1.0 info: title: API Reference subpackage_advertisement_opportunities subpackage_automations API version: 1.0.0 servers: - url: https://api.beehiiv.com/v2 tags: - name: subpackage_automations paths: /publications/{publicationId}/automations: get: operationId: index summary: 'List automations OAuth Scope: automations:read' description: Retrieve automations for a publication. tags: - subpackage_automations parameters: - name: publicationId in: path description: The prefixed ID of the publication object required: true schema: $ref: '#/components/schemas/type_ids:PublicationId' - name: expand[] in: query description: Optional list of expandable objects. required: false schema: $ref: '#/components/schemas/type_automations:AutomationsListRequestExpandItem' - 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: page in: query description: 'Pagination returns the results in pages. Each page contains the number of results specified by the `limit` (default: 10).
If not specified, results 1-10 from page 1 will be returned.' 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_automations:AutomationsListResponse' '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}/automations/{automationId}: get: operationId: show summary: 'Get automation OAuth Scope: automations:read' description: Retrieve a single automation for a publication. tags: - subpackage_automations parameters: - name: publicationId in: path description: The prefixed ID of the publication object required: true schema: $ref: '#/components/schemas/type_ids:PublicationId' - name: automationId in: path description: The prefixed ID of the automation object required: true schema: $ref: '#/components/schemas/type_ids:AutomationId' - name: expand[] in: query description: Optional list of expandable objects. required: false schema: $ref: '#/components/schemas/type_automations:AutomationsGetRequestExpandItem' - name: Authorization in: header description: Bearer authentication required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/type_automations:AutomationsGetResponse' '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}/automations/{automationId}/emails: get: operationId: list-emails summary: List automation emails description: Retrieve all emails belonging to a specific automation, including engagement statistics for each email. tags: - subpackage_automations parameters: - name: publicationId in: path description: The prefixed ID of the publication object required: true schema: $ref: '#/components/schemas/type_ids:PublicationId' - name: automationId in: path description: The prefixed ID of the automation object required: true schema: $ref: '#/components/schemas/type_ids:AutomationId' - 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: cursor in: query description: '**Cursor-based pagination (recommended)**: Use this opaque cursor token to fetch the next page of results. Obtain it from the `next_cursor` field of a previous response.' required: false schema: type: string - name: page in: query description: '**Deprecated**: Use `cursor` instead. Pagination returns the results in pages. Limited to 100 pages maximum.' 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_automations:AutomationEmailsListResponse' '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_automations:AutomationEmail: type: object properties: id: type: string description: The unique ID of the email message automation_step_id: type: string description: The unique ID of the automation step this email belongs to subject_line: type: string description: The email subject line preview_text: type: string description: The email preview text status: type: string description: The status of the email message. `active` - The email is active and will be sent. `inactive` - The email is inactive. first_sent_at: type: integer description: The time the email was first sent. Measured in seconds since the Unix epoch last_sent_at: type: integer description: The time the email was last sent. Measured in seconds since the Unix epoch created_at: type: integer description: The time the email was created. Measured in seconds since the Unix epoch stats: $ref: '#/components/schemas/type_automations:AutomationEmailStats' required: - id - automation_step_id - subject_line - preview_text - status - created_at description: An email message within an automation. title: AutomationEmail type_automations:AutomationEmailsListResponse: type: object properties: data: type: array items: $ref: '#/components/schemas/type_automations:AutomationEmail' limit: type: integer description: The limit placed on the results. If no limit was specified in the request, this defaults to 10. has_more: type: boolean description: '**Cursor pagination only**: Indicates whether there are more results available after the current page.' next_cursor: type: string description: '**Cursor pagination only**: The cursor token to use for fetching the next page of results. This will be null if has_more is false.' page: type: integer default: 1 description: '**Offset pagination only**: The page number the results are from. Only present when using deprecated offset-based pagination.' total_results: type: integer description: The total number of results from all pages. total_pages: type: integer description: The total number of pages. required: - data title: AutomationEmailsListResponse type_automations:AutomationEmailStatsEmail: type: object properties: recipients: type: integer default: 0 description: Total number of email recipients delivered: type: integer default: 0 description: Total number of emails delivered opens: type: integer default: 0 description: Total number of email opens unique_opens: type: integer default: 0 description: Total number of unique email opens open_rate: type: number format: double description: The percentage of emails that have been opened clicks: type: integer default: 0 description: Total number of email clicks unique_clicks: type: integer default: 0 description: Unique number of email clicks click_rate: type: number format: double description: The percentage of emails that have been clicked unsubscribes: type: integer default: 0 description: Total number of email unsubscribes spam_reports: type: integer default: 0 description: The number of subscribers that reported this email as spam description: Email engagement statistics for an automation email. title: AutomationEmailStatsEmail type_automations:AutomationEmailStats: type: object properties: email: $ref: '#/components/schemas/type_automations:AutomationEmailStatsEmail' description: Stats scoped to email recipients clicks: type: array items: $ref: '#/components/schemas/type_automations:AutomationEmailStatsClicks' description: An array of click statistics for each URL in the email description: Statistics for an automation email message. title: AutomationEmailStats type_:AutomationStatsEmail: type: object properties: recipients: type: integer default: 0 description: Total number of email recipients across all emails delivered: type: integer default: 0 description: Total number of emails delivered opens: type: integer default: 0 description: Total number of email opens unique_opens: type: integer default: 0 description: Total number of unique email opens open_rate: type: number format: double description: The percentage of emails that have been opened clicks: type: integer default: 0 description: Total number of email clicks unique_clicks: type: integer default: 0 description: Unique number of email clicks click_rate: type: number format: double description: The percentage of emails that have been clicked unsubscribes: type: integer default: 0 description: Total number of email unsubscribes spam_reports: type: integer default: 0 description: The number of subscribers that reported emails as spam description: Aggregate email engagement statistics for an automation. title: AutomationStatsEmail type_:AutomationStatsJourneys: type: object properties: running: type: integer default: 0 description: Number of journeys currently in progress completed: type: integer default: 0 description: Number of completed journeys total: type: integer default: 0 description: Total number of journeys description: Journey counts for an automation. title: AutomationStatsJourneys type_ids:AutomationId: type: string description: The prefixed ID of the automation. title: AutomationId type_:ErrorDetail: type: object properties: message: type: string code: type: string required: - message - code title: ErrorDetail type_:AutomationTriggerEvent: type: string enum: - api - downgrade - email_submission - form_submission - manual - poll_submission - purchased_product - referral_action - segment_action - signup - unengaged - upgrade title: AutomationTriggerEvent type_ids:PublicationId: type: string description: The prefixed ID of the publication. title: PublicationId type_automations:AutomationEmailStatsClicks: type: object properties: url: type: string description: The URL the stats are for total_clicks: type: integer total_unique_clicks: type: integer total_click_through_rate: type: number format: double description: The percentage of clicks on the URL compared to the total number of unique opens title: AutomationEmailStatsClicks type_:Automation: type: object properties: id: $ref: '#/components/schemas/type_ids:AutomationId' description: A unique prefixed id of the automation status: $ref: '#/components/schemas/type_:AutomationStatus' name: type: string trigger_events: type: array items: $ref: '#/components/schemas/type_:AutomationTriggerEvent' description: The types of events that can trigger the automation. description: type: string stats: $ref: '#/components/schemas/type_:AutomationStats' required: - id - status - name - trigger_events title: Automation type_automations:AutomationsGetResponse: type: object properties: data: $ref: '#/components/schemas/type_:Automation' title: AutomationsGetResponse type_automations:AutomationsListResponse: type: object properties: data: type: array items: $ref: '#/components/schemas/type_:Automation' limit: type: integer description: The limit placed on the results. If no limit was specified in the request,this defaults to 10. page: type: integer default: 1 description: The page number the results are from. If no page was specified in the request, this defaults to page 1. total_results: type: integer description: The total number of results from all pages. total_pages: type: integer description: The total number of pages. title: AutomationsListResponse type_:AutomationStats: type: object properties: journeys: $ref: '#/components/schemas/type_:AutomationStatsJourneys' description: Journey counts for the automation email: $ref: '#/components/schemas/type_:AutomationStatsEmail' description: Aggregate email engagement statistics description: 'Optional statistics for an automation. Retrievable by including `expand: [stats]` in the automation request.' title: AutomationStats type_:AutomationStatus: type: string enum: - running - finishing - inactive - live - draft title: AutomationStatus type_automations:AutomationsGetRequestExpandItem: type: string enum: - stats title: AutomationsGetRequestExpandItem 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_automations:AutomationsListRequestExpandItem: type: string enum: - stats title: AutomationsListRequestExpandItem securitySchemes: BearerAuthScheme: type: http scheme: bearer