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.
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
# 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'
Work with this as data
Every overlay here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for openapi overlays
4 MCP tools reach this
find_overlaysBrowse and filter every overlay in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/beehiiv-posts-api-phrasing-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.