--- title: "Sending beehiiv posts to an external CMS" updated: 2026-01-30 --- # Sending beehiiv posts to an external CMS > Available on **paid beehiiv** plans. This guide explains how to send posts published in beehiiv to an external content management system (CMS) or website, such as WordPress, using webhooks and the beehiiv API. This setup is commonly used by publications who want to: - Publish newsletter content to an external site automatically. - Keep beehiiv as the source of truth for writing and sending posts. - Sync published posts with an existing CMS workflow. This article focuses specifically on sending content from beehiiv to an external CMS. If you’re looking to create or update beehiiv posts from an external system instead, refer to [Create post](https://developers.beehiiv.com/api-reference/posts/create) in our API documentation and [this related KB article](https://www.beehiiv.com/support/article/36759164012439-using-the-send-api-and-create-post-endpoint). In this article, you’ll learn: - [How to capture published posts using the post.sent webhook.](#h_01KG2JKJ7T81HCA9QGGW4E92Z9) - How to retrieve post content using the beehiiv API. - How to pass that content to your CMS. - Alternative approaches using Zapier or Make. --- ## Overview: How the integration works At a high level, integrating beehiiv with a CMS involves the following phases: 1. Register a webhook to capture the post.sent event 2. Capture the post ID from the webhook payload 3. Use the post ID to retrieve the post content via the beehiiv API 4. Pass the post content to your CMS If you prefer a no-code or low-code approach, you can also complete this workflow using Zapier or Make, both of which are covered later in this guide. --- ## Phase 1: Register a webhook to capture the post.sent event To capture posts published in beehiiv, you’ll first need to register a webhook that listens for the **post.sent** event. Webhooks can be created either [via the beehiiv API](https://developers.beehiiv.com/api-reference/webhooks/create) or directly in the app. To create a webhook in beehiiv: 1. Click on the **Settings icon** in the bottom-left corner of your account. 2. From the left panel, go to [**Webhooks**](https://app.beehiiv.com/settings/publication/webhooks/new), then click **Create Webhook Endpoint**.  3. Enter the following details: - **Endpoint URL:** The URL that will receive webhook payloads. - **Description:** A short description to help identify the webhook. When done, click **Continue**. 4. From the list of available events, select **post.sent**, then click **Create Webhook** to complete the setup.  --- ## Phase 2: Capture the post ID from the webhook payload Each time a post is published in beehiiv, the [post.sent webhook](https://developers.beehiiv.com/webhooks/post/sent) sends a payload to your endpoint. Below is an example payload where the post ID you’ll need for the next phase is located at data.id. ```auto { "data": { "audience": "free", "authors": [ "Clark Kent" ], "content_tags": [ "news" ], "created": 1666800076, "id": "post_00000000-0000-0000-0000-000000000000", "preview_text": "More news on the horizon", "slug": "more_news", "split_tested": true, "status": "confirmed", "subject_line": "Check this out", "subtitle": "New post subtitle", "thumbnail_url": "https://example.com/pictures/thumbnail.png", "title": "New Post Title", "displayed_date": 1666800076, "web_url": "https://example.com/more_news" }, "event_timestamp": 1666800076, "event_type": "post.sent", "uid": "evt_00000000-0000-0000-0000-000000000000" } ``` --- ## Phase 3: Use the post ID to retrieve the post content via the beehiiv API Once you have the post ID, you can retrieve the post content using the [Get post](https://developers.beehiiv.com/api-reference/posts/show) endpoint: https://api.beehiiv.com/v2/publications/**:publicationId**/posts/**:postId**?expand=**:contentType** Where: - **:publicationId** corresponds to your publication’s ID, found in beehiiv under [Settings > API](https://app.beehiiv.com/settings/workspace/api) (please use the ID for API V2). - **:postId** is the ID captured from the webhook payload (sent via the post.sent webhook). - **:contentType** determines which version of the post content is returned by the API. Valid contentType values include: - free\_rss\_content - free\_web\_content - free\_email\_content - premium\_web\_content - premium\_email\_content The content returned by the API may vary based on whether the post was sent to a free or premium audience, and any visibility settings applied within the post. > **Note** > > In this context, visibility settings apply only to free vs premium content and do not distinguish between different paid tiers. --- ## Phase 4: Pass the post content to your CMS How you send post content to your CMS depends on your platform and workflow. The type of content you retrieve from the API can affect how easily it integrates with your site. ### Web content Web content includes the web header, which contains the post title, bylines, and social share icons. To extract just the post content, target the