# Depop Followers Scraper (`epicscrapers/depop-followers-scraper`) Actor

Scrape the followers and following lists of any Depop shop: username, bio, country, follower counts and avatar, plus optional seller profiles. No login, residential proxy included.

- **URL**: https://apify.com/epicscrapers/depop-followers-scraper.md
- **Developed by:** [Epic Scrapers](https://apify.com/epicscrapers) (community)
- **Categories:** E-commerce, AI, Automation
- **Stats:** 2 total users, 1 monthly users, 83.3% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.50 / 1,000 follow saveds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### Depop Followers Scraper: followers and following lists of any Depop shop

Depop Followers Scraper turns a Depop shop's followers (or the accounts it follows) into a spreadsheet. For each account you get the username, profile URL, bio, country, name, follower and following counts and avatar. It is for brands and resellers finding an audience, shops studying competitors, and researchers mapping the Depop community.

- **Followers, following or both.** Pick the direction per run.
- **Rich account rows.** `username`, `bio`, `country`, `followersCount`, `followingCount`, `pictureUrl` and more.
- **Optional seller profiles.** One row per shop with bio, follower counts, rating and items sold.
- **Paste shop URLs, usernames or user IDs.** A mix works.
- **Errors in the data, not in the log.** A shop that fails gets an `error` row, and the rest of the run continues. No Depop login needed. Export to JSON, CSV, Excel or Google Sheets.

### Quick start

1. Paste one or more Depop shop URLs into **Shop URLs**, for example `https://www.depop.com/nikerlina/`.
2. Choose **Direction**: followers, following or both.
3. Keep the default of 500 follows per shop, or lower it for a first run.
4. Click **Start**, then open the **Output** tab and export the data.

```json
{
    "shopUrls": ["https://www.depop.com/nikerlina/"],
    "direction": "followers",
    "maxFollows": 500,
    "includeSellerProfile": true
}
```

### Input

| Field                  | Type             | Default     | Effect                                                                                |
| ---------------------- | ---------------- | ----------- | ------------------------------------------------------------------------------------- |
| `shopUrls`             | Array of strings | Empty       | Shop URLs such as `https://www.depop.com/nikerlina/`.                                 |
| `usernames`            | Array of strings | Empty       | Depop usernames, instead of or together with URLs.                                    |
| `userIds`              | Array of strings | Empty       | Numeric Depop user IDs. At least one of the three seller fields is required.          |
| `direction`            | String           | `followers` | `followers`, `following` or `both`.                                                   |
| `maxFollows`           | Integer          | `500`       | Follows saved per shop and direction. With `both`, the limit applies to each list.    |
| `includeSellerProfile` | Boolean          | `true`      | Save one `seller` row per shop.                                                       |
| `country`              | String           | `GB`        | Two-letter country code that Depop sees. The residential proxy uses the same country. |

### Output

Each dataset row has a `recordType`: `follow`, `seller` or `error`.

```json
{
    "recordType": "follow",
    "direction": "followers",
    "subjectId": 3138013,
    "subjectUsername": "nikerlina",
    "subjectShopUrl": "https://www.depop.com/nikerlina/",
    "userId": 200398911,
    "username": "caine_375",
    "profileUrl": "https://www.depop.com/caine_375/",
    "bio": "UK based, open to offers",
    "website": null,
    "country": "GB",
    "firstName": "Michelle",
    "lastName": "Penrose",
    "followersCount": 12,
    "followingCount": 6,
    "pictureUrl": "https://media-photos.depop.com/b1/200398911/4317850512_62470875e0014a678fb4d7973460e29f/U3.jpg",
    "scrapedAt": "2026-10-20T12:00:00.000Z"
}
```

A seller row has `userId`, `username`, `shopUrl`, `firstName`, `lastName`, `verified`, `bio`, `website`, `country`, `followersCount`, `followingCount`, `rating` (average stars), `reviewsTotal`, `soldCount`, `lastSeen`, `pictureUrl` and `scrapedAt`. An error row has the shop (`shopUrl`, `username` or `userId`, or `inputValue` for invalid input), an `error` message and `scrapedAt`. Missing values are `null`.

#### Notes on fields

- Follows come in Depop's order, newest first. A shop's list can be a few rows shorter than its `followersCount`, because Depop leaves some accounts (for example deactivated ones) out of the list.
- A seller given twice (as a URL, a username and an ID) is scraped once.
- Seller rows are saved before the shop's follows. Rows are not sorted by shop.

### For AI agents

Call `epicscrapers/depop-followers-scraper` with:

```json
{ "shopUrls": ["https://www.depop.com/nikerlina/"], "direction": "both", "maxFollows": 100 }
```

Rows: `follow` (`username`, `profileUrl`, `direction`, `followersCount`, `country`), `seller` (shop stats), `error` (`error` explains why a shop failed; other shops still run).

### FAQ

#### Do I need a Depop account or a proxy?

No. The Actor does not log in, and every run uses residential Apify Proxy, included in the price.

#### Why is it slow for many shops?

Shops are processed one at a time, with a pause of about 0.7 seconds between requests of 100 follows each. A shop with 1,000 followers takes about 15 seconds.

#### Is it legal to scrape Depop followers?

The Actor collects follower lists that are public on Depop. You are responsible for how you use the data, including Depop's terms and laws such as GDPR, since rows name real accounts.

### Cost

You pay per result. Platform usage and residential proxy are included.

| Event                | Price                                              |
| -------------------- | -------------------------------------------------- |
| Follow saved         | $0.50 per 1,000 follows                            |
| Seller profile saved | $0.002 per shop (only with `includeSellerProfile`) |
| Actor start          | $0.00005                                           |
| Error rows           | Free                                               |

Example: 500 followers from each of 4 shops, with seller profiles, costs 2,000 × $0.0005 + 4 × $0.002 = $1.008.

Set a maximum cost per run in Apify Console or with `maxTotalChargeUsd` in the API. The run stops cleanly when it reaches the limit, and you are not charged past it.

### Related Actors

- [Depop Reviews Scraper](https://apify.com/epicscrapers/depop-reviews-scraper): shop reviews and seller profiles on Depop.
- [Vinted Search Scraper](https://apify.com/epicscrapers/vinted-search-scraper): second-hand fashion listings on Vinted.

### Support

Report problems through the Issues tab. Include the run ID, your input and what you expected.

This Actor is not affiliated with or endorsed by Depop. "Depop" is a trademark of its owner.

# Actor input Schema

## `shopUrls` (type: `array`):

Paste Depop shop page URLs. The Actor automatically resolves each URL to the internal Depop user ID. Example: <code>https://www.depop.com/nikerlina/</code>

## `usernames` (type: `array`):

Use this only if you already know the Depop usernames. Can be used instead of URLs or together with them. Example: <code>nikerlina</code>

## `userIds` (type: `array`):

Use this only if you already know the numeric Depop user IDs. Example: <code>3138013</code>

## `direction` (type: `string`):

Scrape the accounts that <code>follow</code> the seller (followers), the accounts the seller <code>follows</code> (following), or <code>both</code> lists.

## `maxFollows` (type: `integer`):

Maximum number of follows to save for each seller and direction (with <code>both</code>, the limit applies to each list). Keep it low for quick tests and lower costs.

## `includeSellerProfile` (type: `boolean`):

Save one <code>seller</code> record per shop with bio, follower counts, rating, items sold and avatar.

## `country` (type: `string`):

Two-letter country code that Depop sees (e.g. <code>GB</code>, <code>US</code>). The residential proxy, which every run uses, is pinned to the same country.

## Actor input object example

```json
{
  "shopUrls": [
    "https://www.depop.com/nikerlina/"
  ],
  "usernames": [],
  "userIds": [],
  "direction": "followers",
  "maxFollows": 500,
  "includeSellerProfile": true,
  "country": "GB"
}
```

# Actor output Schema

## `results` (type: `string`):

Default dataset containing follow records, optional seller profile records, and error records.

# 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 = {
    "shopUrls": [
        "https://www.depop.com/nikerlina/"
    ],
    "usernames": [],
    "userIds": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("epicscrapers/depop-followers-scraper").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 = {
    "shopUrls": ["https://www.depop.com/nikerlina/"],
    "usernames": [],
    "userIds": [],
}

# Run the Actor and wait for it to finish
run = client.actor("epicscrapers/depop-followers-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "shopUrls": [
    "https://www.depop.com/nikerlina/"
  ],
  "usernames": [],
  "userIds": []
}' |
apify call epicscrapers/depop-followers-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,epicscrapers/depop-followers-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/sKkphShyRnIlf1mYH/builds/dE9loJ1glsPVQ39d5/openapi.json
