Cross-Post Substack to LinkedIn, Medium and X (2026)
By the newsletterapi team · Published · Updated · 6 min read
The problem: “I want every new Substack post on LinkedIn and Medium too, but I either paste it by hand or rely on browser automation that breaks.”
Short answer
To cross-post Substack to LinkedIn, use your publication's RSS feed (yourpub.substack.com/feed) as the trigger: Buffer, IFTTT, Typefully or Narrareach can share each new post, or a short script can call LinkedIn's Share API. Post a summary with a link rather than the full text on LinkedIn and X, and use Medium's import tool, which adds a canonical link back to Substack.
The problem
Writers want each Substack post to reach the people who follow them elsewhere, especially on LinkedIn. Some have built their own pipelines:
"Every time I post an X article, claude takes it and posts it in beehiiv, substack, medium, linkedin and my personal blog" (@AunySillyMe, X, 2026-10-16)
Others don't trust the way those pipelines work:
"agree, browser automation for this stuff feels like a ticking time bomb" (r/MarketingAutomation, 2026-09-27)
The good news is that cross-posting out of Substack doesn't need a login, a bot or a private API. Every publication has a public RSS feed, and LinkedIn, Medium and X each have an official way in. This guide shows the native options first, then no-code tools, then a tested script.
What can Substack do natively?
As of October 2026, Substack has three features that touch this job. None of them publishes a written post to LinkedIn for you.
- Video clips to LinkedIn. If you connect LinkedIn under Settings → Connected accounts, Substack can upload up to two auto-generated clips from a video post when you publish it. The connection is tied to your profile, not the publication, so Substack suggests a shared LinkedIn account for multi-author publications (Substack Help).
- Social preview. In the post editor, Settings → Social preview controls the title, text and image LinkedIn and X show when someone shares your link. Substack recommends images of at least 1200 × 630 (Substack Help).
- "Cross post" is something else. Substack's Cross post button sends another publication's free post to your subscribers. It works only inside Substack (Substack Help).
After you share, check what worked. Each post's page lists traffic sources, including "Popular sites" such as the social network a reader clicked from (Substack Help).
How do I cross-post Substack to LinkedIn automatically?
Start from your feed. Substack's help centre gives the address as https://your.substack.com/feed (Substack Help); with a custom domain, use https://yourdomain.com/feed. Free posts appear in full and paid posts are truncated. See our Substack RSS feed guide for details.
Then choose a tool. Facts below are from each vendor's own page, read on October 24, 2026.
| Tool | How it uses your Substack | Medium | X | Entry price | |
|---|---|---|---|---|---|
| IFTTT | "New post by user" trigger, polled hourly on Free, every 15 min on Starter, every 5 min on Pro (IFTTT) | Ready-made "Share Substack posts to LinkedIn" applet | No | Ready-made applet | Free plan |
| Buffer | Your RSS feed as a content feed; you pick items to share (Buffer) | Yes | No | Yes | Free: 3 channels, 10 scheduled posts each, up to 3 feeds (pricing) |
| Typefully | Schedules LinkedIn and X posts; also Substack Notes, "free to all users" (changelog) | Yes | No | Yes | See Typefully's site |
| Narrareach | "Connect any blog or RSS feed"; new posts are "cross-posted to Substack, Medium and LinkedIn" (pricing) | Posts, Articles and newsletters | Yes | From the $39/mo plan | $19.99/mo or $199/yr |
Pick by how much control you want. IFTTT is fully automatic but posts the same template every time. Buffer brings each new post into your queue so you write a LinkedIn-specific intro first. Narrareach republishes full articles across platforms. Buffer is also an official Substack Notes partner, so you can announce each post as a Note from the same queue (Buffer Help). See Substack Notes.
How do I post to LinkedIn from my Substack RSS feed with code?
If you'd rather own the pipeline, LinkedIn's Share API is documented and free to use with your own developer app. Per LinkedIn's docs:
- Create an app in the LinkedIn Developer Portal and add the Share on LinkedIn product, which grants the
w_member_socialscope. - Get a member access token through OAuth 2.0 with that scope, and your person URN.
POST https://api.linkedin.com/v2/ugcPostswith the headerX-Restli-Protocol-Version: 2.0.0. AnARTICLEshare carries your post URL inoriginalUrl.
LinkedIn lists a limit of 150 requests per member per day (LinkedIn), far more than a newsletter needs.
This Node 18+ script has no dependencies. It reads your feed, remembers which posts it has seen in seen.json, and shares only new ones. The first run just records existing posts, so you don't flood LinkedIn with your back catalogue. Without a token it prints the request bodies (a dry run). We tested the dry run against a live Substack feed on October 24, 2026.
// substack-to-linkedin.mjs: Node 18+, no dependencies.
// FEED=https://yourpub.substack.com/feed node substack-to-linkedin.mjs (dry run)
// FEED=... LINKEDIN_TOKEN=... LINKEDIN_PERSON_URN=urn:li:person:XXXX node substack-to-linkedin.mjs
import fs from "node:fs";
const FEED = process.env.FEED;
const SEEN_FILE = process.env.SEEN_FILE || "seen.json";
const TOKEN = process.env.LINKEDIN_TOKEN;
const AUTHOR = process.env.LINKEDIN_PERSON_URN;
const text = (xml, tag) => {
const m = xml.match(new RegExp(`<${tag}>(?:<!\\[CDATA\\[)?([\\s\\S]*?)(?:\\]\\]>)?</${tag}>`));
return m ? m[1].trim() : "";
};
const xml = await (await fetch(FEED)).text();
const items = [...xml.matchAll(/<item>([\s\S]*?)<\/item>/g)].map(([, it]) => ({
title: text(it, "title"),
link: text(it, "link"),
description: text(it, "description"),
}));
const seen = new Set(fs.existsSync(SEEN_FILE) ? JSON.parse(fs.readFileSync(SEEN_FILE, "utf8")) : []);
const firstRun = seen.size === 0;
for (const post of items.reverse()) {
if (seen.has(post.link)) continue;
seen.add(post.link);
if (firstRun) continue; // first run only records what already exists
const body = {
author: AUTHOR || "urn:li:person:DRY_RUN",
lifecycleState: "PUBLISHED",
specificContent: {
"com.linkedin.ugc.ShareContent": {
shareCommentary: { text: `New post: ${post.title}\n\n${post.description}` },
shareMediaCategory: "ARTICLE",
media: [{ status: "READY", originalUrl: post.link, title: { text: post.title } }],
},
},
visibility: { "com.linkedin.ugc.MemberNetworkVisibility": "PUBLIC" },
};
if (!TOKEN) {
console.log(JSON.stringify(body, null, 2));
continue;
}
const res = await fetch("https://api.linkedin.com/v2/ugcPosts", {
method: "POST",
headers: {
Authorization: `Bearer ${TOKEN}`,
"Content-Type": "application/json",
"X-Restli-Protocol-Version": "2.0.0",
},
body: JSON.stringify(body),
});
console.log(post.link, res.status, res.headers.get("x-restli-id") || (await res.text()));
}
fs.writeFileSync(SEEN_FILE, JSON.stringify([...seen], null, 2));
console.log(firstRun ? `Recorded ${seen.size} existing posts. New posts will be shared from the next run.` : "Done.");
Run it every hour from cron or a scheduled GitHub Action, and commit seen.json back so state survives between runs. Member tokens expire, so plan to refresh yours. If you prefer a visual workflow, the same feed works as a trigger in n8n, and the identical pattern posts to a team channel in Substack to Slack.
How do I cross-post to Medium without hurting SEO?
Use Medium's import tool rather than pasting. Medium says it "will automatically backdate the post to the original date, as well as add a canonical link" to the original (Medium Help), which tells search engines your Substack post is the source. Publish on Substack first, wait for Google to index it, then import the URL. Our Substack vs Medium comparison covers when using both is worth it.
Does cross-posting create duplicate content?
It depends on what you post.
- A summary and a link (the LinkedIn and X default above) isn't duplicate content. It sends readers, and links, to your Substack.
- The full text on another site is syndication. Google calls
rel=canonical"a signal which helps us with canonicalization, as a hint", and says that if you don't want syndicated versions in Search, they should "include a noindex robots meta tag" (Google Search Central, June 2023). Medium's import adds the canonical for you. On platforms where you can't set either, prefer an excerpt plus a link.
Our rule of thumb: give each network a native intro of three to five sentences in its own style, link to the full post, and keep Substack (or your custom domain) as the one full copy.
Where does newsletterapi fit?
The scripts above poll your feed themselves. The newsletterapi content webhook does the polling for you and calls your URL with a signed post.published event when a new post appears in your public RSS feed. Your automation then fetches the clean post from the Posts API (GET /v1/publications/yourpub.substack.com/posts/{slug}?format=markdown) and writes the LinkedIn or Medium version. Posting to those networks stays your automation's job, under your own accounts. We never log in to Substack. For the full map of official Substack surfaces, see the Substack API guide.
Questions people ask
- Can Substack post to LinkedIn automatically?
- Only video clips, as of October 2026. Substack can upload up to two auto-generated clips from a video post to a connected LinkedIn account. For written posts, use the RSS feed with a tool such as Buffer, IFTTT, Typefully or Narrareach, or LinkedIn's Share API.
- Will cross-posting to LinkedIn or Medium hurt my Substack's SEO?
- Sharing a summary and a link doesn't create duplicate content. If you republish the full text, Medium's import tool adds a canonical link to the original. Google says the canonical link is a hint and recommends noindex on syndicated copies if you don't want them in Search.
- Should I use Substack's Cross post button for this?
- No. Substack's Cross post feature shares another Substack publication's free post with your own subscribers. It doesn't publish to LinkedIn, Medium or X.
- Is it safe to use a browser bot that logs in to Substack to cross-post?
- We don't recommend it. Reading your public RSS feed needs no login at all, and the receiving platforms have official APIs or partner integrations.
Sources
- Substack Help: Is there an RSS feed for my publication? (accessed 2026-10-24)
- Substack Help: How do I upload my Substack video clips to LinkedIn? (accessed 2026-10-24)
- Substack Help: How can I share another publication's post with my subscribers? (accessed 2026-10-24)
- Substack Help: How do I edit what my post looks like on social media? (accessed 2026-10-24)
- Substack Help: Where can I see how readers got to my Substack post? (accessed 2026-10-24)
- Buffer pricing (accessed 2026-10-24)
- Buffer Help: Using Substack with Buffer (accessed 2026-10-24)
- Buffer Help: Using content feeds in Buffer (accessed 2026-10-24)
- IFTTT: Substack integrations (accessed 2026-10-24)
- Typefully changelog: Publish and schedule Substack Notes (accessed 2026-10-24)
- Narrareach pricing (accessed 2026-10-24)
- LinkedIn (Microsoft Learn): Share on LinkedIn (accessed 2026-10-24)
- Medium Help: Importing a post to Medium (accessed 2026-10-24)
- Google Search Central: June 2023 SEO office hours (syndicated content) (accessed 2026-10-24)
- @AunySillyMe on X: cross-posting with Claude (2026-10-16) (accessed 2026-10-24)
- r/MarketingAutomation: browser automation for cross-posting (2026-09-27) (accessed 2026-10-24)
Related guides
Comparison · Writers
Substack vs Medium: Which Is Better for Writers?
Substack vs Medium for writers: how each pays, who owns the email list, custom domains, APIs and automation, and how to cross-post or move between them.
5 min read · Updated 2026-10-22
How-to · Writers
How to Embed Substack Posts on Your Website
Every way to embed Substack on your site: the post and Note embed code, the signup form iframe, RSS-based post lists, and why browser fetches fail.
5 min read · Updated 2026-10-21
How-to · Teams & agencies
Substack for Business: Company and Agency Newsletters
Running a company or agency newsletter on Substack: team roles, custom domain, website embeds, analytics, CRM sync, multiple publications and rules for brands.
5 min read · Updated 2026-10-24