Lemmy Scraper
Pricing
from $0.40 / 1,000 posts
Lemmy Scraper
Scrape Lemmy communities, posts, comments, and search results from any instance without a login. Pull a community's posts, a single post with its comment thread, or keyword search results. Walks pagination up to your chosen limit.
Pricing
from $0.40 / 1,000 posts
Rating
0.0
(0)
Developer
Goutam Soni
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Scrape public Lemmy posts, comments, communities, and search results from any Lemmy instance. No login, no password, no API key required. Point it at a community, a post link, or a keyword and get clean structured data back, with pagination walked automatically up to the limit you set.
What it does
- Community posts by name (
technology@lemmy.worldor a community link). Optionally emit a header row with the community's title, description, subscriber count, and active-user counts. Walks pages until your limit. - Post threads from a post URL. Returns the post plus its flattened comment thread, each comment carrying a
depthfield so you can reconstruct the tree. - Keyword search across public posts on the chosen instance, deduplicated across pages.
- Works across the fediverse. Point it at any Lemmy server and reference federated communities like
world@lemmy.worldfrom a different host. - Structured, ordered output. Every row is a flat object with identity, vote metrics, content, media, and timestamps in a stable column order.
Use cases
- Brand and topic monitoring. Track what communities are saying about a product, technology, or keyword across multiple instances.
- Market and audience research. Pull a niche community's top posts and engagement metrics to understand what resonates.
- Trend discovery. Search posts by keyword sorted by Top or Hot to surface high-engagement discussions.
- Content and sentiment datasets. Export posts and full comment threads as a clean dataset for analysis or model training.
- Community analytics. Snapshot subscriber and active-user counts over time to measure community growth.
Input
| Field | Type | Description |
|---|---|---|
instance | string | The Lemmy server to query. Bare host or full URL. Bare community names and search queries run against this instance. Default lemmy.world. |
communities | array | Communities to pull recent posts from. Bare name, fully qualified name@instance, or a full community link. |
postUrls | array | Specific post links to fetch. Turn on includeComments to also pull each post's comment thread. |
searchQueries | array | Keyword searches to run over posts on the chosen instance. |
maxPostsPerSource | integer | Cap on posts returned per community or search query. Pagination is walked until this is reached or the source runs out. Default 100. |
sort | string | Sort order for listings, comments, and search (Active, Hot, New, Top day/week/month/year/all, and more). Default Active. |
includeCommunityHeader | boolean | Emit one header row per community (title, description, subscriber and activity counts) before its posts. Default true. |
includeComments | boolean | For each post URL, also return its comment thread flattened with a depth field. Default false. |
maxCommentsPerPost | integer | Cap on comments returned per post URL. Default 50. |
concurrency | integer | How many sources to process in parallel. Default 5. |
proxyConfig | object | Optional proxy. The public read endpoints do not require one, but you may route through a proxy if you wish. |
Example input
{"instance": "lemmy.world","communities": ["technology@lemmy.world"],"searchQueries": ["open source"],"maxPostsPerSource": 200,"sort": "TopWeek","includeCommunityHeader": true}
Output
Each post is one row:
{"type": "post","id": 123456,"url": "https://lemmy.world/post/123456","community": "technology@lemmy.world","authorName": "example_user","authorHandle": "example_user@lemmy.world","score": 467,"upvotes": 530,"downvotes": 63,"commentCount": 87,"title": "An example post title","body": "An example post body in plain text.","linkUrl": "https://example.com/article","embedTitle": "Example article headline","embedDescription": "A short summary of the linked article.","thumbnailUrl": "https://lemmy.world/pictrs/image/example.jpeg","nsfw": false,"locked": false,"createdAt": "2026-06-01T12:00:00.000Z","updatedAt": null,"scrapedAt": "2026-06-18T09:00:00.000Z"}
Key fields: type tells you whether the row is a post, comment, or community header. score, upvotes, downvotes, and commentCount are the engagement metrics at scrape time. body is the plain-text post body (null for link-only posts). linkUrl is the external link a post points to, with embedTitle / embedDescription / thumbnailUrl describing it. A community header row carries subscribers, posts, comments, and active-user counts. A comment row carries postId, content, depth, and the same vote metrics.
FAQ
Do I need a Lemmy account or API key? No. The scraper reads only public data and requires no login, password, or key.
Is it free? You pay only for the Apify platform usage and the per-result charge shown on the actor's pricing tab. There is no separate subscription.
How many results can I get?
Set maxPostsPerSource to whatever you need. The actor pages through the listing automatically and keeps fetching until it reaches your limit or the source is exhausted. Comment threads are capped by maxCommentsPerPost.
Why are some fields null?
Link-only posts have no body, and most posts are never edited so updatedAt is usually null. These reflect what the source actually publishes for each item, not a scraping gap.
Can I scrape any Lemmy instance?
Yes. Set instance to any Lemmy server (for example lemmy.ml or sh.itjust.works), or use a fully qualified name@instance to reach a federated community from a different host.
How fast is it?
Multiple sources run in parallel (controlled by concurrency). A single community of a few hundred posts typically finishes in well under a minute.
Can I get full comment threads?
Yes. Add post links to postUrls and turn on includeComments. Each comment row includes a depth field so you can rebuild the reply tree.