Mastodon Scraper: Posts, Profiles, Followers & Trends avatar

Mastodon Scraper: Posts, Profiles, Followers & Trends

Pricing

$1.00 / 1,000 result items

Go to Apify Store
Mastodon Scraper: Posts, Profiles, Followers & Trends

Mastodon Scraper: Posts, Profiles, Followers & Trends

Scrape any Mastodon instance (mastodon.social, hachyderm.io, infosec.exchange, fosstodon.org and 11,000+ others) via the official REST API. User profiles, statuses, followers, hashtag timelines, status threads, trending tags. No auth, no proxies, no cookies. Pay only per result item.

Pricing

$1.00 / 1,000 result items

Rating

0.0

(0)

Developer

Perconey

Perconey

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

What does Mastodon Scraper do?

Mastodon Scraper pulls structured data from any Mastodon instance through the official REST API (/api/v1/*). User profiles with follower counts and bio, public statuses with engagement (favourites, boosts, replies), entire threads, hashtag timelines, instance public timelines, trending tags. The actor hits the documented API directly, so no browser, no proxies, no cookies, no anti-bot fight, ever. One actor works with all 11,000+ Mastodon-protocol servers (mastodon.social, hachyderm.io, infosec.exchange, fosstodon.org, journa.host) and any Pleroma/Akkoma fork that implements the same API.

Try it instantly: pick getProfile, set instance https://mastodon.social, type Gargron (Mastodon's founder), click Start. You get his profile with 380k+ followers, bio, fields, post count in under 5 seconds, for $0.001.

Why use Mastodon Scraper?

  • Federation researchers: Map account migration patterns when a user moves from one instance to another. Track instance growth via getPublicTimeline cadence.
  • Community managers: Monitor mentions of your brand across instances using getHashtagTimeline. Schedule the actor on Apify to alert you on new boosts.
  • DevRel and OSS maintainers: Mastodon has heavy developer adoption. Use getProfile + getUserStatuses for high-follower-count developers tagged with your project to find advocates and detractors.
  • Academic researchers: Mastodon's protocol is open and federation creates a natural network-science dataset. getTrendingTags per instance per day is a research gold-mine.
  • Content creators: getUserStatuses for top creators in your niche to study posting cadence, what topics drive engagement.
  • Open-source intelligence: infosec.exchange has the entire infosec Twitter diaspora. Pull their posts to track CVE chatter without paying for X's API.

How to use Mastodon Scraper

  1. Open the Input tab.
  2. Pick an action. getProfile is the simplest starting point.
  3. Set instance (default https://mastodon.social). To scrape a different server, paste its full URL (e.g. https://hachyderm.io).
  4. For most actions, fill queries (one entry per line). For getPublicTimeline and getTrendingTags, leave queries empty.
  5. Tune maxItems (default 100), local (true for instance-only timelines vs. federated firehose), and the includeReplies / includeReposts toggles for user-status actions.
  6. Click Start. Results stream to the dataset and you can preview them on the Output tab.

Input

FieldRequiredDescription
actionyesWhich API call to make. Eight options.
instanceyesMastodon instance URL. Defaults to https://mastodon.social.
queriessometimesRequired for profile/status/hashtag actions. Empty for getPublicTimeline / getTrendingTags.
maxItemsnoMax items per query. Default 100.
localnoFor timeline actions: true returns only the instance's own posts, false returns the federated timeline.
onlyMedianoSkip text-only posts.
includeRepliesnoFor getUserStatuses: include posts that are replies. Default true.
includeRepostsnoFor getUserStatuses: include boosted posts. Default true.
tokennoOAuth bearer token. Only needed if the instance restricts followers lists to logged-in users.

Query format by action

ActionQuery format
getProfileGargron, user@server.tld, https://mastodon.social/@Gargron, or numeric id
getUserStatusessame as getProfile
getUserFollowerssame as getProfile
getStatusDetailfull status URL like https://mastodon.social/@Gargron/110123456789012345
getStatusContextsame as getStatusDetail
getHashtagTimelinehashtag without # (e.g. mastodonart)
getPublicTimelineleave empty
getTrendingTagsleave empty

Output

Every dataset item carries a _type field (account, status, tag, or error) plus _action and _instance so you can filter when one run mixes data from multiple instances.

{
"_type": "account",
"_action": "getProfile",
"_instance": "https://mastodon.social",
"id": "1",
"username": "Gargron",
"acct": "Gargron",
"display_name": "Eugen Rochko",
"url": "https://mastodon.social/@Gargron",
"avatar": "https://files.mastodon.social/accounts/avatars/...",
"followers_count": 380000,
"following_count": 720,
"statuses_count": 79000,
"note": "Founder, CEO and lead developer @Mastodon.",
"bot": false,
"created_at": "2016-03-16T14:34:26.392Z",
"fields": [
{ "name": "Website", "value": "https://zeonfederated.com" }
]
}

You can download the dataset in JSON, CSV, XML, Excel, RSS, or HTML format from the Output tab or the Apify API.

Data fields

TypeKey fields
accountid, acct, username, display_name, url, avatar, followers_count, following_count, statuses_count, note (bio), fields, created_at, bot, locked
statusid, uri, url, content (HTML), created_at, favourites_count, reblogs_count, replies_count, visibility, language, media_attachments, tags, mentions, account, reblog_of (if it's a boost), card (preview)
tagname, url, history (per-day uses), total_uses, total_accounts

Pricing

Pay-per-result: $0.001 per item. One account = one event. One status = one event. One trending tag = one event. No flat monthly fee, no rental, no charge for the time the actor runs (just Apify's default compute, ~$0.0002 per typical run at 512 MB).

Cost examples:

  • One profile lookup: $0.001
  • 1,000 posts from infosec.exchange's local timeline: $1.00
  • Following the #mastodonart hashtag (500 posts/day, scheduled daily): $0.50/day
  • 500 high-follower accounts (for community research, profile only): $0.50

Tips

  • Federated reach: set local: false on getPublicTimeline or getHashtagTimeline to see posts the instance has seen from peers, not just posts authored locally. The federated firehose is broader but noisier.
  • Cross-instance research: schedule the same input with different instance values. infosec.exchange's local timeline is very different from mastodon.social's.
  • Most followers lists are public, but some instances restrict them to logged-in users. If you hit a 401/403, paste an OAuth token (any access token from the target instance) in the token field.
  • Status IDs are not portable across instances - 123456 on mastodon.social refers to a totally different post than 123456 on hachyderm.io. Always pass full URLs to getStatusDetail / getStatusContext so the actor uses the right instance.
  • Pleroma/Akkoma instances mostly speak the same API. Most actions just work. Trending tags is a Mastodon-specific endpoint; on Pleroma the actor returns an empty result with a log warning instead of crashing.

FAQ, disclaimers, support

Is this legal? The actor calls each instance's public REST API with documented endpoints. Public read access is the default behavior of any Mastodon server. We send a clear User-Agent identifying the actor and we honor 429/Retry-After rate-limit headers. Each instance's admins set their own ToS - if you're scraping at scale from one instance, consider donating to it.

Why no searchPosts action? Full-text post search requires an authenticated session on most instances (a deliberate privacy decision by the Mastodon project). Hashtag and timeline scraping are the public alternatives.

getPublicTimeline returns 422 on mastodon.social. Mastodon.social blocks anonymous access to its public timeline. Use a different instance like https://hachyderm.io, https://fosstodon.org, https://infosec.exchange, or https://mas.to - they still allow anon reads. Profile, status, hashtag, and trending-tags actions DO work anon on mastodon.social.

Does it work with Pixelfed / Lemmy / GoToSocial? Pixelfed and GoToSocial implement large parts of the Mastodon API and most actions work. Lemmy uses a different API and is NOT supported.

Will I get rate-limited? Public reads have a generous limit (300 requests / 5 min on most instances). The actor honors Retry-After and retries 429/502/503/504 with exponential backoff.

Bug or feature request? Open an Issue on the actor's Issues tab. I usually respond within a day.

Need a custom scraper for another federated platform? Bluesky? Threads? See my other actors at https://apify.com/perconey, or open an Issue.