Lemmy Scraper - Fediverse Posts from Any Instance avatar

Lemmy Scraper - Fediverse Posts from Any Instance

Pricing

from $1.44 / 1,000 posts

Go to Apify Store
Lemmy Scraper - Fediverse Posts from Any Instance

Lemmy Scraper - Fediverse Posts from Any Instance

Scrape Lemmy posts from any instance: the front page, one community or a keyword search. Each row has the title, markdown body, link, author, community, score, upvotes, downvotes, comment count and the thread link. No login. $1.50 per 1,000 posts.

Pricing

from $1.44 / 1,000 posts

Rating

0.0

(0)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

8 days ago

Last modified

Share

Scrape Lemmy posts from any instance, by feed, community or keyword: give it a Lemmy host and a mode, and get one row per post with the title, the markdown body, the external link, author, community, score, upvotes, downvotes, comment count and the thread permalink.

The host is the first choice you make here, not an afterthought. Every Lemmy server holds only what it has federated in, so the same community asked on two hosts comes back different, and a small server has seen less of the network than a large one.

InputOne instance host, plus a community name or a search term
OutputOne row per post: title, markdown body, link, author, community, score, votes, comment count, permalink
Ceiling1,000 posts per run
Account neededNone, and no API key
Price$1.50 per 1,000 posts on the Free plan, a little less on paid plans. The free plan's $5 a month covers about 3,300

🔍 What Lemmy Scraper does

Three modes off the same host. feed reads the instance front page. community reads one community, either bare like technology or fully qualified like technology@lemmy.world when the community lives on another server. search runs the instance's own keyword search.

It pages 50 posts at a time until it has the number you asked for or the instance runs out, deduplicates on post id inside the run, and stops early when a page comes back short.

One host per run. If you want three instances, that is three runs.

📋 What data you get from each Lemmy post

What you getField
The post's id, title and thread linkid, title, postUrl
The page it points to, and its thumbnailurl, thumbnail
The post text, as markdownbody
Who posted it, with their federated addressauthor, authorActor
The community, by name and by titlecommunity, communityTitle
Score, upvotes, downvotes and comment countscore, upvotes, downvotes, comments
When it was posted, and the NSFW flagpublished, nsfw

▶️ How to scrape Lemmy posts

  1. Open Lemmy Scraper and click Try for free.
  2. Leave Lemmy instance at lemmy.world, or type another host.
  3. Pick a Mode, and fill in Query unless you chose the front-page feed.
  4. Set Max posts. Start around 20 to see the shape of the output, then click Start.
  5. Download the dataset as JSON, CSV or Excel, or read it from the Apify API.

💰 How much does it cost to scrape Lemmy posts?

$1.50 per 1,000 posts on the Free plan. Paid plans pay a little less: $1.48 on Starter, $1.46 on Scale and $1.44 on Business. On the free plan, the $5 Apify gives you each month covers about 3,300 posts.

You pay for posts delivered. Duplicates dropped inside the run and diagnostic rows are not charged, and a search that finds nothing costs you nothing.

📥 What you give it

{
"instance": "lemmy.world",
"mode": "community",
"query": "technology",
"sort": "TopWeek",
"maxItems": 200
}
FieldDefaultWhat it is
instancelemmy.worldBare host, no https://. lemmy.ml, beehaw.org and sh.itjust.works work the same way.
modefeedfeed, community or search.
querynoneThe community name in community mode, the keywords in search mode, ignored in feed. The Console box starts at technology; an API call has to send its own.
sortHotHot, Active, New, TopDay, TopWeek, TopMonth or TopAll. A value it does not recognise falls back to Hot and says so in the log.
maxItems1001 to 1,000.
notionConnectornoneOptional. Writes one Notion page per post when the run finishes. Authorise the connector once under Settings, API & Integrations, MCP connectors.
notionParentIdnoneOptional. The Notion data source to write into. Leave it empty and the pages land privately in your workspace.
proxyConfigurationoffOptional network settings. A normal run does not need them.

query is required in community and search mode. Leave it out and the run returns a BAD_INPUT row instead of posts.

📤 What you get back

A real row from a run on 27 September 2026, with the body cut short and the image links trimmed:

