Yaga Marketplace Scraper
Pricing
from $1.99 / 1,000 results
Yaga Marketplace Scraper
Scrape Yaga's secondhand marketplace in South Africa: fashion listings, resale asking prices, seller profiles and reviews for research and price monitoring.
Pricing
from $1.99 / 1,000 results
Rating
5.0
(1)
Developer
Inus Grobler
Maintained by CommunityActor stats
1
Bookmarked
6
Total users
0
Monthly active users
4 days ago
Last modified
Categories
Security
Limited permissionsShare
Collect secondhand fashion listings, resale asking prices, seller profiles and reviews from Yaga South Africa. This marketplace scraper exports clean product data for resale research, seller comparisons and repeated price monitoring. Enter a keyword or paste public Yaga URLs, choose a result limit, and run. Pagination is automatic.
What you can collect
- Listings: asking prices, product descriptions, brands, sizes, condition, images and seller details.
- Seller profiles: shop description, location, completed orders, ratings and shipping estimates.
- Reviews: ratings, written comments, review dates, reviewers and seller replies when available.
Use the data to research the South African resale market, compare advertised prices by brand or condition, and collect marketplace seller reviews. Raw records export as JSON, CSV or Excel.
Quick start
- Enter a Search keyword, or add Yaga URLs for listings or seller profiles. URLs take priority over the example keyword.
- Set your Listing limit.
- For seller feedback, turn on Include reviews and choose a Review limit.
- Start the Actor. It handles paging and request settings automatically.
You can start with the default settings to receive up to 20 current listings.
Search listings
{"searchQuery": "nike sneakers","maxListings": 10}
Collect a seller profile and reviews
{"startUrls": [{"url": "https://www.yaga.co.za/incahoots"}],"maxListings": 0,"includeReviews": true,"maxReviews": 10}
Set maxListings above zero to collect the seller's inventory too. To collect exact products, add their public listing URLs to startUrls. Enabling reviews for a listing URL also collects that listing's seller profile and feedback. For reviews, provide a listing or profile URL rather than a keyword alone.
Secondhand marketplace research examples
Secondhand fashion market research
Search a brand or product type, then compare asking prices alongside size, condition, seller and listing URL. For example, collect a small set of Zara dresses:
{"searchQuery": "zara dress","maxListings": 10}
The results are public Yaga listings from South Africa. Product availability and result counts depend on what sellers currently publish.
Resale price research and monitoring
To monitor Yaga listing prices, repeat the same keyword search or listing URLs on the dates you need. Save each timestamped export, then match url or listingId in your own spreadsheet or workflow to compare asking prices over time. scrapedAt records the collection time; price and currency identify the observed asking price.
For example, run the Nike search above each week to collect comparable price snapshots. Keep the exports yourself for history and comparisons. A disappearing listing alone does not establish a completed sale.
Seller comparisons and marketplace reviews
Add the profile URLs of the Yaga shops you want to research. Set maxListings to 0 and enable reviews to collect shop information and public feedback, or set a listing limit to include inventory. Compare the available location, average rating, feedback count, completed-order range and shipping estimate alongside individual review records.
Member comments and automatic transaction ratings are distinguished with isAutomatic. Review limits apply across the selected sellers, so use separate runs when you need the same review sample size for each shop. These are raw source records for your own comparisons.
Five simple inputs
| Input | What it does | Default |
|---|---|---|
searchQuery | Keyword or brand to search; ignored when URLs are supplied | nike sneakers |
startUrls | Public listing or seller profile URLs | Empty |
maxListings | Global listing limit, from 0 to 500; use 0 with a profile for profiles/reviews only | 20 |
includeReviews | Include seller profiles and public reviews for URL targets | Off |
maxReviews | Global review limit across the selected sellers, from 0 to 1,000 | 10 |
Profile rows are additional to the listing and review limits. Sellers are processed in input order. Fewer results can be returned when Yaga has fewer records, a source is unavailable, or a charge limit stops the run.
Output
Each dataset row has recordType, url, scrapedAt and sourcePageUrl. Missing optional values stay absent; legitimate zero prices, zero counts and false flags are preserved. This illustrative record shows the shape, not a current marketplace quote:
{"recordType": "listing","url": "https://www.yaga.co.za/example-shop/product/example-item","listingId": "example-item","title": "Pre-loved sneakers, size 7","description": "Pre-loved sneakers, size 7","price": 450,"currency": "ZAR","brand": "Nike","condition": "Good","size": "7","sellerName": "Example Shop","sellerUrl": "https://www.yaga.co.za/example-shop","likesCount": 0,"isSold": false,"scrapedAt": "2026-11-03T09:00:00.000Z","sourcePageUrl": "https://www.yaga.co.za/search/nike%20sneakers"}
| Record type | Useful fields |
|---|---|
listing | Price, currency, description, brand, condition, size, color, category, seller, images, likes, views and dates |
profile | Seller name, shop description, location, completed orders, average rating, feedback count, holiday mode and shipping estimate |
review | Review ID, rating, comment, date, reviewer, seller reply and isAutomatic |
Reviews include both member feedback and Yaga's automatic transaction ratings. Automatic ratings are marked isAutomatic: true and may have no written comment. The Actor never invents missing text. Review URLs point to the shop's Reviews tab because Yaga does not provide a separate page for each review.
Yaga often has no separate product name, so title uses the first 180 characters of the published description while description retains the full text. listingId is the product slug. Completed-order ranges such as 390+ stay strings.
The default dataset contains all record types; filter recordType to select listings, profiles or reviews. The output views show convenient field selections from that dataset. Run summary provides counts, source failures and stopping limits.
Coverage, reliability and pricing
This Actor collects public South African data from www.yaga.co.za. It excludes sold, hidden and deleted listings, and excludes Yaga's suggested products outside the keyword matches. Login-only data and other Yaga country sites are outside its scope.
Pagination continues automatically toward your requested limits, with internal safety bounds against repeated pages and excessive requests. A result limit is a maximum, not a guarantee of source availability. Request pacing, concurrency and retries are handled automatically. No cookies, API credentials, paid proxy, AI subscription or third-party scraping service is needed.
Each delivered listing, profile or review uses the existing result pricing event. Check the Pricing tab for current rates. Errors and summaries are kept outside the dataset. When no useful data can be collected, the run fails clearly; if some sources succeed, the summary reports partial coverage.
Python API example
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("thescrapelab/yaga-marketplace-scraper").call(run_input={"searchQuery": "nike sneakers", "maxListings": 10})if run is None or run["status"] != "SUCCEEDED":raise RuntimeError("Yaga scraping did not complete successfully")for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
Questions and troubleshooting
Can I scrape Yaga reviews? Yes. Add a seller profile or listing URL, enable includeReviews, and choose maxReviews. Use maxListings: 0 with a profile to skip inventory collection.
Why are there fewer results than requested? The seller may have fewer public records, a product may have been removed, or source/charge limits may have stopped collection. Check the run summary. Automatic ratings can legitimately lack written comments.
Can I use this for price monitoring? Yes. Repeat a search or a set of listing URLs and save each export. Compare matching URLs and their scrapedAt values in your own workflow to track observed asking prices.
Do I need pagination or request settings? No. The Actor manages them automatically.
Updating an older integration? The input form now uses only the five fields above. Move profiles or itemUrls values into startUrls as full Yaga URLs, and remove older technical, monitoring, filter and supplied-data inputs from saved payloads. Removed fields return a clear migration error. Existing dataset field names are unchanged.
For support, open the Actor's Issues tab with a run ID and a sanitized input example.