# Mastodon Followers | Following Scraper - Low-cost💲🔥👥🐘 (`delectable_incubator/mastodon-followers-following-scraper-low-cost`) Actor

🔎 Extract Mastodon followers and following data with ease. Collect usernames, profile details, follower counts, following counts, account URLs, and connection relationships. Ideal for OSINT research, social network analysis, audience insights, influencer discovery and digital intelligence 📊🚀

- **URL**: https://apify.com/delectable\_incubator/mastodon-followers-following-scraper-low-cost.md
- **Developed by:** [Prime Scrape](https://apify.com/delectable_incubator) (community)
- **Categories:** Lead generation, Social media, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.00005 / actor start

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

<p align="center">
  <img src="https://i.ibb.co/jkNS73wX/readme.png" alt="Mastodon Scraper" width="100%">
</p>

---

## 🐘📢 Mastodon Scraper | Bulk Mastodon Profiles & Posts Scraper | Apify Actor

### 🚀 Extract Mastodon Data in Seconds (No Code)

The **Mastodon Scraper (Apify Actor)** is a powerful, scalable and SEO-optimized scraping tool designed to extract public data from Mastodon instances.

Scrape Mastodon profiles, posts (toots), followers, following lists, hashtags, engagement metrics and profile information in bulk.

Perfect for social media monitoring, audience research, influencer discovery, AI training datasets, trend analysis, sentiment analysis and lead generation.

---

### 🔥 Why This Mastodon Scraper?

✔ Best Mastodon scraper on Apify

✔ Supports bulk URL scraping (multi-profile mode)

✔ Scrape Mastodon profiles & posts at scale

✔ Fast & reliable extraction engine

✔ Structured JSON / CSV / Excel output

✔ Ideal for social media intelligence

✔ Perfect for researchers, marketers & analysts

✔ No coding required

---

### 🎯 What This Scraper Does (Mastodon Data Extraction)

This Apify Actor extracts public Mastodon data directly from profile URLs.

#### 📌 Core Features

✅ Scrape Mastodon profiles

✅ Bulk URL scraping (SEO BOOST 🚀)

✅ Extract profile information

✅ Extract followers & following counts

✅ Extract posts (toots)

✅ Extract engagement metrics

✅ Extract hashtags & mentions

✅ Extract profile avatars & banners

✅ Extract profile links

✅ Clean structured dataset output

✅ High-speed extraction engine

---

### ⚡ Input Configuration (Simple & Powerful)

#### 🔥 BULK URL MODE (SEO BOOST 🚀)

````

{
"urls": \[
"https://mastodon.social/@gargron",
"https://mastodon.world/@example",
"https://fosstodon.org/@opensource",
"https://mastodon.social/@developer"
],
"maxItems": 500
}

```

---

### 📊 Extracted Data (Structured Output)

| Field | Description |
|---------|---------|
| profileUrl | Profile URL |
| username | Username |
| displayName | Display name |
| bio | Profile biography |
| followersCount | Followers count |
| followingCount | Following count |
| postsCount | Total posts |
| accountCreated | Account creation date |
| avatar | Profile image |
| banner | Header image |
| website | Website URL |
| verifiedLinks | Verified links |
| location | Location (if available) |
| postId | Post identifier |
| postUrl | Direct post URL |
| content | Post content |
| hashtags | Hashtags |
| mentions | Mentioned users |
| repliesCount | Replies count |
| reblogsCount | Boosts count |
| favouritesCount | Favorites count |
| publishedAt | Publication date |

---

### 💡 Use Cases (High Demand SEO Keywords)

This Mastodon scraper is used for:

📢 Mastodon profile scraping

🐘 Mastodon data extraction

📊 Social media analytics

📈 Audience research

🎯 Influencer discovery

🤖 AI training datasets

💬 Sentiment analysis

🏢 Brand monitoring

📡 Social listening

🔍 Competitor analysis

⚡ Bulk social media scraping

---

### 🚀 Key Features (Apify SEO Optimized)

⚡ Bulk URL scraping support

🌍 Supports multiple Mastodon instances

📌 Smart extraction system

🧠 Clean structured output

📊 High-speed scraping engine

🔁 Auto retry & stability system

💾 Export-ready datasets

⚙️ Scalable cloud execution

---

### 📤 Output Formats Supported

✔ JSON (structured API ready)

✔ CSV (Excel analysis)

✔ Excel XLSX (business reports)

✔ XML (data pipelines)

✔ HTML (dashboards)

---

### 📦 Example Output

```

{
"profileUrl": "https://mastodon.social/@gargron",
"username": "gargron",
"displayName": "Eugen Rochko",
"bio": "Founder of Mastodon",
"followersCount": 125000,
"followingCount": 340,
"postsCount": 18250,
"avatar": "https://...",
"website": "https://joinmastodon.org",
"postId": "112345678901234567",
"postUrl": "https://mastodon.social/@gargron/112345678901234567",
"content": "Welcome to Mastodon!",
"hashtags": \["mastodon","fediverse"],
"mentions": \[],
"repliesCount": 12,
"reblogsCount": 84,
"favouritesCount": 410,
"publishedAt": "2026-06-01T12:15:00Z"
}

````

---

### 🔥 Why This is the BEST Mastodon Scraper on Apify?

✔ Optimized for Apify search ranking

✔ Supports bulk profile scraping

✔ Supports multiple Mastodon instances

✔ Extracts posts & engagement metrics

✔ Enterprise-ready scalability

✔ Clean structured datasets

✔ Perfect for SEO traffic & marketplace visibility

---

### 💸 Pricing

This scraper runs on a pay-per-result pricing model.

You only pay for successfully extracted records.

💳 Price: $9.99 / 1,000 results

---

### ❓ FAQ (SEO BOOST SECTION)

#### Can I scrape multiple Mastodon profiles at once?

Yes — bulk URL mode is fully supported.

#### Does it support different Mastodon instances?

Yes — any public Mastodon instance is supported.

#### Can I extract posts (toots)?

Yes — profile posts can be extracted.

#### Can I collect follower statistics?

Yes — follower and following metrics are included.

#### Is coding required?

No — 100% no-code Apify Actor.

#### Can I export data?

Yes — JSON, CSV, Excel, XML and HTML are supported.

---

### ⚠️ Disclaimer

This tool is an independent data extraction solution and is not affiliated with Mastodon or any Mastodon instance.

Users are responsible for complying with applicable website terms and local regulations.

---

### 🔗 Related Actors (Social Media Intelligence Suite)

We are building a full PrimeScrape Social Intelligence Suite:

👉 Mastodon Scraper

👉 Bluesky Scraper

👉 Threads Scraper

👉 X (Twitter) Scraper

👉 Reddit Scraper

👉 Telegram Scraper

👉 YouTube Scraper

👉 LinkedIn Scraper

👉 Coming Soon 🚀

---

### 🌍 PrimeScrape Ecosystem

Built for data scraping, automation, AI training datasets and market intelligence at scale.

📊 Social media intelligence

👥 Audience analytics

📈 Trend monitoring

🤖 AI datasets

🏢 Brand intelligence

⚙️ Automation pipelines

---

### 📬 Support

⭐⭐⭐⭐⭐ Leave a review if you like this scraper

📩 Contact us for custom scraping solutions and enterprise requests

# Actor input Schema

## `urls` (type: `array`):

List of Mastodon profile URLs to scrape. The scraper automatically appends /followers or /following based on the relation chosen below.

Examples:
• https://social.circl.lu/@circl
• https://mastodon.social/@Mastodon
• https://mastodon.social/@dweb@social.coop

You can also paste URLs that already end with /followers or /following — they will be normalised automatically.
## `relation` (type: `string`):

Choose whether to collect Followers (people who follow the account) or Following (accounts the user follows).
## `maxitems` (type: `integer`):

Maximum number of accounts to collect per profile URL. 

## Actor input object example

```json
{
  "urls": [
    "https://mastodon.social/@Mastodon",
    "https://social.coop/@dweb",
    "https://social.circl.lu/@circl"
  ],
  "relation": "followers",
  "maxitems": 100
}
````

# Actor output Schema

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "urls": [
        "https://mastodon.social/@Mastodon",
        "https://social.coop/@dweb",
        "https://social.circl.lu/@circl"
    ],
    "relation": "followers",
    "maxitems": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("delectable_incubator/mastodon-followers-following-scraper-low-cost").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "urls": [
        "https://mastodon.social/@Mastodon",
        "https://social.coop/@dweb",
        "https://social.circl.lu/@circl",
    ],
    "relation": "followers",
    "maxitems": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("delectable_incubator/mastodon-followers-following-scraper-low-cost").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "urls": [
    "https://mastodon.social/@Mastodon",
    "https://social.coop/@dweb",
    "https://social.circl.lu/@circl"
  ],
  "relation": "followers",
  "maxitems": 100
}' |
apify call delectable_incubator/mastodon-followers-following-scraper-low-cost --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=delectable_incubator/mastodon-followers-following-scraper-low-cost",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Mastodon Followers | Following Scraper - Low-cost💲🔥👥🐘",
        "description": "🔎 Extract Mastodon followers and following data with ease. Collect usernames, profile details, follower counts, following counts, account URLs, and connection relationships. Ideal for OSINT research, social network analysis, audience insights, influencer discovery and digital intelligence 📊🚀",
        "version": "0.0",
        "x-build-id": "VhKCZzGijOn0OLJIs"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/delectable_incubator~mastodon-followers-following-scraper-low-cost/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-delectable_incubator-mastodon-followers-following-scraper-low-cost",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/delectable_incubator~mastodon-followers-following-scraper-low-cost/runs": {
            "post": {
                "operationId": "runs-sync-delectable_incubator-mastodon-followers-following-scraper-low-cost",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/delectable_incubator~mastodon-followers-following-scraper-low-cost/run-sync": {
            "post": {
                "operationId": "run-sync-delectable_incubator-mastodon-followers-following-scraper-low-cost",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "urls",
                    "relation",
                    "maxitems"
                ],
                "properties": {
                    "urls": {
                        "title": "Mastodon Profile URLs 🐘",
                        "type": "array",
                        "description": "List of Mastodon profile URLs to scrape. The scraper automatically appends /followers or /following based on the relation chosen below.\n\nExamples:\n• https://social.circl.lu/@circl\n• https://mastodon.social/@Mastodon\n• https://mastodon.social/@dweb@social.coop\n\nYou can also paste URLs that already end with /followers or /following — they will be normalised automatically.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "relation": {
                        "title": "Relation to scrape 🔗",
                        "enum": [
                            "followers",
                            "following"
                        ],
                        "type": "string",
                        "description": "Choose whether to collect Followers (people who follow the account) or Following (accounts the user follows).",
                        "default": "followers"
                    },
                    "maxitems": {
                        "title": "Maximum accounts per URL 📄",
                        "type": "integer",
                        "description": "Maximum number of accounts to collect per profile URL. ",
                        "default": 100
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
