Fiverr Gigs Scraper — Search Results & Prices avatar

Fiverr Gigs Scraper — Search Results & Prices

Pricing

from $2.00 / 1,000 gig scrapeds

Go to Apify Store
Fiverr Gigs Scraper — Search Results & Prices

Fiverr Gigs Scraper — Search Results & Prices

Scrape Fiverr gigs search results for any keyword: gig titles, starting prices, seller levels and countries, ratings and Pro/Featured flags as clean JSON. No API key, login or proxy required. Ideal for freelance market research, pricing analysis and competitor monitoring.

Pricing

from $2.00 / 1,000 gig scrapeds

Rating

0.0

(0)

Developer

Oaida Adrian

Oaida Adrian

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

11 hours ago

Last modified

Share

Scrape Fiverr search results for any keyword and get every gig as clean, structured JSON — titles, starting prices, seller levels, ratings, countries and Pro/Featured flags. No API key, no login, no proxy required.

Built for freelance-market researchers, pricing analysts and agencies who need the whole competitive landscape of a service niche in one table instead of clicking through result pages.

Why this Actor

  • No account, no API key, no proxy budget — Fiverr has no public search API; this Actor reads the server-rendered search page directly with browser-grade TLS, so requests aren't blocked from datacenter IPs.
  • Complete result rows — price, gig rating and overall seller reputation (level, country, lifetime rating) on one JSON row, so you can slice by any of them.
  • Search placement includedsearchRank gives each gig's exact position in the result list (1 = first), alongside the placement flags (promoted_gigs, fiverr_choice, isPro, isFeatured), so you can see who ranks where and keep paid placements out of organic analysis.
  • Delivery economics, not just headline price — the cheapest package's delivery time (deliveryDays), price tier, express-delivery flag and hourly rates (for hourly gigs) come out with the price, so a $40/2-day gig is comparable to a $25/7-day one.
  • Seller fit signals — seller languages, online-now status, recurring/subscription option, consultation offer and the gig's declared attributes (style, file types, …).
  • Batch keywords — pass a whole list of search terms; each is searched exactly as if typed into fiverr.com, and every result is tagged with the keyword that produced it.
  • Pay per result — $0.002 per gig scraped; a 48-gig, 1-keyword run costs about $0.10.

How it works

For each keyword the Actor requests the Fiverr search results page, parses the embedded listing JSON (the same perseus-initial-props payload the site itself renders from), and outputs one dataset item per gig — 48 gigs per page, paging automatically up to maxGigsPerKeyword (max 480, i.e. 10 pages).

Input

{
"keywords": ["logo design", "python automation"],
"maxGigsPerKeyword": 48
}
FieldTypeDescription
keywordsarrayService search terms, one search per keyword — required
maxGigsPerKeywordintegerGigs to scrape per keyword (default 48, max 480; 48 per result page)
detectChangesbooleanCompare against the previous run of the same keyword (default true). Adds the change fields below.
onlyChangesbooleanEmit only new/changed/removed gigs (default false) — the compact change feed for scheduled runs.
includeRemovedbooleanAlso report gigs that disappeared since last run (default true).

Monitor mode (why this is not just a scraper)

Search results are a snapshot; the money is in the delta. With detectChanges on (the default), each keyword's last-seen state is kept in a named key-value store, so the state survives between runs — schedule the Actor daily and every run tells you what moved:

{
"keywords": ["logo design"],
"maxGigsPerKeyword": 48,
"detectChanges": true,
"onlyChanges": true,
"includeRemoved": true
}

Every row then carries:

Change fieldMeaning
isNewFirst time this gig has been seen for this keyword
changed / changesWhether anything moved, and what: price, delivery, rank, rating, ratingCount, sellerLevel, title
previousPriceFrom + priceChangePctWhat it cost last run, and the percentage move (negative = price drop)
previousDeliveryDaysDelivery time last run — a gig can hold its price and still get worse
previousSearchRank + rankChangeWhere it sat before; positive rankChange = moved up the list
firstSeenAt / lastSeenAtThe observation window you have actually watched this gig for
changeType: "removed"The gig is gone from the search since the last run

