Mastodon Scraper - Profiles, Posts, Hashtags & Search
Pricing
Pay per usage
Mastodon Scraper - Profiles, Posts, Hashtags & Search
Scrape public Mastodon accounts with no login: profile stats, recent posts with engagement (favourites/boosts/replies), and account discovery search across the fediverse.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
aki ra
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Mastodon Scraper — Profiles, Posts, Followers & Account Search (No Login)
Scrape public Mastodon data without an access token, app, or login. Get profile stats, recent posts with engagement (favourites, boosts, replies), and discover accounts by search query — across any instance in the fediverse. Export to JSON, CSV, or Excel.
No OAuth. No app registration. No anti-bot challenges. Just pass
user@instancehandles (or a search term) and get clean, structured data.
What you can scrape
- Mastodon profile stats — followers, following, posts count, bio, display name, avatar, bot flag, account created date
- Recent posts (toots) — text, timestamp, language, visibility, and per-post engagement (favourites, boosts/reblogs, replies), each with a direct post URL
- Hashtag feeds — scrape recent public posts for any hashtag on an instance, with engagement
- Account discovery / search — find Mastodon accounts matching a query (handle, display name, or bio)
Common use cases
- Lead generation — build lists of Mastodon accounts in a niche and pull their bio + reach
- Competitor & brand monitoring — track what specific accounts post and how it performs
- Influencer research — rank fediverse accounts by followers and engagement before outreach
- Social listening — watch a fixed set of accounts for new posts
- AI / LLM datasets — feed clean Mastodon text + engagement into your models or agents
How to use it
- Enter one or more Mastodon handles as
user@instance(e.g.Gargron@mastodon.social) — or a search query to discover accounts - Optionally set how many recent posts to fetch per account (0–1000)
- Run the Actor and download the results as JSON, CSV, or Excel
At least one of handles or searchQuery is required.
Input
| Field | Type | Default | Description |
|---|---|---|---|
handles | array | ["Gargron@mastodon.social"] | Handles as user@instance (the @ prefix is optional) |
maxPostsPerAccount | integer | 50 | Recent posts per handle (0–1000) |
includeProfile | boolean | true | Emit one profile record per handle |
searchQuery | string | — | Optional: find accounts matching this text |
searchLimit | integer | 25 | Max accounts from the search query |
searchInstance | string | mastodon.social | Instance to run the account search against |
hashtags | array | — | Optional: scrape recent public posts for these hashtags |
maxHashtagPosts | integer | 50 | Recent posts per hashtag |
hashtagInstance | string | mastodon.social | Instance to read hashtag timelines from |
Output (dataset records)
Records are tagged by type: profile, post, account_hit, or error. Every dataset
can be exported to JSON, CSV, Excel, XML, or HTML from the Apify console or API. Post
and bio HTML is converted to clean plain text.
Example post record:
{"type": "post","account": "Gargron@mastodon.social","authorHandle": "Gargron","text": "Mastodon is decentralized social media.","createdAt": "2026-06-26T20:36:12.000Z","favouritesCount": 791, "reblogsCount": 993, "repliesCount": 42,"language": "en","postUrl": "https://mastodon.social/@Gargron/116827981"}
Why it stays fast and low-maintenance
All data comes from Mastodon's public REST API (/api/v1/accounts/lookup,
/api/v1/accounts/{id}/statuses, /api/v2/search) — open, documented endpoints that need
no access token, no app registration, and no anti-bot challenge. There are no
credentials to rotate, so the Actor rarely breaks (unlike HTML scrapers fighting anti-bot
systems). It paces requests politely and retries on rate limits (HTTP 429) with backoff.
Pricing
Pay per result — you only pay for the records you actually get. No monthly subscription. See the live price on the Store page; a generous free tier lets you test before you commit.
FAQ
Do I need a Mastodon account, app, or access token? No. This Actor only reads Mastodon's public data, so there is nothing to log in to.
Does it work across different Mastodon instances?
Yes. Mastodon is federated — pass any handle as user@instance and the Actor queries that
account's home instance directly.
What output formats are supported? Any Apify dataset can be exported to JSON, CSV, Excel, XML, or HTML, or pulled via the API.
Can it scrape the global public timeline or full-text post search?
No. Many instances require authentication for the public timeline (/api/v1/timelines/public
returns 422 unauthenticated), so this Actor is intentionally account-centric to stay
credential-free.
How many posts can I get per account?
Up to 1000 recent posts per handle (set with maxPostsPerAccount). Reblogs are excluded so
you get the account's own posts.
Is it legal to scrape Mastodon? This Actor accesses only public data through Mastodon's official public API. You are responsible for complying with each instance's terms and any applicable laws and privacy regulations in your use.
Local development
The core client (mastodon_client.py) uses only the Python standard library:
$python3 -c "from mastodon_client import scrape; print(list(scrape(['Gargron@mastodon.social'], max_posts_per_account=3)))"
The Actor wrapper (src/) additionally needs the apify SDK and the Apify CLI to run via
apify run and to publish via apify push.