How to Migrate from Substack to beehiiv

Move posts, free and paid subscribers, podcasts, and your domain from Substack to beehiiv, in the right order, without double-billing your paid readers.

beehiiv has built-in tools for moving a Substack publication: a content importer for your posts, a CSV importer for free subscribers, and a Stripe-based tool that moves paid subscriptions without making readers re-enter their card details. This guide puts the steps in the right order, based on beehiiv’s official Substack migration guide (last updated June 22, 2026) and Substack’s help center. It was first published September 27, 2026 and re-checked on October 7, 2026. Between our September 27 and October 1 checks, beehiiv replaced its Launch, Scale, and Max plans with Free, Lite, and Pro (plus Enterprise) and changed its prices and plan features; this guide uses the current names and prices.

Note: We haven’t run this migration end-to-end on our own publication yet. The steps below come from beehiiv’s and Substack’s official documentation. We’ll add screenshots once we’ve run the migration on real accounts.

The migration at a glance

  1. Pick a beehiiv plan
  2. Create your default post template
  3. If you have paid subscribers: connect Stripe and create matching paid tiers before importing content
  4. Export your content from Substack
  5. Import your posts into beehiiv
  6. Fix paywall placement on paid posts
  7. Export, clean, and import your free subscribers
  8. Migrate paid subscribers through Stripe
  9. Pause Substack billing (critical, or readers get charged twice)
  10. Handle comped, gifted, and iOS subscribers
  11. Move your podcast (if you have one)
  12. Point your custom domain at beehiiv

Step 1: Pick a beehiiv plan

  • Free covers up to 2,500 subscribers with unlimited sends, the website builder, and a welcome email, but no paid subscriptions, no custom domain, and no custom automations.
  • Lite is the lowest plan with paid subscriptions (beehiiv takes 0% of subscription revenue) and custom domains. It starts at $59/month on monthly billing, or $49/month billed yearly, at 1,000 subscribers, rising with list size (for example $109/month at 5,000 and $139/month at 10,000 on monthly billing). Lite allows 1 paid subscription tier.
  • Pro adds branding removal, unlimited paid tiers, audio newsletters, and more publications and seats. It starts at $109/month on monthly billing ($95/month billed yearly) at 1,000 subscribers.

Prices and limits from beehiiv’s pricing page on October 7, 2026. beehiiv’s Substack migration guide is labeled for all plans, but its paid subscriber import article is labeled All Paid Plans, and you’ll need Lite or higher to keep charging paid subscribers. If your Substack has more than one paid tier to recreate (Step 3), check whether you’ll need Pro.

Create a beehiiv account

Will beehiiv cost less than Substack?

Substack is free to publish, but if you turn on paid subscriptions it keeps 10% of subscription revenue, plus Stripe’s fees (Substack: How much does Substack cost?). beehiiv charges a monthly plan fee and takes 0%, and you still pay Stripe.

A rough break-even: at 1,000 subscribers on monthly billing, beehiiv Lite costs $59/month. Substack’s 10% equals $59 when your paid revenue is $590/month ($490/month if you pay for Lite yearly at $49/month). Above that, beehiiv’s plan fee costs less than Substack’s cut; below it, Substack’s percentage is cheaper. Because beehiiv’s price rises with your total subscriber count (free + paid), redo this math with your own numbers on beehiiv’s pricing slider.

Step 2: Create your default post template

Do this before importing. beehiiv applies your default post style to imported posts, and after migration, styling can only be changed post by post.

  1. Create a newsletter template in beehiiv with your fonts, colors, and header.
  2. Select Set as default post style.

Step 3: Set up Stripe and paid tiers (paid publications only)

If you have paid subscribers, do this before importing your content. beehiiv warns that if you import paid posts without a connected Stripe account and at least one paid tier, paywalled content will be fully visible to free readers.

  1. In beehiiv, connect a Stripe account for paid subscriptions. beehiiv’s guide says Stripe should detect your existing Substack-connected Stripe account and offer to pre-fill your business details. This creates a new Stripe account that will hold your beehiiv subscriptions.
  2. Create paid tiers in beehiiv that mirror your Substack tiers (same prices and intervals). Lite allows 1 paid subscription tier and Pro allows unlimited tiers, per beehiiv’s pricing page.