With onlyChanges: true a scheduled run returns just the movers — and you are charged only for the rows you receive ($0.002 per emitted gig). The first run of a keyword is the baseline and emits everything; from then on the feed is quiet unless the market actually moves.

Output (one item per gig)

{
"keyword": "logo design",
"searchRank": 1,
"position": 0,
"gigId": "500823954",
"slug": "create-brand-logo-design-for-your-business",
"title": "create brand logo design for your business",
"gigUrl": "https://www.fiverr.com/adnan_creates/create-brand-logo-design-for-your-business",
"imageUrl": "https://fiverr-res.cloudinary.com/t_main1,q_auto,f_auto/...jpg",
"currency": "EUR",
"priceFrom": 40,
"deliveryDays": 2,
"packageType": "cheapest",
"packagePriceTier": 0,
"expressDelivery": false,
"hourlyRate": 2000,
"rating": 5,
"ratingCount": 23,
"sellerName": "adnan_creates",
"sellerDisplayName": "Lumexa",
"sellerId": "81023402",
"sellerCountry": "PK",
"sellerLevel": "top_rated_seller",
"sellerUrl": "https://www.fiverr.com/adnan_creates",
"sellerImageUrl": "https://fiverr-res.cloudinary.com/t_profile_thumb,...jpg",
"sellerRating": 5,
"sellerRatingCount": 58,
"sellerLanguages": [{"code": "en", "level": 3}, {"code": "fr", "level": 3}, {"code": "de", "level": 2}],
"sellerIsOnline": true,
"sellerIsUnavailable": false,
"hasRecurringOption": false,
"offerConsultation": false,
"gigAttributes": {"style": ["flat_minimalist"], "logo_type": ["monogram", "wordmark"]},
"deliveryAttachmentCount": 1,
"choiceEligibility": ["ALGO_A"],
"isPro": false,
"isFeatured": false,
"isFiverrChoice": false,
"numPackages": 3,
"categoryId": 3,
"subCategoryId": 49,
"listingType": "promoted_gigs"
}

Every field is read from the same search-page payload the site itself renders, so the richer row costs no extra requests — and no extra charge.

Use cases

  • 💰 Pricing analysis — starting prices by seller level and country: what does a top_rated_seller charge for the service you offer?
  • 🔎 Freelance market research — how crowded is a niche, what do the top gigs promise, where do the sellers sit geographically?
  • 📈 Competitor monitoring — schedule a daily run per keyword and track new gigs, price moves and rating momentum over time.
  • 🎯 Lead generation — shortlist sellers by category, level and rating for outreach or white-label partnerships.
  • 🤖 Datasets & AI — build a labeled corpus of service titles and prices for classification or market models.

Run it from the API

curl:

curl -X POST "https://api.apify.com/v2/acts/darknezz~fiverr-gigs-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keywords":["logo design"],"maxGigsPerKeyword":96}'

Python (Apify SDK):

from apify_client import ApifyClient
client = ApifyClient("YOUR-APIFY-TOKEN")
run = client.actor("darknezz/fiverr-gigs-scraper").call(
run_input={"keywords": ["python automation"], "maxGigsPerKeyword": 96},
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["title"], "|", item["priceFrom"], item["currency"], "|", item["sellerLevel"], "|", item["sellerCountry"])

Example output (keyword "python automation", first rows):

scrape data from websites with python and excel | 25 USD | top_rated_seller | PK
automate excel tasks with python scripts | 15 USD | level_two_seller | IN
python web scraper bot with api integration | 40 USD | level_two_seller | BD

Scheduling: attach an Apify Schedule (e.g. daily) and set onlyChanges: true — the Actor keeps each keyword's last-seen state between runs, so every scheduled run returns only the gigs that appeared, moved price/delivery, changed rank, or vanished. Price history comes free with the run timestamps, which is what the change fields build on.

Pricing

Pay per event: $0.002 per gig scraped (primary charge event gig-scraped, verified against the live pricingInfos record) + a one-time $0.00005 actor start + $0.00001 per dataset item. A 120-gig, 2-keyword run costs roughly $0.24 in event fees. No subscription — you pay only for what you run.

FAQ

