Mastodon Posts & Profiles Scraper

Scrape public Mastodon posts, profiles, hashtags, timelines, and status details from Fediverse instances.

Data fields

FieldTypeDescription
statusIdstringValue exported as statusId.
urlstring | nullValue exported as url.
uristring | nullValue exported as uri.
instanceBaseUrlstringValue exported as instanceBaseUrl.
scrapeModestringValue exported as scrapeMode.
scrapedAtstringValue exported as scrapedAt.
createdAtstring | nullValue exported as createdAt.
editedAtstring | nullValue exported as editedAt.

Input preview

instanceBaseUrlInstance base URL *
modeScrape mode *
hashtagHashtag
accountIdOrHandleAccount ID or handle
statusUrlOrIdStatus URL or ID
maxItemsMaximum statuses *

API and agents

This actor can be run through Apify API, datasets, webhooks, schedules, and the official Apify MCP server.

How this actor works

See example inputs, outputs, API usage, and practical limits before running this actor on Apify.

Open Apify page

Scrape public Mastodon posts, hashtags, account timelines, public timelines, and status details from Fediverse instances.

Use this Actor when you need repeatable Mastodon data for social listening, open-web research, community monitoring, news tracking, creator research, or AI analysis. Results can be downloaded as CSV, JSON, Excel, XML, RSS, or used through the Apify Dataset API.

At a glance

  • Instance-based scraping: choose a Mastodon instance such as https://mastodon.social or https://fosstodon.org.
  • Multiple scrape modes: collect hashtag timelines, public timelines, account posts, or one status.
  • Post metadata: save URLs, content, language, visibility, reply/reblog/favorite counts, tags, mentions, media attachments, and account data.
  • Monitoring controls: use sinceId, minId, and maxId for incremental collection where supported.
  • Fediverse workflow ready: export rows to alerts, dashboards, social listening systems, or AI agents.

What can it do?

Mastodon Posts & Profiles Scraper turns public Mastodon timelines and statuses into structured social-media rows.

  • Export Mastodon posts and status data from hashtags, public timelines, account timelines, and individual statuses.
  • Collect engagement and account context such as replies, reblogs, favorites, account fields, tags, mentions, media, cards, and visibility.
  • Monitor Fediverse conversations by scheduling hashtag or account runs and using ID-based continuation fields.
  • Research communities and topics across public Mastodon instances without a login.
  • Use it as a Mastodon data API workflow for CSV, JSON, Excel, API, or AI-agent exports.

Common workflows

  • Social listening: monitor public Mastodon hashtags and accounts for brands, events, topics, or issues.
  • News and community tracking: watch public timelines on relevant instances.
  • Creator research: collect public account posts and engagement signals.
  • Open-web research: export public Fediverse discussion data for analysis.
  • AI summaries: pass status rows into classification, sentiment, clustering, or alerting workflows.

What data can you collect?

Each dataset row represents one public Mastodon status.

Field Description
statusId Mastodon status ID
url Public status URL
uri Fediverse URI
instanceBaseUrl Instance used for the request
scrapeMode Mode used for the row
createdAt Public creation timestamp
editedAt Edit timestamp when available
contentText Cleaned post text
contentHtml Public HTML content
language Language code when returned
visibility Status visibility value
sensitive Whether the status is marked sensitive
spoilerText Content warning text when present
repliesCount Reply count
reblogsCount Reblog/boost count
favouritesCount Favorite count
account Public account object
tags Public hashtag objects
mentions Mentioned accounts
mediaAttachments Public media attachment metadata
card Link preview card when available
poll Poll data when available
scrapedAt Timestamp when the row was saved

Example input

{
  "instanceBaseUrl": "https://mastodon.social",
  "mode": "hashtag",
  "hashtag": "news",
  "maxItems": 50,
  "local": false,
  "excludeReplies": false,
  "excludeReblogs": false
}

Example output

{
  "statusId": "116838156372364425",
  "url": "https://example.social/@account/116838156372364425",
  "instanceBaseUrl": "https://mastodon.social",
  "scrapeMode": "hashtag",
  "createdAt": "2026-06-30T08:00:00.000Z",
  "contentText": "Example public Mastodon post text",
  "language": "en",
  "visibility": "public",
  "repliesCount": 2,
  "reblogsCount": 4,
  "favouritesCount": 10,
  "account": {
    "acct": "account@example.social",
    "displayName": "Example Account",
    "url": "https://example.social/@account"
  },
  "tags": [],
  "mentions": [],
  "mediaAttachments": []
}

Tips for best results

  • Choose the right instance: Mastodon data is instance-based, so the same account or hashtag may differ by instance.
  • Use hashtag mode for monitoring: it is the easiest recurring social-listening setup.
  • Use account mode for creator research: combine excludeReplies and excludeReblogs for original posts.
  • Use ID cursors for incremental runs: store statusId values when you need continuation.
  • Keep first runs small: test maxItems=20 before scaling a new instance or mode.

Limits and caveats

  • The Actor extracts publicly visible Mastodon data only.
  • It does not access private, followers-only, deleted, or login-gated content.
  • Availability and fields vary by Fediverse instance and Mastodon-compatible server version.
  • Engagement counts can change after scraping.

API usage

curl -X POST 'https://api.apify.com/v2/acts/fetch_cat~mastodon-posts-profiles-scraper/runs?token=YOUR_APIFY_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"instanceBaseUrl":"https://mastodon.social","mode":"hashtag","hashtag":"news","maxItems":50}'

MCP and AI agents

This Actor can be used through the official Apify MCP server at https://mcp.apify.com.

For a focused single-Actor tool setup, use:

https://mcp.apify.com?tools=fetch_cat/mastodon-posts-profiles-scraper

Use the same JSON keys shown in the input configuration table, such as instanceBaseUrl, mode, hashtag, accountIdOrHandle, statusUrlOrId, maxItems, and sinceId.

Support

If a run fails, returns no data, or a field looks wrong, open an issue from the Actor page.

Please include the Apify run ID or run URL, input JSON, one example public URL, query, or input item, what you expected, and what the dataset returned. Small reproducible inputs make parsing or site-layout issues much faster to fix.

Common questions

Questions and answers reused from the canonical actor README.

Can this scrape any Mastodon instance?

It works with public Mastodon-compatible instances that expose the needed public endpoints.

Can it collect private or followers-only posts?

No. It only collects public data.

Can I export to CSV or Excel?

Yes. Apify datasets can be downloaded as CSV, JSON, Excel, XML, RSS, HTML, or accessed through the API.