Step 4: Export your content from Substack

Substack’s help center says to go to your publication’s Settings, then Exports, and click Create new export (Substack: How do I export my posts?). beehiiv’s guide describes the same path as Dashboard > Settings > Import/Export > New export. Substack emails you when the ZIP file is ready; then download it.

Safari users: Safari can automatically unzip downloads, and beehiiv needs the zipped file. Before downloading, go to Safari > Settings > General and uncheck Open “safe” files after downloading.

If your publication is entirely free, you can skip the export: beehiiv’s free-content import only needs your Substack URL.

Step 5: Import your posts into beehiiv

  1. Copy your Substack publication URL (from Settings > Website in Substack, or your browser’s address bar).
  2. In beehiiv, go to Settings > Content Import and click Start Import.
  3. Choose Substack and click Next.
  4. Choose what to import:
    • Free content only: paste your Substack URL and click Finish import.
    • Free and paywalled content: paste your Substack URL under Free content, then under Paywalled content click Select File and upload your Substack export ZIP. Click Finish import.
  5. Wait. beehiiv says imports usually take 5 to 10 minutes. The Historical Imports table shows Pending or Processing; refresh until it says Complete with a post count.

Imported posts appear under Posts in beehiiv and on your beehiiv website.

Step 6: Fix paywalls on paid posts

Substack’s exact paywall placement doesn’t carry over. By default, imported paid posts are fully gated: free readers see none of the post.

To show a preview:

  1. Open the post and add a Paywall block where you want the cutoff.
  2. Click Update web.

Imported paywalls use default wording (“Subscribe to Default”) without tier benefits until you customize them.

Step 7: Move your free subscribers

Export from Substack

Per Substack’s help center: go to Subscribers, scroll to All subscribers, click the three dots above the list, and choose Export. Choose All columns if you want engagement data like the activity rating.

Substack notes it’s not currently possible to export subscriber names in this file, so plan for first-name personalization to be sparse at first.

beehiiv recommends keeping only these columns and renaming them before import:

Substack columnRename to (for beehiiv)
EmailEmail
Start datesubscription_date
Subscriber countrysubscriber_country
Subscription source (free)utm_source
ActivitySubstack Activity Rating

country is a reserved field in beehiiv, so rename it (for example to subscriber_country) or the import will have trouble. Save formulas as plain values before exporting from your spreadsheet.

Import into beehiiv

  1. In beehiiv, go to Settings > Subscribers Import and click New Subscribers Import.
  2. Choose Upload a CSV file, select your file, and click Next.
  3. Optionally apply tags to everyone in the file under Advanced Configuration.
  4. Click Confirm subscribers import, then confirm that everyone in the file knowingly opted in to hear from you.
  5. Map columns to fields. Create new custom fields as needed.
  6. Review the results. If some addresses were rejected, beehiiv’s import FAQ lists the common reasons.

By default, beehiiv shows each subscriber’s subscription date as the import date. If you want to keep original Substack signup dates, beehiiv says to contact its support team after the import.

Protect your deliverability for the first few weeks

If you imported the Substack Activity Rating, beehiiv recommends excluding subscribers with a rating of 0 (people who hadn’t opened your Substack emails) for your first 2 to 4 weeks of sending. Create a segment of active, free-tier subscribers with an Activity Rating of 0 and add it under Excluded segments when you send.

Step 8: Migrate paid subscribers through Stripe

This moves your subscribers’ payment details from your Substack-connected Stripe account to your beehiiv-connected Stripe account and then recreates their subscriptions. It’s the longest part, so keep both tabs open. Condensed from beehiiv’s guide and How to import paid subscribers:

Part 1: Copy customers between Stripe accounts

  1. In beehiiv, go to Settings > Subscribers Import. Under Import paid subscriptions from Stripe, click Start a New Migration (twice, to confirm).
  2. In Stripe, switch to your Substack-connected account and open Customers.
  3. Click Copy > Copy all customers.
  4. Paste the beehiiv Stripe account ID (shown in beehiiv) into Stripe’s Account ID field and continue, then Confirm request.
  5. In your beehiiv-connected Stripe account, go to Customers and click Accept.

Stripe says a transfer can take up to three days, but beehiiv reports most finish in 5 to 15 minutes.

