Mastodon Scraper
Pricing
from $2.50 / 1,000 results
Mastodon Scraper
Scrape Mastodon from any server: hashtag timelines, profiles, single posts with their replies, and trending posts, hashtags and news links. Post text, media, engagement counts, authors, polls and boosts as clean JSON. No login, no API key, no proxy.
Pricing
from $2.50 / 1,000 results
Rating
0.0
(0)
Developer
Anyx Solutions
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Security
Limited permissionsShare

Mastodon Scraper
Scrape Mastodon posts from any server — hashtags, profiles, threads and trends — as clean JSON, with no login.
Scrape Mastodon from any server: hashtag timelines, profiles, single posts with their replies, and trending posts, hashtags and news links. Paste a page from mastodon.social, fosstodon.org, hachyderm.io or any other Mastodon server, or just type hashtags. Each post comes with its text as HTML and plain text, content warning, language, replies, boosts and favourites, the author's handle and follower counts, images and videos with their alt text, hashtags, mentions, link preview, poll results, and the original post when it is a boost. There is no login, no API key, and no proxy to configure. Built for social-listening and brand teams, researchers studying the fediverse, journalists and community managers.
⚡ Quick start
{"startUrls": [{ "url": "https://mastodon.social/tags/photography" },{ "url": "https://mastodon.social/@Mastodon" }],"hashtags": ["opensource"],"maxItems": 5}
🧩 Input
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
startUrls | array | no | — | Public pages from any Mastodon server: a hashtag (https://mastodon.social/tags/photography), a profile (https://mastodon.social/@Mastodon, or a remote one such as https://mastodon.social/@kev@fosstodon.org), a single post (https://mastodon.social/@Mastodon/117411420916699261), trending posts, hashtags or links (/explore, /explore/tags, /explore/links), or a server's live timeline (/public/local, /public). |
hashtags | array | no | — | Hashtags to scrape on the server below, one per line, with or without the #, for example opensource or #photography. |
instance | string | no | mastodon.social | Server for hashtags: the Mastodon server whose hashtag timelines the hashtags are read from, for example fosstodon.org or hachyderm.io. |
includeReplies | boolean | no | false | Include replies: for a single post URL, also return the replies under it; for a profile URL, also return the account's replies to other people. |
maxItems | integer | no | — | Maximum number of items per start URL or hashtag. The input form starts at 5; leave it empty to get everything the server shares. |
proxyConfiguration | object | no | { "useApifyProxy": false } | Proxy settings. Mastodon needs no proxy. |
Add URLs, hashtags, or both. A profile on another server, such as https://mastodon.social/@kev@fosstodon.org,
is read from the account's own server, which holds its full history. Hashtags, /explore and /public pages
show what the server in the URL knows about, so the same hashtag can return different posts on different servers.
📤 Output
Every row carries an itemType. Hashtag, profile, post and timeline URLs, and /explore, return post rows,
newest first (trending posts in trending order). /explore/tags returns trending hashtags as tag rows and
/explore/links returns trending news stories as link rows.
Fields
| Field | Type | Description |
|---|---|---|
itemType | string | post, tag or link. |
id | string | Post rows: post ID on the server it was read from. Tag rows: hashtag ID. |
url | string | Post rows: the post's page on its origin server. Tag rows: the hashtag page. Link rows: the news story. |
uri | string | Post rows: the post's permanent fediverse identifier. |
createdAt | string | Post rows: ISO time the post was published. |
editedAt | string | Post rows: ISO time of the last edit, or null. |
language | string | Language code of the post or story, e.g. en, or null. |
contentHtml | string | Post rows: post body as HTML, or null (boosts carry it in reblog). |
contentText | string | Post rows: post body as plain text, with full links and paragraph breaks. |
spoilerText | string | Post rows: the content warning shown before the post, or null. |
sensitive | boolean | Post rows: true when the media is marked sensitive. |
visibility | string | Post rows: public or unlisted. |
inReplyToId | string | Post rows: ID of the post this one replies to, or null. |
repliesCount | integer | Post rows: number of replies. |
reblogsCount | integer | Post rows: number of boosts. |
favouritesCount | integer | Post rows: number of favourites. |
account | object | Post rows: the author as { id, acct, displayName, url, followersCount, followingCount, statusesCount, bot, avatar }; acct is the full handle, e.g. Mastodon@mastodon.social. |
mediaAttachments | array | Post rows: images, videos and audio as { type, url, previewUrl, description }; description is the alt text. |
tags | array | Post rows: hashtags used in the post, lower-case, without #. |
mentions | array | Post rows: mentioned accounts as { acct, url }. |
card | object | Post rows: link preview as { url, title, description, image }, or null. |
poll | object | Post rows: { id, expiresAt, expired, multiple, votesCount, votersCount, options: [{ title, votesCount }] }, or null. |
reblog | object | Post rows: when the row is a boost, the original post with the same fields; otherwise null. |
instance | string | The server the row was read from, e.g. mastodon.social. |
name | string | Tag rows: the hashtag, without #. |
usesLastWeek | integer | Tag and link rows: posts using the hashtag or sharing the link over the last 7 days. |
accountsLastWeek | integer | Tag and link rows: accounts using the hashtag or sharing the link over the last 7 days. |
history | array | Tag and link rows: daily { date, uses, accounts }, newest first. |
title | string | Link rows: the story's headline. |
description | string | Link rows: the story's summary. |
providerName | string | Link rows: the publisher, e.g. The Guardian. |
authorName | string | Link rows: the story's author, or null. |
image | string | Link rows: the story's preview image. |
publishedAt | string | Link rows: ISO time the story was published, or null. |
💡 Use cases
- Social listening — follow a brand, product or campaign hashtag across the fediverse.
- Account monitoring — track what an organisation, journalist or developer posts, with engagement over time.
- Trend research — snapshot a server's trending posts, hashtags and news stories on a schedule.
- Thread analysis — capture a post together with its replies for sentiment analysis or moderation review.
- Datasets — build multilingual, alt-text-rich post collections for research and training.
❓ FAQ
- Do I need a Mastodon account or an API key? No. The Actor only reads what each server shows to logged-out visitors.
- Which servers work? Any Mastodon server, and most fediverse servers that speak the Mastodon API. Paste the page URL from that server.
- Can I search posts by keyword? Mastodon only offers full-text post search to logged-in users, so keyword search is not available. Use hashtags instead: they are how Mastodon users tag topics.
- Why did a
/publicURL return nothing? Many servers, mastodon.social among them, keep their live timeline for logged-in users. The run log says so in plain words. Hashtags, profiles, posts and/explorepages still work on those servers. - How many replies does a post return? Up to about 60 replies for logged-out visitors, which is the limit Mastodon itself applies.
- Are boosts included? Yes. A boost is a row of the booster's account whose
reblogfield holds the original post with its author, text and counts. - Is the Actor gentle on servers? Yes. Mastodon servers are community-run and allow 300 requests per 5 minutes; the Actor reads the server's own limit and pauses before reaching it.
- Why did a run return fewer items than expected? A small server may know few posts for a hashtag, an account may have few public posts, or the server may keep a list private. Check the run log, then open an issue if something looks off.
🔗 More scrapers by Anyx
🤝 Anyx Solutions
We build custom scrapers and data-extraction pipelines.
- Email: tantosthor@gmail.com
🖼 Image credit
Image credit: mastodon.social