Do I need a Fiverr account or API key? No. The Actor reads the public search results page; there is nothing to authenticate.

Do I need a proxy? No. Search pages are reachable from datacenter IPs — no residential proxy budget required.

How many gigs can one run return? Up to 480 per keyword (10 result pages of 48). Multiply by as many keywords as you like in one run — each keyword is searched separately and its results are tagged with the keyword field.

Can I sort the results (cheapest first, newest, best selling)? Not reliably — and this is measured, not assumed. Fiverr's public search page does not honour a sort parameter from the URL: requesting &sort_by=price_asc, price_desc, rating, new or newest_arrivals leaves the page's own sort state on "Relevance" and returns unordered prices (an ascending sort would show zero out-of-order pairs; the live pages returned ~500). Sorting is applied by their client, not the URL. That is why searchRank is in every row: it tells you the position Fiverr chose for each gig, and you can sort the dataset however you like downstream — by price, rating, delivery time, seller level or rank.

What is searchRank exactly? The gig's 1-based position in the result list for its keyword, as returned by the search (page × 48 + position). Rank 1 is the first organic or promoted slot Fiverr showed; use listingType to separate paid placements (promoted_gigs, fiverr_choice) from organic ones.

What if a keyword returns fewer than 48 gigs? You get everything found for that keyword; the run simply stops paging when results run out.

How does the change tracking work — where is the previous state kept? In a named Apify key-value store (fiverr-gigs-state), one snapshot per keyword, holding each gig's price, delivery time, rank, rating, seller level and title. It survives between runs, so a scheduled Actor compares today against yesterday automatically. Nothing is shared between accounts, and each keyword is tracked independently — logo design and python automation never mix.

What does the first run return in monitor mode? The baseline: every gig is isNew with firstSeenAt set, and with onlyChanges: true that first run emits the full set. Every run after it is a delta. If you want a full snapshot every time, leave onlyChanges: false — you still get all the change fields, they are just all changed: false once the market settles.

Two runs ten seconds apart reported 10 new and 10 removed gigs — is that real churn? Partly, and it is worth knowing before you build on the feed. Fiverr rotates its promoted/ad slots between page loads, so the first page is not a fixed set of 48 gigs: in a measured pair of back-to-back runs the delta was new=10, changed=3 (rank), unchanged=35, removed=10. For organic comparison, filter listingType != "promoted_gigs" (and fiverr_choice if you want pure organic), or raise maxGigsPerKeyword so a larger, more stable slice is compared. Genuine market movement — price and delivery changes — is what the change fields are there to catch.

Do I pay for gigs that did not change? No — with onlyChanges: true you are charged per emitted row, so a quiet day costs you the actor start and nothing else.

Are promoted/ad listings included? Yes, and they are flagged via listingType (promoted_gigs, fiverr_choice) so you can filter them out of organic analysis.

How fresh is the data? It is scraped live at run time — every run reflects the search page at that moment, which is what makes scheduled runs a price-history tool.

Why is priceFrom sometimes different from the gig page? It is the cheapest package price rendered in search at scrape time; sellers change package prices frequently.

Is scraping this legal? The search results are public and unauthenticated. You are responsible for complying with Fiverr's terms and applicable laws for how you use the data.

Limitations

  • Search results only — the Actor does not fetch individual gig detail pages, reviews or seller portfolios (ask in the Issues tab if you need those). Everything here — including deliveryDays, sellerLanguages and gigAttributes — comes from the search payload, so the run stays fast and cheap.
  • Search results arrive in Fiverr's own relevance order; no sort parameter is honoured (see the FAQ entry above, with the measurements).
  • deliveryDays and packagePriceTier describe the cheapest package shown in search, not the price of every tier — numPackages tells you how many tiers the gig has.
  • priceFrom is the cheapest package shown in search at scrape time, not a live quote from the gig page.
  • sellerIsOnline is a snapshot of the moment of scraping, not a live presence feed.
  • Runs are capped at 480 gigs per keyword to stay polite to Fiverr's infrastructure and keep runs fast.
  • Fiverr may occasionally rate-limit or challenge rapid repeated searches; scheduling runs with sensible intervals is recommended.