Part 2: Recreate the subscriptions

  1. Back in beehiiv, click I’ve completed these steps.
  2. Copy your Substack-connected Stripe account ID (Stripe Settings > Business) into beehiiv.
  3. In the Substack-connected Stripe account, go to Developers > API keys > Create restricted key, choose Providing this key to another website, name it “beehiiv” with URL beehiiv.com, and create it. Copy it right away; Stripe won’t show it again.
  4. Paste the key into beehiiv and continue.
  5. Map each Substack product and price to a beehiiv tier. Legacy or discounted prices can map to an existing tier or a new one; either way, subscribers keep their current Substack price.
  6. Review the preview (beehiiv suggests clicking Download CSV for your records), then click Start import.

When it’s done, check your paid subscribers under View audience with the All tiers filter.

Step 9: Pause Substack billing immediately

This is the step people can’t afford to miss. beehiiv’s migration tool doesn’t cancel anything on Substack. If you don’t pause or cancel, subscribers are charged twice: once by Substack and once by beehiiv.

beehiiv says most publishers pause billing indefinitely because it takes effect immediately:

  1. In Substack, go to Dashboard > Settings > Payments.
  2. Click Pause subscription billing.
  3. Choose Pause indefinitely.

If you’d rather fully cancel, beehiiv says to contact Substack Support and confirm that no refunds are issued during the process.

While you’re in Stripe, beehiiv also recommends turning on Revenue recovery > Emails > “Send emails when card payments fail” and “Send emails about expiring cards” in your new beehiiv-connected account. Both are off by default on new Stripe accounts.

Step 10: Handle comped, gifted, and iOS subscribers

Complimentary, gifted, and iOS (App Store) subscriptions aren’t in Stripe, so the Stripe tool can’t move them. Instead:

  1. In your Substack subscriber export, use the Expiration date column to see how much paid access each person has left. (For iOS subscribers, export separately with the filter Type > is > iOS Subscription.)
  2. In beehiiv, create complimentary gifts for the right periods and apply them per subscriber or in bulk via segments.
  3. Tell iOS subscribers to cancel in the App Store. Substack can’t cancel those from the admin side, so readers must do it. beehiiv suggests emailing that segment directly and offering a discount link to re-subscribe on beehiiv, timed for when their paid iOS period ends (redeeming the discount immediately ends their comped access).

Step 11: Move your podcast (if you have one)

Only do this once you’ve stopped publishing episodes on Substack.

  1. Import your episode archive to beehiiv (beehiiv has a separate podcast import guide).
  2. After all episodes finish importing, copy your beehiiv RSS feed URL from Podcasts > your show.
  3. In Substack, go to Dashboard > Settings > Podcasts, scroll to the Danger Zone, click Redirect RSS feed, paste the beehiiv URL, and confirm.

The redirect lets existing listeners keep getting new episodes in their podcast apps.

Step 12: Move your custom domain

If your Substack uses a custom domain, set up the same domain on beehiiv. beehiiv’s custom domain guide is labeled All Paid Plans, and the pricing page lists custom domains on Lite and up, so this step needs a paid plan. beehiiv uses the same /p/post-name URL structure as Substack, so links to old posts keep working without manual redirects. beehiiv partners with Entri to handle the DNS changes.

Afterward, beehiiv recommends verifying your site in Google Search Console and setting up your Top 4 Recommendations if you used Substack’s Recommendations feature.

What doesn’t migrate

From beehiiv’s list of current limitations:

  • Video posts and podcast-type posts (recreate them manually; beehiiv has a separate guide)
  • Paywall placement (paid posts arrive fully gated)
  • Photo galleries
  • Comments
  • Category structures
  • Code blocks (arrive as plain text; rebuild them with the HTML Snippet block)

Need help?

beehiiv maintains a directory of beehiiv Experts, paid third-party specialists who can run the migration for you.

Sources

All checked October 7, 2026.

The original September 27, 2026 version of this guide used beehiiv’s previous plan names and prices (Launch, Scale, and Max), and said the free plan included custom domains. beehiiv’s pricing page showed the new Free, Lite, and Pro plans when we re-checked on October 1, 2026, and this October 7, 2026 update reflects them.