Beehiiv Newsletter Scraper avatar

Beehiiv Newsletter Scraper

Pricing

from $2.00 / 1,000 newsletter record scrapeds

Go to Apify Store
Beehiiv Newsletter Scraper

Beehiiv Newsletter Scraper

Scrape Beehiiv newsletters for posts, authors, newsletter metadata, and content discovery. MCP/API-ready.

Pricing

from $2.00 / 1,000 newsletter record scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 days ago

Last modified

Share

🐝 Beehiiv Newsletter Scraper — Extract Posts, Metadata & Full Content

What Does Beehiiv Newsletter Scraper Do?

Beehiiv Newsletter Scraper extracts structured data from any public Beehiiv newsletter publication — no login required. Give it one or more Beehiiv newsletter URLs and it returns the publication's name, description, author info, social links, and a complete list of posts with titles, dates, slugs, and previews. With full content mode, it also scrapes the complete article text of every post — perfect for LLM training, competitive research, and content archiving.

Why Use Beehiiv Newsletter Scraper?

  • No login or cookies needed — scrapes all public newsletter content without authentication
  • Three extraction modes — pay only for the data depth you actually need
  • MCP-ready output — semantic field names, consistent record shapes, instant AI agent compatibility
  • Multi-publication batching — scrape dozens of newsletters in a single run
  • Flexible input — publication homepage URLs, direct post URLs, or both combined

What Data Can Beehiiv Newsletter Scraper Extract?

FieldTypeDescription
record_typestringnewsletter (publication metadata) or post (individual post)
publication_namestringName of the newsletter
publication_urlstringHomepage URL of the publication
descriptionstringPublication tagline or post excerpt
author_namestringCreator/author name
logo_urlstringPublication logo image URL
cover_image_urlstringOG cover image URL
website_urlstringCanonical publication URL
social_linksobjectTwitter, LinkedIn, Instagram, Facebook, YouTube, TikTok links
post_countintegerNumber of posts found on the homepage
post_urlstringFull URL of individual post
post_titlestringPost headline
post_subtitlestringPost secondary heading
post_datestringISO 8601 publication timestamp
post_previewstringShort excerpt (from OG description)
post_contentstringFull post text (full mode only)
post_slugstringURL slug identifier
is_premiumbooleanWhether post is behind a paywall
read_time_minutesintegerEstimated reading time
tagsarrayPost tags and topic categories
scraped_atstringISO 8601 scrape timestamp
source_urlstringURL that produced this record

How to Use Beehiiv Newsletter Scraper

Step 1 — Provide Input URLs

Publication URLs (scrape a whole newsletter):

https://aibreakfast.beehiiv.com
https://bensbites.beehiiv.com
https://tldrnewsletter.com

Post URLs (scrape specific posts):

https://aibreakfast.beehiiv.com/p/some-post-slug

You can mix and match both input types in the same run.

Step 2 — Choose a Scrape Mode

ModeRecords ProducedBest For
metadata1 newsletter record per publicationQuick research, directory building
metadata_posts1 newsletter + N post recordsLead gen, competitive intel, content analysis
full1 newsletter + N post records with full contentLLM training, archiving, RAG pipelines

Step 3 — Set Limits

  • Max Posts Per Publication — controls how many posts to scrape per newsletter (default: 50)
  • Max Total Results — hard cap on total records returned across all publications (default: 100)

Output Examples

Newsletter Metadata Record

{
"record_type": "newsletter",
"publication_url": "https://aibreakfast.beehiiv.com",
"publication_name": "AI Breakfast",
"description": "The best AI newsletter — delivered daily",
"author_name": "Devansh Mehta",
"author_bio": null,
"logo_url": "https://media.beehiiv.com/cdn-cgi/image/logo.png",
"cover_image_url": "https://media.beehiiv.com/cdn-cgi/image/cover.png",
"website_url": "https://aibreakfast.beehiiv.com",
"social_links": {
"twitter": "https://twitter.com/aibreakfast"
},
"post_count": 142,
"post_url": null,
"post_title": null,
"post_date": null,
"is_premium": null,
"tags": [],
"scraped_at": "2026-04-08T10:00:00.000Z",
"source_url": "https://aibreakfast.beehiiv.com"
}

