# Fiverr Scraper — Gigs, Sellers, Packages & Pricing (`memo23/fiverr-scraper`) Actor

Scrape Fiverr gigs, sellers, packages, reviews and pricing — search by keyword or category, or paste gig / seller URLs. One row per gig: title, starting price, all package tiers, rating, reviews, category, images and the full seller block. Optional detail enrichment. JSON/CSV out.

- **URL**: https://apify.com/memo23/fiverr-scraper.md
- **Developed by:** [Muhamed Didovic](https://apify.com/memo23) (community)
- **Categories:** Automation, AI, Agents
- **Stats:** 454 total users, 162 monthly users, 99.0% runs succeeded, 0 bookmarks
- **User rating**: 4.86 out of 5 stars

## Pricing

from $1.70 / 1,000 gig scrapeds

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

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

## Fiverr Scraper

Turn any [Fiverr](https://www.fiverr.com) search into clean, structured data. Search by **keyword** or **category**, or paste **gig URLs** and **seller URLs** — and get one flat row per gig with title, starting price, all package tiers, rating, review count, category, images and the full seller block (name, level, country, languages). Flip on detail mode to add the full description, top reviews, FAQ and gallery.

Built for freelance-market research, competitor and pricing analysis, and lead generation across every Fiverr category.

#### How it works

![How the Fiverr Scraper works](https://raw.githubusercontent.com/muhamed-didovic/muhamed-didovic.github.io/main/assets/how-it-works-fiverr.png)

#### ✨ Why use this scraper?

- **Rich rows out of the box** — ~30 fields per gig from the search results alone: title, starting price, package count, rating, review count, seller name/level/country/languages, images and badges (Pro, Fiverr's Choice).
- **Three ways in** — keyword/category search, direct gig URLs, or seller-profile URLs. Mix them in one run.
- **Beats Fiverr's block** — Fiverr serves datacenter scrapers a PerimeterX captcha; this actor routes every request through residential IPs with a real browser fingerprint, so you get the real page.
- **Full detail on demand** — turn on *Scrape gig detail pages* (or paste a gig URL) to add the full description, every package tier with prices and features, top reviews, FAQ, gallery and category names.
- **Seller profiles too** — paste a seller URL for their level, country, languages, skills, rating, member-since and gigs.
- **No brittle DOM scraping** — reads Fiverr's embedded JSON, so the output stays stable when the page layout changes.
- **JSON, CSV, Excel or API** — pipe straight into your sheet, BI tool or pipeline. Billed per gig.

#### 🎯 Use cases

| You are a… | Use it to… |
|---|---|
| Freelancer / agency | Benchmark your niche — pricing, packages, ratings and positioning of top gigs |
| Market researcher | Measure price distribution, seller levels and review volume per category |
| Pricing analyst | Track starting prices and package tiers across competing gigs over time |
| Lead-gen / recruiter | Find sellers by category, level and country, with their skills and languages |
| Data / app builder | Seed a freelance-services dataset with structured gig + seller rows |

#### 📥 Supported inputs

| Input | Example | What it does |
|---|---|---|
| Search keyword | `logo design`, `voice over` | Searches Fiverr and paginates the gig results |
| Category URL | `https://www.fiverr.com/categories/graphics-design/creative-logo-design` | Paginates that category's gigs |
| Gig URL | `https://www.fiverr.com/{seller}/{gig-slug}` | Scrapes that single gig in full detail |
| Seller URL | `https://www.fiverr.com/{seller}` | Scrapes that seller's profile |

**Not supported:** buyer messages, order/checkout flows, private/account-only data, and anything behind a Fiverr login. The actor reads only public gig, category and seller pages.

#### ⚙️ How it works

1. **Classify** every input — keywords become search URLs; pasted URLs are sorted into search / category / gig / seller.
2. **Unlock** each page with a browser TLS fingerprint over a residential IP, so the real page is returned instead of the PerimeterX captcha.
3. **Parse** the page's embedded `perseus-initial-props` JSON — a search page yields ~48 gigs; the `?page=2`, `?page=3` … sequence is followed automatically up to your limit.
4. **Enrich** each gig from its detail page (when *Scrape gig detail pages* is on): full description, all package tiers, top reviews, FAQ and gallery.
5. **Emit** one flat, deduplicated row per gig (or seller) to the dataset.

#### ⚙️ Input parameters

| Field | Type | Default | Description |
|---|---|---|---|
| `searchQueries` | array | — | Keywords to search, e.g. `logo design`. |
| `categoryUrls` | array | — | Fiverr `/categories/…` browse URLs. |
| `startUrls` | array | — | Gig URLs and/or seller URLs. Auto-classified. |
| `scrapeDetails` | boolean | `false` | Also fetch each search gig's detail page for description, full packages, reviews, FAQ and gallery (~2× requests). Pasted gig URLs are always fully detailed. |
| `maxItems` | integer | `1000` | Max rows for the whole run. |
| `maxItemsPerSearch` | integer | `1000` | Max gigs per search / category. |
| `maxConcurrency` | integer | `6` | Parallel requests. Keep moderate — Fiverr is PerimeterX-protected. |
| `maxRequestRetries` | integer | `15` | Retry budget per request on PerimeterX challenges (403), 429 and network errors. |
| `proxy` | object | Apify Residential | Applies to free-tier runs; paid runs use a built-in residential pool. |

#### 📊 Output overview

Each dataset record is **one gig** (or **one seller** for seller URLs). Gig rows carry the search-card fields (price, packages, rating, reviews, seller block, images, badges) and — when *Scrape gig detail pages* is on, or for pasted gig URLs — the detail fields (description, full package tiers, top reviews, FAQ, gallery, category names). Prices are in USD.

#### 📦 Output sample

```json
{
  "rowType": "gig",
  "gigId": "446151536",
  "title": "design modern minimalist logo design for your business",
  "gigUrl": "https://www.fiverr.com/weperfectionist/design-modern-minimalist-logo",
  "category": "Graphics & Design",
  "subCategory": "Logo Design",
  "priceFrom": 25,
  "currency": "USD",
  "numPackages": 3,
  "packages": [
    { "tier": "Basic Package", "price": 25, "durationDays": 2, "revisions": 2, "features": ["2 concepts", "Logo transparency"] },
    { "tier": "Standard Package", "price": 60, "durationDays": 2, "revisions": 4, "features": ["4 concepts", "Source file", "Vector file"] },
    { "tier": "Premium Package", "price": 120, "durationDays": 3, "revisions": 10, "features": ["Unlimited concepts", "3D mockup", "Social media kit"] }
  ],
  "rating": 4.8,
  "reviewsCount": 18060,
  "sellerName": "weperfectionist",
  "sellerDisplayName": "Team Perfectionist",
  "sellerLevel": "top_rated_seller",
  "sellerCountry": "AE",
  "sellerUrl": "https://www.fiverr.com/weperfectionist",
  "sellerRating": 4.9,
  "sellerLanguages": ["en"],
  "images": ["https://fiverr-res.cloudinary.com/…/gig.png"],
  "isPro": false,
  "isFiverrChoice": true,
  "sourceMode": "search",
  "scrapedAt": "2026-06-29T07:30:00.000Z"
}
```

#### 🗂 Key output fields

| Field | Type | Notes |
|---|---|---|
| `title` / `gigUrl` | string | Gig headline + canonical URL |
| `priceFrom` / `currency` | number / string | Starting (Basic) package price, in USD |
| `packages` | array | Each tier: name, price, delivery days, revisions, features (full list with detail) |
| `rating` / `reviewsCount` | number | Gig rating + number of reviews |
| `category` / `subCategory` | string | Category names (filled with detail / on gig URLs) |
| `sellerName` / `sellerDisplayName` | string | Username + display name |
| `sellerLevel` | string | `level_one_seller` / `level_two_seller` / `top_rated_seller` / Pro |
| `sellerCountry` / `sellerLanguages` | string / string\[] | Seller country + languages |
| `sellerRating` / `sellerRatingCount` | number | Seller's overall rating |
| `images` | string\[] | Gig gallery images |
| `isPro` / `isFiverrChoice` | boolean | Badges |
| `description` / `faq` / `gallery` / `topReviews` | — | Present with `scrapeDetails` / on gig URLs |
| `rowType: "seller"` | — | Seller rows: level, country, languages, skills, memberSince, rating, gigs |

#### ❓ FAQ

**Can I get the seller's contact details / email?** No. Fiverr doesn't expose seller emails or phone numbers publicly; the actor returns the public profile (username, level, country, languages, skills, rating, gigs).

**How many gigs can I get per search?** Fiverr returns ~48 gigs per page and paginates deep. Use a specific keyword or category and `maxItemsPerSearch` to cap.

**What does *Scrape gig detail pages* add?** The search row is already rich (~30 fields). Turning it on visits each gig's page to add the **full description, every package tier with features, top reviews, FAQ, gallery and category names** — at roughly double the requests. Gig URLs you paste are always fully detailed.

**Are prices accurate?** Yes — read live from each gig at scrape time, in USD (the Basic-package starting price, plus every tier under `packages`).

**Do I need to configure proxies?** No. Residential routing is built in (Fiverr blocks datacenter IPs with PerimeterX). Just give it keywords or URLs.

#### 💬 Support

Found a bug or need an extra field? Open an issue on the [actor's Issues tab](https://apify.com/memo23/fiverr-scraper/issues) and it'll be looked at quickly.

#### 🛠 Additional services

Need a custom field, another freelance marketplace (Upwork, Freelancer, PeoplePerHour), or a scheduled gig-pricing feed into your warehouse? Custom scraping and pipeline work is available on request.

#### 🔎 Explore more scrapers

Looking for more marketplace or company-data sources? Check out the other directory, e-commerce and review scrapers in the same publisher's collection on the Apify Store.

***

### 🤖 For AI Agents & LLM Apps

Compact reference for AI agents calling this actor via the [Apify MCP server](https://mcp.apify.com) or the Apify API (actor: `memo23/fiverr-scraper`).

**Purpose:** Scrapes Fiverr gigs and seller profiles from keyword searches, category URLs, or pasted gig/seller URLs, returning one flat row per gig (or seller) with pricing, packages, ratings and the full seller block.

**Minimal input:**

```json
{
    "searchQueries": ["logo design"],
    "maxItems": 20
}
```

URL-mode variant: `{ "startUrls": ["https://www.fiverr.com/weperfectionist/design-modern-minimalist-logo"], "maxItems": 20 }`

**Output:** one row per gig — rowType, gigId, title, gigUrl, category, subCategory, priceFrom, currency, numPackages, packages \[{tier, price, durationDays, revisions, features}], rating, reviewsCount, sellerName, sellerDisplayName, sellerLevel, sellerCountry, sellerUrl, sellerRating, sellerLanguages, images, isPro, isFiverrChoice, sourceMode, scrapedAt; with detail: description, faq, gallery, topReviews.

**Behaviors an agent should know:**

- Three input modes — `searchQueries`, `categoryUrls`, `startUrls` (gig and/or seller URLs, auto-classified) — can be mixed in one run.
- `maxItems` caps the whole run (default 1000; free tier additionally capped at 25); `maxItemsPerSearch` caps per keyword/category (default 1000).
- `scrapeDetails: true` visits each gig's detail page for description/full packages/reviews/FAQ/gallery at ~2× requests; pasted gig URLs are always fully detailed.
- Keep `maxConcurrency` moderate (4–8, max 15) — Fiverr is PerimeterX-protected; leave `proxy` empty (built-in residential routing).
- No login-gated data: seller emails/phone numbers are never available; prices are in USD.
- Billing: each dataset row is one paid `gig` event — see the Pricing tab on the actor page.

***

### ⚠️ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Fiverr International Ltd. or any of its subsidiaries or affiliates. All trademarks mentioned are the property of their respective owners.

The scraper accesses only publicly available Fiverr gig, category and seller pages — no authenticated endpoints, no login-only or private data. Users are responsible for ensuring their use complies with Fiverr's Terms of Service, applicable data-protection law (including GDPR and CCPA where relevant) and any contractual obligations of their own organisation. Use scraped personal data (such as seller usernames) lawfully and honour opt-out / do-not-contact requirements.

***

### SEO Keywords

fiverr scraper, scrape fiverr, fiverr gig scraper, fiverr data extraction, fiverr api, fiverr seller scraper, fiverr gigs extractor, fiverr price scraper, freelance marketplace scraper, fiverr search scraper, fiverr category scraper, gig economy data, fiverr reviews scraper, fiverr packages pricing, scrape fiverr gigs, fiverr competitor analysis, freelance services data, fiverr listings scraper, apify fiverr, fiverr seller profiles

# Actor input Schema

## `searchQueries` (type: `array`):

Keywords to search on Fiverr, e.g. `logo design`, `video editing`, `voice over`. Each is searched and paginated.

## `categoryUrls` (type: `array`):

Fiverr category / sub-category browse URLs, e.g. `https://www.fiverr.com/categories/graphics-design/creative-logo-design`. Paginated like a search.

## `startUrls` (type: `array`):

Direct gig URLs (`https://www.fiverr.com/{seller}/{gig-slug}`) and/or seller-profile URLs (`https://www.fiverr.com/{seller}`). Auto-classified.

## `scrapeDetails` (type: `boolean`):

For each gig found in search/category, also fetch its detail page to add the full description, all package tiers, top reviews, FAQ, gallery and category names. Richer rows, but ~2× the requests. Off = the search-card fields (already ~30 per gig). Gig URLs you paste are always fully detailed.

## `maxReviewsPerGig` (type: `integer`):

Collect up to this many reviews per gig into a `reviews` list (reviewer, country, rating, text, date, order price range, seller's reply and more). 0 = off: detailed rows keep only the 5 reviews shown on the gig page. Each review is one `review` event, except the 5 that come with the gig page when it is fetched anyway (gig URLs, or detail pages on). Works with or without detail pages. Max 1000. Available from 20 November 2026.

## `reviewsSort` (type: `string`):

Order of the `reviews` list. With `Most recent first`, every review is an extra `review` event.

## `maxItems` (type: `integer`):

Hard cap on rows across the entire run. Each row is one paid `gig` event. Default 1000. Free-plan runs are capped at 25 rows.

## `maxItemsPerSearch` (type: `integer`):

Cap per search keyword / category URL. Fiverr returns ~48 gigs per page. Default 1000.

## `maxConcurrency` (type: `integer`):

Parallel HTTP requests. Fiverr is protected by PerimeterX — keep this moderate (4–8). Default 6.

## `maxRequestRetries` (type: `integer`):

Per-request retry budget on PerimeterX challenges (403), 429 and network errors. Each retry rotates to a fresh residential IP; a 30-second wall-clock budget per URL applies on top, and an unblocker service takes over when HTTP is exhausted. Capped at 10.

## `proxy` (type: `object`):

Leave empty — the actor already routes all traffic through its own built-in residential proxy at no extra cost to you. Only set this if you want to use your own proxies.

## `customProxyUrls` (type: `array`):

Optional — bring your own HTTP proxy (e.g. `http://user:pass@host:port`). When set, these are used instead of Apify Proxy on any plan; the scraper rotates the session per request. You usually don't need this: the default Apify Residential proxy clears PerimeterX for normal and high-volume runs. Only add a custom proxy if blocking climbs — and make sure it actually works from Apify's cloud (some proxies that work from a home IP hang or block from Apify's datacenter egress), so test it with a real run first.

## Actor input object example

```json
{
  "searchQueries": [
    "logo design"
  ],
  "categoryUrls": [],
  "startUrls": [],
  "scrapeDetails": false,
  "maxReviewsPerGig": 0,
  "reviewsSort": "relevant",
  "maxItems": 50,
  "maxItemsPerSearch": 1000,
  "maxConcurrency": 6,
  "maxRequestRetries": 10,
  "customProxyUrls": []
}
```

# Actor output Schema

## `results` (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 = {
    "searchQueries": [
        "logo design"
    ],
    "categoryUrls": [],
    "startUrls": [],
    "maxItems": 50,
    "customProxyUrls": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("memo23/fiverr-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 = {
    "searchQueries": ["logo design"],
    "categoryUrls": [],
    "startUrls": [],
    "maxItems": 50,
    "customProxyUrls": [],
}

# Run the Actor and wait for it to finish
run = client.actor("memo23/fiverr-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 '{
  "searchQueries": [
    "logo design"
  ],
  "categoryUrls": [],
  "startUrls": [],
  "maxItems": 50,
  "customProxyUrls": []
}' |
apify call memo23/fiverr-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,memo23/fiverr-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/GsoZcjPI1EamtqzUD/builds/eDtDB3NUQ1c7bCTSm/openapi.json