{
"ok": true,
"id": 52426536,
"title": "How is everyone dealing with Android 17's \"Nearby Devices\" change?",
"url": "https://lemmy.world/pictrs/image/526f113d-6ee0-...jpeg",
"body": "It took me a while to figure out why many of my self-hosted services were intermittently failing to connect on my phone after updating to Android 17. I eventually figured out there's a new [ACCESS_LOCAL_NETWORK](https://developer.android.com/reference/android/Manifest.permission#ACCESS_LOCAL_NETWORK) permission ...",
"author": "pHr34kY",
"authorActor": "https://lemmy.world/u/pHr34kY",
"community": "selfhosted",
"communityTitle": "Selfhosted",
"score": 11,
"comments": 1,
"upvotes": 11,
"downvotes": 0,
"nsfw": false,
"thumbnail": "https://lemmy.world/pictrs/image/1de761ec-8cd1-...jpeg",
"published": "2026-09-27T12:46:21.130523Z",
"postUrl": "https://lemmy.world/post/52426536"
}
FieldHow to read it
url and postUrlTwo different links, and the difference matters. url is the external page or image the post points at, and is null on a text-only post. postUrl is the Lemmy thread itself and is always there.
bodyThe post text as markdown, so **bold** stays **bold** and links stay links. Stray HTML is cleaned out. null or empty when the post is just a link or an image.
authorActorThe federated user URL. That is the identity that stays stable across instances, not author.
commentsThe count. The comment text itself is not part of this actor.
downvotes0 on instances that switch downvotes off, which several do as a moderation choice. That is a server setting, not unanimous approval.
idStable. Use it as your deduplication key across runs.

🧾 Reading the output

Two kinds of row land in your dataset.

RowHow to spot itCharged
A postok: true and a postUrlyes
A diagnosticok: false and an errorCodeno

Filter on ok == true and you have your posts.

CodeWhat it means
BAD_INPUTThe host is not a valid hostname, the mode is unknown, or query is missing in community or search mode.
NOT_FOUNDThe host is not a Lemmy instance, or that community is not on it. Check the spelling, or use the fully qualified name@host form.
NO_RESULTSHost and community were both fine, there was simply nothing to return.

💡 What people use it for

  • Watching one community on a schedule with sort set to New and a small maxItems, and diffing each run against the one before it on id.
  • Reading what actually got traction in a niche community last month with TopMonth, where score next to comments separates what people upvoted from what they argued about.
  • Keyword monitoring, with realistic expectations. Lemmy is small, so you get genuine mentions and not many of them.
  • Filing a community's posts into Notion as pages, straight off the run.

🚧 What it does not do

  • No comment text. You get comments as a count and nothing else.
  • One host per run. Comparing instances means one run each.
  • You see only what the host has federated in. A server that has defederated from another will not show you its posts, and a small server has simply seen fewer of them.
  • Search ranking belongs to the instance, and this actor does not re-order it.
  • 1,000 posts per run is the hard ceiling, whatever the community holds.
  • If a page fails partway through a long run, the run ends with a diagnostic row rather than the posts it had already collected. Re-run it, ideally with a smaller maxItems.
  • Public posts only. No logins, nothing private, nothing already removed.
  • It is not an official Lemmy tool. Dami's Studio is independent and is not affiliated with or endorsed by Lemmy, or by any other company named on this page.

🧭 Which social scraper do you need?

If you wantUse
Lemmy posts from any instance, by feed, community or keywordThis one
Mastodon posts by hashtag, account or timelineMastodon Scraper
Bluesky posts and profilesBluesky Scraper
Hacker News stories and commentsHacker News Scraper

❓ Questions people ask

Do I need a Lemmy account to scrape posts?

No. Everything it reads is public, and there is nothing to sign up for.

Which Lemmy instance should I pick?

The one whose community you actually want. For a community hosted elsewhere, use the qualified name@host form so the server you are asking knows where to look.

Why did the same search give different answers on two hosts?

Because each holds a different slice of the network. That is federation working normally, not a fault in the run.

Can I get the comments too?

Not from this one. Only the count comes back.

Can I call it from code or connect it to an AI assistant?

Yes. The API tab has ready-made code for Python, JavaScript and the command line. For Claude, ChatGPT or another MCP client, connect https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/lemmy-scraper. Either way the run happens on your Apify account at the same price.

These are public posts on public instances. They still contain personal data, which GDPR and similar laws cover, so have a reason for collecting it. Apify's write-up on the legality of web scraping is a good place to start, and we are not lawyers.

🆘 If something breaks

Open the Issues tab on the actor page. Send the instance, the mode and the run ID. The errorCode on the diagnostic row usually names the problem on its own.