Post Record

{
"record_type": "post",
"publication_url": "https://aibreakfast.beehiiv.com",
"publication_name": "AI Breakfast",
"post_url": "https://aibreakfast.beehiiv.com/p/gpt-5-is-here",
"post_title": "GPT-5 Just Dropped — Here's What You Need to Know",
"post_subtitle": "Plus: Claude 4 leaks and Google's Gemini 2.0 update",
"post_date": "2024-05-15T08:00:00.000Z",
"post_preview": "Today we dive deep into GPT-5...",
"post_slug": "gpt-5-is-here",
"is_premium": false,
"read_time_minutes": 5,
"tags": ["AI", "GPT"],
"scraped_at": "2026-04-08T10:01:00.000Z",
"source_url": "https://aibreakfast.beehiiv.com/p/gpt-5-is-here"
}

Pricing

This actor uses pay-per-event pricing.

EventPrice
Actor start$0.00005
Each record (newsletter or post)$0.002

Cost Examples

TaskRecordsEstimated Cost
Scrape 10 newsletter profiles (metadata only)10~$0.02
Scrape 5 newsletters + 50 posts each255~$0.51
Full archive: 10 newsletters × 100 posts1,010~$2.02

Run via API

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('khadinakbar/beehiiv-newsletter-scraper').call({
publicationUrls: [
{ url: 'https://aibreakfast.beehiiv.com' },
{ url: 'https://bensbites.beehiiv.com' }
],
scrapeMode: 'metadata_posts',
maxPostsPerPublication: 50,
maxResults: 200
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("khadinakbar/beehiiv-newsletter-scraper").call(run_input={
"publicationUrls": [
{ "url": "https://aibreakfast.beehiiv.com" }
],
"scrapeMode": "full",
"maxPostsPerPublication": 20,
"maxResults": 50
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["post_title"], item["post_date"])

Use Cases

Newsletter Research & Competitive Intelligence — Scrape competing newsletters to analyze their content strategy, posting frequency, and topics covered.

LLM Training Data — Use full content mode to build high-quality newsletter corpora for fine-tuning or RAG pipelines. Beehiiv newsletters are generally high-signal, expert-written content.

Lead Generation & Outreach — Collect author names, social profiles, and website URLs from newsletters in your niche for B2B outreach campaigns.

Content Archiving — Backup newsletter archives before they go behind paywalls or disappear.

Newsletter Discovery — Build directories of Beehiiv newsletters in specific niches by scraping known publication URLs.


FAQ

Does this actor require a login or Beehiiv account? No. It scrapes publicly available newsletter content only. Premium/paid subscriber posts are detected (the is_premium field will be true) but their content cannot be extracted without authentication.

What Beehiiv URL formats are supported? Standard Beehiiv subdomains (https://name.beehiiv.com), custom domains that run on Beehiiv, and direct post URLs (https://name.beehiiv.com/p/post-slug).

Why is post_content null even in metadata_posts mode? Full article content is only extracted when scrapeMode is set to full. In metadata and metadata_posts modes, post_content is always null to save cost and time.

Why is subscriber_count always null? Beehiiv does not publicly display subscriber counts on publication pages — this information is only available inside the creator's dashboard. The field is included in the schema for future compatibility.

What happens with paywalled posts? The actor detects paywalled posts via multiple signals (subscribe-to-read prompts, paywall CSS classes) and sets is_premium: true. The post metadata (title, date, preview) is still extracted. Full content behind a paywall cannot be accessed without authentication.

The actor returned fewer posts than I expected. The actor collects post links from the publication homepage. If the newsletter has a large archive, only the posts visible on the homepage (typically 20-30) will be discovered per page. Pagination is handled automatically. Increase maxPostsPerPublication to get more posts.


This actor is intended for lawful data collection from publicly available sources. Users are responsible for compliance with applicable laws, terms of service, and data protection regulations (GDPR, CCPA, etc.). The actor only accesses public-facing web pages and does not bypass any authentication or access controls. Do not use this actor to collect personal data in violation of applicable privacy laws.


Works Great With

Export scraped data, run the scraper via API, schedule and monitor runs, or integrate with other tools.