Mastodon Scraper — Posts, Hashtags & Profiles | Any Instance avatar

Mastodon Scraper — Posts, Hashtags & Profiles | Any Instance

Pricing

from $1.50 / 1,000 mastodon scraper — posts, hashtags & profiles | any instances

Go to Apify Store
Mastodon Scraper — Posts, Hashtags & Profiles | Any Instance

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

Vitalii Bondarev

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

4 days ago

Last modified

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

FieldDescription
instanceMastodon instance scraped (e.g. mastodon.social)
account_usernameUsername of the post author
display_nameDisplay name of the author
followers / following / post_countAuthor profile stats
post_idUnique numeric post ID
content_textPlain-text post content (HTML stripped)
content_htmlRaw HTML content
created_atPost timestamp (ISO 8601 UTC)
edited_atTimestamp if post was edited, else null
replies / reblogs / favouritesEngagement counts
is_reblogTrue if this is a boosted/reposted post
in_reply_to_idID of parent post for replies
urlDirect URL to the post
media_urlsList of media attachment URLs
card_url / card_title / card_image_urlLink card preview
mentions@usernames mentioned in the post
hashtagsHashtags used in the post
source_modeHow the post was discovered: account, hashtag, or search
parse_confidence0.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 localOnly for 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.

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.

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 scraperGeneric 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>"
]
}
}
}