Yaga Scraper: Listings, Sellers & Reviews
Pricing
from $1.99 / 1,000 results
Yaga Scraper: Listings, Sellers & Reviews
Scrape public Yaga South Africa listings, seller shops, ratings, reviews, holiday mode, search visibility, and shipping-time signals for marketplace intelligence.
Pricing
from $1.99 / 1,000 results
Rating
5.0
(1)
Developer
Inus Grobler
Maintained by CommunityActor stats
1
Bookmarked
4
Total users
0
Monthly active users
13 days ago
Last modified
Categories
Share
Yaga Marketplace Scraper turns public Yaga.co.za listings, seller profiles, inventory, ratings, and reviews into clean, analysis-ready data. Use it for Yaga price monitoring, competitor research, seller intelligence, lead generation, and reputation analysis without building or maintaining your own scraper.
Use the Actor as a ready-to-run Yaga API: start a keyword search, submit exact listing URLs, or collect public seller data through Apify Console, the Apify API, or your preferred integration. Results are available as JSON, CSV, Excel, and other dataset formats.
Use one Actor for three workflows:
- Product research: prices, brands, sizes, condition, images, categories, availability, and seller details.
- Seller intelligence: shop profiles, locations, ratings, completed-order signals, likes, and active inventory.
- Reputation analysis: individual ratings, written comments, automatic transaction reviews, reviewer shops, and seller replies.
Results are delivered as structured JSON with dedicated Listings, Seller profiles, and Reviews views. Pay-per-result pricing means you can start with a small, predictable test and scale only when the data fits your use case.
Why Use This Yaga Scraper?
- Three data types in one run: combine product listings, seller profiles, and seller reviews.
- Useful seller signals: capture ratings, shop activity, holiday mode, search visibility, Instagram handle, and order-processing estimates when public.
- Pay only for saved results: sold listings and filtered reviews are excluded before they become paid dataset rows.
- Easy integrations: send Yaga marketplace data to Google Sheets, Make, Zapier, databases, dashboards, or AI workflows through Apify.
Quick Start
For a product search, enter a keyword such as nike sneakers and choose the maximum number of listings. For seller intelligence, add an exact Yaga handle or profile URL. Enable reviews only when you need review-level data.
{"searchQuery": "nike sneakers","maxListings": 20,"includeSoldItems": false}
Main Use Cases
- Monitor public Yaga listings for brands, categories, sizes, and prices.
- Track competitor and seller inventory on Yaga South Africa.
- Build pricing research, trend analysis, and availability dashboards.
- Enrich public marketplace seller leads with profile and shop metadata.
- Analyze seller reputation using review ratings, comments, reviewer shops, and public replies.
- Run recurring checks for new public listings matching a keyword or seller profile.
What Data It Extracts
Listing rows can include:
recordTypeurllistingIdtitledescriptionpricecurrencyoriginalPricediscountconditionbrandsizecolorcategorysubcategorysellerNamesellerUrllocationimageUrlsmainImageUrlisSoldisReservedlikesCountviewCountpostedAtupdatedAtscrapedAtsourcePageUrl
Profile rows can include:
recordTypeurlprofileIdprofileSlugsellerNamesellerUrldescriptionprofileImageUrllocationprovinceisActiveisInfluencerShopcompletedOrdersCountfeedbackTotalavgRatingshopCreatedAtshopUpdatedAtholidayModeincludeInSearchinstagramTagorderProcessingTimeHoursorderProcessingTimeTextlikesCountscrapedAtsourcePageUrl
Review rows can include:
recordTypereviewIdprofileIdprofileSlugsellerNamesellerUrlratingreviewTextisAutomaticautomaticReasonreviewedRolecreatedAtreplyTextrepliedAtreviewerIdreviewerNamereviewerShopIdreviewerProfileSlugreviewerProfileUrlreviewerImageUrlreviewerLocationreviewerProvincereviewerCountryscrapedAtsourcePageUrl
Each dataset row includes recordType, so you can filter listing, profile, and review rows separately. The Dataset tab also provides dedicated Listings, Profiles, and Reviews views.
Input Configuration
You can run a search, scrape known item URLs, scrape public seller profiles, or combine these inputs.
| Field | Type | Description |
|---|---|---|
searchQuery | String | Keyword to search on Yaga, such as nike sneakers, dress, or jacket. |
itemUrls | URL list | Direct Yaga item/listing URLs. Use this when you already know the product pages. |
profiles | String list | Public Yaga profile handles, slugs, or full profile URLs. |
includeReviews | Boolean | Save individual public reviews for supplied profiles. Default: false. |
maxReviews | Integer | Maximum review rows across all supplied profiles. Default: 5. Maximum: 1000. |
includeAutomaticReviews | Boolean | Include Yaga-generated transaction reviews. Enable this only when you need system-generated feedback. Default: false. |
minimumReviewRating | Integer | Save reviews at or above this rating, from 1 to 5. Default: 1. |
maxListings | Integer | Maximum listing rows to save from search and profile pages. Use 0 for a profile-only or review-only run. Default: 20. Maximum: 500. |
continuationToken | String | Continue a search from a previous run. Use the nextContinuationToken returned by the Actor with the same searchQuery. |
includeSoldItems | Boolean | Save sold or unavailable listings. Default: false. |
maxPages | Integer | Advanced fallback limit for rendered search or profile discovery pages. Default: 1. Maximum: 5. |
requestDelayMs | Integer | Advanced delay between requests in milliseconds. Default: 300. Maximum: 2000. |
discoveryConcurrency | Integer | Advanced browser discovery concurrency. Default: 1. Maximum: 8. |
itemConcurrency | Integer | Advanced direct listing fetch concurrency. Default: 2. Maximum: 8. |
Example Input
{"searchQuery": "nike sneakers","profiles": ["incahoots"],"includeReviews": true,"maxReviews": 25,"includeAutomaticReviews": false,"minimumReviewRating": 3,"maxListings": 20,"maxPages": 1,"requestDelayMs": 300,"includeSoldItems": false}
Reviews-Only Example
Enter one or more public profile handles or URLs, enable reviews, and set maxListings to 0 when you do not need listing rows:
{"profiles": ["incahoots"],"includeReviews": true,"maxReviews": 25,"includeAutomaticReviews": false,"maxListings": 0}
The Actor saves one profile summary row followed by up to maxReviews matching review rows. Both member-written and Yaga automatic reviews are available and identified by isAutomatic; turn off includeAutomaticReviews when you only want human-written feedback.
Continue A Search
When a search run reaches maxListings, the Actor can return nextContinuationToken in the run output. Use it with the same searchQuery to scrape the next batch at the same per-result price.
First run:
{"searchQuery": "dress","maxListings": 100}
Next run:
{"searchQuery": "dress","maxListings": 100,"continuationToken": "100"}
Direct Item URL Example
{"itemUrls": [{ "url": "https://www.yaga.co.za/example-shop/product/example-item" }],"maxListings": 1}
Example Output
{"recordType": "listing","url": "https://www.yaga.co.za/example-shop/product/example-item","listingId": "example-item","title": "Nike sneakers","description": "Used Nike sneakers in good condition","price": 450,"currency": "ZAR","condition": "Used","brand": "Nike","size": "UK 6","category": "Women","subcategory": "Shoes > Sneakers","sellerName": "Example seller","sellerUrl": "https://www.yaga.co.za/example-shop","location": "Western Cape","mainImageUrl": "https://images.yaga.co.za/example/image.jpeg","isSold": false,"isReserved": false,"likesCount": 12,"scrapedAt": "2026-06-09T12:00:00.000Z","sourcePageUrl": "https://www.yaga.co.za/search/nike%20sneakers"}
{"recordType": "profile","url": "https://www.yaga.co.za/example-shop","profileSlug": "example-shop","sellerName": "Example seller","sellerUrl": "https://www.yaga.co.za/example-shop","description": "Public shop description","location": "Cape Town","province": "Western Cape","completedOrdersCount": "260+","feedbackTotal": 159,"avgRating": 4.8,"shopCreatedAt": "2022-08-29T21:55:21.618Z","shopUpdatedAt": "2026-09-12T12:17:04.877Z","holidayMode": false,"includeInSearch": true,"orderProcessingTimeHours": 41,"orderProcessingTimeText": "Usually ships in 2 days","likesCount": 346,"scrapedAt": "2026-06-09T12:00:00.000Z","sourcePageUrl": "https://www.yaga.co.za/example-shop"}
{"recordType": "review","url": "https://www.yaga.co.za/example-shop?tab=reviews","reviewId": "830875","profileId": "100356319","profileSlug": "example-shop","sellerName": "Example seller","sellerUrl": "https://www.yaga.co.za/example-shop","rating": 5,"reviewText": "Item was in perfect condition.","isAutomatic": false,"reviewedRole": "seller","createdAt": "2026-07-20T18:18:15.797Z","reviewerId": "101026984","reviewerName": "Example reviewer","reviewerProfileSlug": "example-reviewer","reviewerProfileUrl": "https://www.yaga.co.za/example-reviewer","scrapedAt": "2026-07-22T12:00:00.000Z","sourcePageUrl": "https://www.yaga.co.za/example-shop"}
How To Run On Apify
- Open the Actor in Apify Console.
- Enter a Yaga search query, item URLs, profile handles, profile URLs, or a combination.
- To collect reviews, enable Include seller reviews and choose a review limit.
- Set
maxListingsto the number of listing rows you need, or0for reviews only. - Start the Actor.
- Use the Output tab to open all results or jump directly to the Listings, Seller profiles, or Reviews view.
Exporting Results
Results are saved continuously to the default Apify dataset while the Actor runs. You can export them as JSON, CSV, Excel, XML, RSS, or HTML from the Dataset tab, or access them through the Apify API.
Seller-profile rows include activity, search-visibility, holiday-mode, Instagram, and order-processing signals when Yaga makes them public.
Python API example:
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run_input = {"profiles": ["incahoots"],"includeReviews": True,"maxReviews": 25,"includeAutomaticReviews": False,"maxListings": 0,}run = client.actor("thescrapelab/yaga-marketplace-scraper").call(run_input=run_input)dataset_id = run["defaultDatasetId"]items = client.dataset(dataset_id).list_items().itemsfor item in items:print(item)
Recommended Run Settings
The measured default is 1024 MB memory. Search plus seller-profile discovery uses browser rendering, and current cloud stress tests showed that 512 MB can become memory constrained and time out. The identical mixed workload completed faster and at lower platform cost with 1024 MB. Direct item URL and review-only runs are lighter, but keeping the default at 1024 MB gives every advertised workflow practical headroom.
| Run size | Memory | Timeout | Notes |
|---|---|---|---|
| Direct item URL | 1024 MB default | 3 minutes | Best for known product URLs; manually selecting 512 MB can be sufficient for this lighter path. |
| Small search, up to 5 listings | 1024 MB | 5 minutes | Good for tests and quick checks. |
| Medium search, around 20 listings | 1024 MB | 10 minutes | Recommended default client workload. |
| Profile plus up to 100 reviews | 1024 MB | 5 minutes | Reviews use Yaga's public paginated review data after profile discovery. |
| Large capped run, up to 60-100 listings | 1024 MB | 10-15 minutes | Keep maxListings capped for predictable cost. |
| Larger search batches, up to 500 listings | 1024 MB | 15-30 minutes | Use continuationToken for repeatable batches. Test before scheduling. |
| Search plus profiles | 1024 MB | 10 minutes | Uses rendered discovery pages plus item fetching. |
For mixed search-and-profile workloads, do not reduce memory below 1024 MB unless you have measured your exact input. Lower memory can run longer, cost more in platform usage, and time out before producing the requested results.
Limits And Caveats
- This Actor collects public Yaga pages only. It does not log in or collect private account data.
- The Actor does not bypass paywalls, CAPTCHA, or access controls.
maxListingslimits listing rows, not profile summary rows.maxReviewsis a global cap across all supplied profiles and only applies whenincludeReviewsis enabled.- Review rows include both member and automatic reviews. Use
isAutomaticto separate them. - Review filters are applied before rows are saved, so filtered reviews do not count as paid results.
- Search runs can continue with
nextContinuationTokenwhen another batch may be available. - Sold or unavailable listings are skipped by default to reduce low-value results.
- Some fields may be missing when they are not shown publicly or when Yaga changes page structure.
- Search and seller coverage depends on the public data Yaga returns during the run.
- Keep recurring runs reasonable and review Yaga's current terms before high-volume use.
Troubleshooting
| Problem | What to check |
|---|---|
| No results | Try a broader searchQuery, a direct item URL, or an exact public profile handle. |
| Fewer results than expected | Increase maxListings up to 500, or use nextContinuationToken to continue in another run. |
| Missing fields | Confirm the field is visible on the public Yaga page. Not every listing exposes every field. |
| Profile not found | Use the exact profile slug or full profile URL instead of a display name. |
| No review rows | Enable includeReviews, supply a public profile, and confirm the profile currently shows reviews on Yaga. |
| Run takes too long | Lower maxListings or continue in smaller batches with nextContinuationToken. |
| Possible blocking or rate limits | Retry later with a smaller maxListings value, keep discoveryConcurrency at 1, and increase requestDelayMs slightly. |
Pricing
Pricing currently starts from $1.99 per 1,000 results. Apify shows the exact price for your plan before each run. Keep maxListings and maxReviews low for a first test and raise them only when you need broader coverage.
Each saved listing, seller profile, or review row counts as one result. Sold listings skipped by default and reviews excluded by includeAutomaticReviews or minimumReviewRating do not become paid results. Continuation tokens do not change the pricing unit; each batch returns another bounded set of rows.
FAQ
Can I scrape Yaga search results?
Yes. Provide searchQuery and set maxListings to the number of listing rows you want.
Can I use this as a Yaga API?
Yes. Run thescrapelab/yaga-marketplace-scraper through the Apify API and read structured listings, seller profiles, and reviews from the default dataset. The Python example above shows the complete request-and-download flow.
Can I scrape more than one batch?
Yes. Use nextContinuationToken from the previous run with the same searchQuery, or raise maxListings up to 500 for a larger single run.
Can I scrape a Yaga seller profile?
Yes. Add public handles, slugs, or full profile URLs to profiles. Profile rows can include shop age and activity timestamps, holiday mode, marketplace search visibility, Instagram handle, and order-processing estimates.
Can I scrape Yaga reviews?
Yes. Add public profiles, set includeReviews to true, and choose maxReviews. Set maxListings to 0 if you only need profile and review rows.
Are automatic reviews included?
They are excluded by default. Set includeAutomaticReviews to true to include them; included rows are identified by isAutomatic. Use minimumReviewRating to keep only reviews at or above a chosen star rating.
What counts as a paid result?
Every saved listing, seller profile, or review is one result. Invalid profiles, skipped sold listings, duplicate records, and reviews rejected by your filters are not saved as paid result rows.
Can I scrape exact Yaga item URLs?
Yes. Add direct item URLs to itemUrls.
Does it scrape sold listings?
Sold and unavailable listings are skipped by default. Set includeSoldItems to true if you need them.
Does it use a proxy?
The default configuration does not require a proxy in normal tests. If future runs show blocking symptoms, tune delay and proxy/session settings carefully and measure cost again.
What keywords can I use?
Common Yaga research queries include nike sneakers, adidas shoes, dress, jacket, zara, handbag, vintage, kids clothes, woolworths, and cotton on.
Support
For best reliability, use exact item URLs or exact public profile handles/URLs. If a run returns fewer fields than expected, compare the dataset row with the public Yaga page and check whether the missing field is visible there.