Tools / Mastodon Scraper: Profiles, Posts & Hashtags

Mastodon Scraper: Profiles, Posts & Hashtags

Collect public Mastodon profiles, posts and hashtag timelines via the official API. Input: accounts, hashtags. Output (JSON/CSV): one row per item with type, author, createdAt, text, repliesCount, reblogsCount, favouritesCount, followers, url, isNew.

Run it on Apify Store →

What it's for

Example input

{
 "accounts": [
  "@[email protected]",
  "https://fosstodon.org/@fosstodon",
  "@[email protected]"
 ],
 "hashtags": [
  "opensource"
 ],
 "maxPostsPerSource": 3,
 "monitorMode": true
}

Example output

{
  "type": "profile",
  "input": "@[email protected]",
  "instance": "mastodon.social",
  "id": "13179",
  "acct": "[email protected]",
  "displayName": "Mastodon",
  "url": "https://mastodon.social/@Mastodon",
  "bio": "Our mission is to connect the world through thriving online communities.\nThis is the primary account for the Mastodon project.\nFor technical…",
  "followers": 878918,
  "following": 51,
  "postsCount": 565,
  "lastPostAt": "2026-10-09",
  "createdAt": "2016-11-23T00:00:00.000Z",
  "bot": false,
  "locked": false,
  "discoverable": true,
  "noindex": false,
  "fields": [
    {
      "name": "Homepage",
      "value": "https://joinmastodon.org",
      "verified": true
    },
    {
      "name": "Source Code",
      "value": "https://github.com/mastodon",
      "verified": true
    },
    {
      "name": "Blog",
      "value": "https://blog.joinmastodon.org",
      "verified": true
    },
    {
      "name": "Donate",
      "value": "https://joinmastodon.org/sponsors#donate",
      "verified": true
    }
  ]
}

Input reference

FieldTypeNotes
accountsarray@user@instance or a profile URL.
hashtagsarrayRead the instance's public hashtag timeline.
hashtagInstancestringHashtag instance
maxPostsPerSourceinteger0 = profiles only.
excludeRepliesbooleanExclude replies
excludeBoostsbooleanExclude boosts
sinceDatestringYYYY-MM-DD.
monitorModebooleanRemember newest post per source; later runs return only newer posts.
stateStoreNamestringState store name

Pricing

Pay per event: Profile $0.002, Post $0.0004. Plus Apify's small per-run start fee. Apify's free plan includes monthly credit to try it.

How to run

  1. Open the Store page and click Try for free.
  2. Fill in the input (or paste the example JSON in the JSON tab).
  3. Click Start, then export results as CSV, Excel or JSON, or call it via the Apify API.
  4. Optional: add a Schedule and a webhook/Slack/email integration for ongoing monitoring.

Open Mastodon Scraper on Apify →