Mastodon Scraper — Posts, Hashtags & Profiles | Any Instance
Pricing
from $1.50 / 1,000 mastodon scraper — posts, hashtags & profiles | any instances
Mastodon Scraper — Posts, Hashtags & Profiles | Any Instance
Scrape any Mastodon instance: user posts, hashtag timelines, and search results. No login required. Returns post text, engagement, media, link cards, and author profiles. Pay per result.
Pricing
from $1.50 / 1,000 mastodon scraper — posts, hashtags & profiles | any instances
Rating
0.0
(0)
Developer
Vitalii Bondarev
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
4 days ago
Last modified
Categories
Share
Mastodon Scraper — Posts, Hashtags & Profiles | $1.50/1K | Any Instance
For researchers tracking decentralized social media, brand monitors watching open-source/tech communities, and anyone studying the Fediverse.
Pricing: $1.50 per 1,000 posts (PPE, pay per result).
Scrape any Mastodon instance without login. Collect posts from user accounts,
hashtag timelines, and search — all via the official Mastodon REST API with
no proxy required. Returns a clean, flat dataset with engagement metrics, media
URLs, link cards, and parse_confidence so you know every record is valid.
Pricing example
$1.50 per 1,000 posts (PPE, pay per result, no per-run fee). 100 posts = $0.15. 1,000 posts = $1.50. A daily hashtag monitor at 200 posts/day costs ~$9/month.
Sample output
{"instance": "fosstodon.org","account_username": "kev","display_name": "Kev Quirk","post_id": "110512345678901234","content_text": "Just published a new post on why I switched from GitHub to Forgejo.","created_at": "2026-05-21T10:14:00Z","replies": 12,"reblogs": 34,"favourites": 98,"url": "https://fosstodon.org/@kev/110512345678901234","source_mode": "account","media_urls": [],"hashtags": ["foss", "git"],"parse_confidence": 1.0,"scraped_at": "2026-06-05T09:00:00Z"}
What you get
| Field | Description |
|---|---|
instance | Mastodon instance scraped (e.g. mastodon.social) |
account_username | Username of the post author |
display_name | Display name of the author |
followers / following / post_count | Author profile stats |
post_id | Unique numeric post ID |
content_text | Plain-text post content (HTML stripped) |
content_html | Raw HTML content |
created_at | Post timestamp (ISO 8601 UTC) |
edited_at | Timestamp if post was edited, else null |
replies / reblogs / favourites | Engagement counts |
is_reblog | True if this is a boosted/reposted post |
in_reply_to_id | ID of parent post for replies |
url | Direct URL to the post |
media_urls | List of media attachment URLs |
card_url / card_title / card_image_url | Link card preview |
mentions | @usernames mentioned in the post |
hashtags | Hashtags used in the post |
source_mode | How the post was discovered: account, hashtag, or search |
parse_confidence | 0.0–1.0 quality score (1.0 = all fields present) |
Why this Mastodon scraper
- Any instance — not locked to mastodon.social. Works with fosstodon.org, infosec.exchange, hachyderm.io, or any standard Mastodon server.
- Three modes in one actor — account posts, hashtag timelines, and search all in a single run.
- Official API, zero fragility — uses
/api/v1/accounts,/api/v1/timelines/tag, and/api/v2/search. No HTML parsing that breaks on layout changes. - Zero proxy cost — Mastodon public API is open to the web. Buyer pays nothing extra for proxy on top of compute.
- parse_confidence — every record carries a quality score. A drop to < 0.8 means a required field was missing; easy to filter in downstream pipelines.
- Federated posts in hashtag timelines — by default returns posts from
across the Fediverse, not just the local instance (toggle
localOnlyfor local-only mode).
How to use
Scrape a user account
Set instance + usernames:
{"instance": "mastodon.social","usernames": ["Mastodon", "gargron"],"maxPosts": 200}
Scrape a hashtag timeline
{"instance": "mastodon.social","hashtags": ["python", "foss", "ai"],"maxPosts": 100}
Search for posts
{"instance": "fosstodon.org","searchQueries": ["open source LLM"],"maxPosts": 50}
Combine all three in one run
{"instance": "mastodon.social","usernames": ["Mastodon"],"hashtags": ["fediverse"],"searchQueries": ["ActivityPub"],"maxPosts": 100,"includeReplies": false,"includeReposts": false}
Cost estimate
Pricing is $1.50 per 1,000 posts (PPE, pay per result). A typical run of 1,000 posts costs approximately $1.50 in actor charges, plus a small amount of Apify platform compute (usually < $0.05 for this API-based actor).
Frequently asked questions
Do I need a Mastodon account or API key? No. The actor uses the public Mastodon REST API — account posts and hashtag timelines are fully public without authentication. Search may return fewer results on some instances without a token, but that is an instance policy, not a scraper limitation.
Do I need a proxy? No. Mastodon's public API is open to any HTTP client. No proxy cost to you or the buyer.
What formats does output come in? JSON (default), CSV, and Excel via the Apify dataset. Integrates natively with n8n, Make, and Zapier.
What if the actor returns 0 results? The actor logs a warning per failed source and continues. Empty results (e.g. an account with 0 posts, or a hashtag not yet used on that instance) produce 0 records and 0 charges — not an error.
Notes on search
The Mastodon /api/v2/search endpoint is public but may return fewer results
on some instances without authentication. Account and hashtag modes are fully
public and return complete results without any token.
Which Mastodon instances work?
Any server running standard Mastodon software — this covers the vast majority of Fediverse instances. Servers running Akkoma, Pleroma, or Misskey use a compatible API subset; account and hashtag modes work, search behaviour varies.
Integrations
Built for researchers and brand monitors tracking posts, hashtags, and communities across the decentralized Fediverse — the JSON/dataset output drops into the tools you already run, no glue code:
- n8n / Make / Zapier — trigger a run or pipe every new dataset item into 500+ apps (Google Sheets, Airtable, Slack, HubSpot, your database) with no code: n8n, Make, Zapier.
- Webhooks — fire your own endpoint the moment a run finishes, to push results straight into your pipeline (docs).
- MCP server — expose this actor as a tool to Claude, Cursor, or any MCP client so an AI agent can pull this data mid-conversation (guide).
- API & SDKs — fetch the dataset as JSON, CSV, or Excel through the Apify REST API or the Python / JS SDKs.
See all Apify integrations.
Legal
Mastodon instances publish their public timelines for open access per the ActivityPub protocol. This actor only accesses public, unauthenticated endpoints identical to what any browser visitor would see. Always review the instance's Terms of Service before large-scale collection.
This actor is not affiliated with Mastodon gGmbH or any specific Mastodon instance.
Fediverse coverage
Tested and working on popular instances including fosstodon.org (FOSS/tech), infosec.exchange (security), hachyderm.io (tech professionals), mas.to (general), mastodon.social (largest), and sigmoid.social (AI/ML). Any server running standard Mastodon, Akkoma, or Pleroma software is supported.
Compared to generic scrapers
| This scraper | Generic Mastodon scraper | |
|---|---|---|
| Any Mastodon instance | ✓ | ✗ (mastodon.social only) |
| Three modes (account/hashtag/search) | ✓ | partial |
| parse_confidence on every record | ✓ | ✗ |
| Zero proxy cost | ✓ | ✓ |
| Official API (no HTML parsing) | ✓ | ✗ |
Use with AI Agents (MCP)
This Mastodon scraper is callable as a tool by AI agents (Claude Desktop, Cursor, VS Code, n8n, or any MCP-compatible client) via Apify's hosted Model Context Protocol server.
{"mcpServers": {"apify": {"command": "npx","args": ["mcp-remote","https://mcp.apify.com/?tools=bovi/mastodon-scraper","--header","Authorization: Bearer <YOUR_APIFY_TOKEN>"]}}}