beehiiv · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Reference Posts API

9 actions 9 updates phrasing extends openapi/beehiiv-posts-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for beehiiv's API. It is a proposal applied on top of the contract, not a document beehiiv publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 9

$.info
$.paths['/publications/{publicationId}/posts'].get
$.paths['/publications/{publicationId}/posts'].post
$.paths['/publications/{publicationId}/posts/{postId}'].get
$.paths['/publications/{publicationId}/posts/{postId}'].delete
$.paths['/publications/{publicationId}/posts/{postId}'].patch
$.paths['/publications/{publicationId}/posts/aggregate_stats'].get
$.paths['/publications/{publicationId}/posts/{postId}/test_sends'].post
$.paths['/publications/{publicationId}/posts/{postId}/preview'].get

OpenAPI Overlay

Raw ↑
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
  title: API Evangelist conversational phrasing for Reference Posts API
  version: 1.0.0
extends: openapi/beehiiv-posts-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-09-26'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 8
- target: $.paths['/publications/{publicationId}/posts'].get
  update:
    x-apievangelist-phrasing:
      intent: List a publication's posts
      effect: read
      questions:
      - What posts have I published on my newsletter?
      - Can I filter posts by content tag or author?
      - Which of my posts are still drafts or scheduled?
      instructions:
      - text: List posts on publication {publication}.
        slots:
          publication: path.publicationId
      - text: Show {status} posts on {publication}.
        slots:
          status: query.status
          publication: path.publicationId
      - text: List posts tagged {content_tags} on publication {publication}.
        slots:
          content_tags: query.content_tags[]
          publication: path.publicationId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/publications/{publicationId}/posts'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a newsletter post
      effect: write
      questions:
      - How do I create and schedule a newsletter issue through the API?
      - Can I start a new post from one of my post templates?
      - Which plans are allowed to create posts programmatically?
      instructions:
      - text: Create a post titled {title} on publication {publication}.
        slots:
          title: requestBody.title
          publication: path.publicationId
      - text: 'Draft a new post {title} with this content: {body_content}.'
        slots:
          title: requestBody.title
          body_content: requestBody.body_content
      - text: Create post {title} and schedule it to send at {scheduled_at}.
        slots:
          title: requestBody.title
          scheduled_at: requestBody.scheduled_at
      method: generated
      generated: '2026-09-26'
- target: $.paths['/publications/{publicationId}/posts/{postId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one post
      effect: read
      questions:
      - Can I fetch a single post and its content by ID?
      - Why does a post I just created return still-being-created?
      instructions:
      - text: Get post {post} on publication {publication}.
        slots:
          post: path.postId
          publication: path.publicationId
      - text: Show post {post} with its {expand} included.
        slots:
          post: path.postId
          expand: query.expand
      method: generated
      generated: '2026-09-26'
- target: $.paths['/publications/{publicationId}/posts/{postId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete or archive a post
      effect: destructive
      questions:
      - How do I delete a draft post I don't need?
      - What happens when I delete a post that has already been sent?
      instructions:
      - text: Delete post {post} from publication {publication}.
        slots:
          post: path.postId
          publication: path.publicationId
      - text: Archive sent post {post}.
        slots:
          post: path.postId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/publications/{publicationId}/posts/{postId}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update an existing post
      effect: write
      questions:
      - How do I change the title or subtitle of an existing post?
      - Can I reschedule a post that's already been created?
      instructions:
      - text: Change the title of post {post} on {publication} to {title}.
        slots:
          post: path.postId
          publication: path.publicationId
          title: requestBody.title
      - text: Reschedule existing post {post} to go out at {scheduled_at}.
        slots:
          post: path.postId
          scheduled_at: requestBody.scheduled_at
      method: generated
      generated: '2026-09-26'
- target: $.paths['/publications/{publicationId}/posts/aggregate_stats'].get
  update:
    x-apievangelist-phrasing:
      intent: Get combined stats across all posts
      effect: read
      questions:
      - What are the total opens and clicks across all my posts combined?
      - Can I get aggregate post stats for only one author's posts?
      instructions:
      - text: Show aggregate stats across all posts on publication {publication}.
        slots:
          publication: path.publicationId
      - text: Get combined stats for posts by author {authors} on {publication}.
        slots:
          authors: query.authors[]
          publication: path.publicationId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/publications/{publicationId}/posts/{postId}/test_sends'].post
  update:
    x-apievangelist-phrasing:
      intent: Send a test email of a post
      effect: write
      questions:
      - How do I email myself a test copy of a post before it goes out?
      - How many test sends do I have left today?
      instructions:
      - text: Send a test of post {post} on publication {publication} to {recipient_emails}.
        slots:
          post: path.postId
          publication: path.publicationId
          recipient_emails: requestBody.recipient_emails
      - text: Email a test copy of post {post} to {recipient_emails}.
        slots:
          post: path.postId
          recipient_emails: requestBody.recipient_emails
      method: generated
      generated: '2026-09-26'
- target: $.paths['/publications/{publicationId}/posts/{postId}/preview'].get
  update:
    x-apievangelist-phrasing:
      intent: Generate a preview link for a post
      effect: read
      questions:
      - How can I see what a post looks like to premium subscribers before sending?
      - Can I preview a post as it will appear on the web versus in email?
      instructions:
      - text: Generate a preview URL for post {post} on publication {publication}.
        slots:
          post: path.postId
          publication: path.publicationId
      - text: Preview post {post} as a {subscriber_type} subscriber on {platform}.
        slots:
          post: path.postId
          subscriber_type: query.subscriber_type
          platform: query.platform
      method: generated
      generated: '2026-09-26'