Yaga Marketplace Data Scraper avatar

Yaga Marketplace Data Scraper

Pricing

from $1.99 / 1,000 results

Go to Apify Store
Yaga Marketplace Data Scraper

Yaga Marketplace Data Scraper

Yaga scraper for product listings, prices, images, seller profiles, ratings, likes, and inventory data from Yaga search, item, and shop pages.

Pricing

from $1.99 / 1,000 results

Rating

5.0

(1)

Developer

Inus Grobler

Inus Grobler

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

0

Monthly active users

12 days ago

Last modified

Share

Yaga Marketplace Scraper extracts public Yaga South Africa listings, seller profiles, ratings, and individual reviews for marketplace research, reputation analysis, price monitoring, inventory tracking, and lead enrichment.

Use it to collect structured Yaga product listings, prices, images, categories, brands, sizes, seller profiles, star ratings, written reviews, automatic transaction reviews, seller replies, likes, and shop inventory from keyword searches, direct item URLs, and public seller profiles.

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:

  • recordType
  • url
  • listingId
  • title
  • description
  • price
  • currency
  • originalPrice
  • discount
  • condition
  • brand
  • size
  • color
  • category
  • subcategory
  • sellerName
  • sellerUrl
  • location
  • imageUrls
  • mainImageUrl
  • isSold
  • isReserved
  • likesCount
  • viewCount
  • postedAt
  • updatedAt
  • scrapedAt
  • sourcePageUrl

Profile rows can include:

  • recordType
  • url
  • profileId
  • profileSlug
  • sellerName
  • sellerUrl
  • description
  • profileImageUrl
  • location
  • province
  • isActive
  • isInfluencerShop
  • completedOrdersCount
  • feedbackTotal
  • avgRating
  • likesCount
  • scrapedAt
  • sourcePageUrl

Review rows can include:

  • recordType
  • reviewId
  • profileId
  • profileSlug
  • sellerName
  • sellerUrl
  • rating
  • reviewText
  • isAutomatic
  • automaticReason
  • reviewedRole
  • createdAt
  • replyText
  • repliedAt
  • reviewerId
  • reviewerName
  • reviewerShopId
  • reviewerProfileSlug
  • reviewerProfileUrl
  • reviewerImageUrl
  • reviewerLocation
  • reviewerProvince
  • reviewerCountry
  • scrapedAt
  • sourcePageUrl

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.

FieldTypeDescription
searchQueryStringKeyword to search on Yaga, such as nike sneakers, dress, or jacket.
itemUrlsURL listDirect Yaga item/listing URLs. Use this when you already know the product pages.
profilesString listPublic Yaga profile handles, slugs, or full profile URLs.
includeReviewsBooleanSave individual public reviews for supplied profiles. Default: false.
maxReviewsIntegerMaximum review rows across all supplied profiles. Default: 100. Maximum: 1000.
maxListingsIntegerMaximum listing rows to save from search and profile pages. Use 0 for a profile-only or review-only run. Default: 20. Maximum: 500.
continuationTokenStringContinue a search from a previous run. Use the nextContinuationToken returned by the Actor with the same searchQuery.
includeSoldItemsBooleanSave sold or unavailable listings. Default: false.
maxPagesIntegerAdvanced fallback limit for rendered search or profile discovery pages. Default: 1. Maximum: 5.
requestDelayMsIntegerAdvanced delay between requests in milliseconds. Default: 300. Maximum: 2000.
discoveryConcurrencyIntegerAdvanced browser discovery concurrency. Default: 1. Maximum: 8.
itemConcurrencyIntegerAdvanced direct listing fetch concurrency. Default: 2. Maximum: 8.

Example Input

{
"searchQuery": "nike sneakers",
"profiles": ["incahoots"],
"includeReviews": true,
"maxReviews": 100,
"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": 100,
"maxListings": 0
}

The Actor saves one profile summary row followed by up to maxReviews individual review rows. Both member-written and Yaga automatic reviews are included and identified by isAutomatic.

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,
"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

  1. Open the Actor in Apify Console.
  2. Enter a Yaga search query, item URLs, profile handles, profile URLs, or a combination.
  3. To collect reviews, enable Scrape reviews and choose a review limit.
  4. Set maxListings to the number of listing rows you need, or 0 for reviews only.
  5. Start the Actor.
  6. Open the Reviews view in the Dataset tab to preview or download review fields.

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.

Python API example:

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run_input = {
"profiles": ["incahoots"],
"includeReviews": True,
"maxReviews": 100,
"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().items
for item in items:
print(item)

The measured default is 512 MB memory. Search and profile discovery use browser rendering, and 256 MB was not reliable for browser search runs. Direct item URL runs are lighter, but 512 MB still measured cheaper than 256 MB because the lower-memory run took longer.

Run sizeMemoryTimeoutNotes
Direct item URL512 MB3 minutesBest for known product URLs.
Small search, up to 5 listings512 MB5 minutesGood for tests and quick checks.
Medium search, around 20 listings512 MB10 minutesRecommended default client workload.
Profile plus up to 100 reviews512 MB5 minutesReviews use Yaga's public paginated review data after profile discovery.
Large capped run, up to 60-100 listings512 MB10-15 minutesKeep maxListings capped for predictable cost.
Larger search batches, up to 500 listings512-1024 MB15-30 minutesUse continuationToken for repeatable batches. Test before scheduling.
Search plus profiles512 MB10 minutesUses rendered discovery pages plus item fetching.

Avoid increasing memory unless your own measurements show lower total cost or fewer failures. In tests, 1024 MB cost more for small search runs.

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.
  • maxListings limits listing rows, not profile summary rows.
  • maxReviews is a global cap across all supplied profiles and only applies when includeReviews is enabled.
  • Review rows include both member and automatic reviews. Use isAutomatic to separate them.
  • Search runs can continue with nextContinuationToken when 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 coverage depends on what Yaga returns on the rendered public search/profile page during the run.
  • Keep recurring runs reasonable and review Yaga's current terms before high-volume use.

Troubleshooting

ProblemWhat to check
No resultsTry a broader searchQuery, a direct item URL, or an exact public profile handle.
Fewer results than expectedIncrease maxListings up to 500, or use nextContinuationToken to continue in another run.
Missing fieldsConfirm the field is visible on the public Yaga page. Not every listing exposes every field.
Profile not foundUse the exact profile slug or full profile URL instead of a display name.
No review rowsEnable includeReviews, supply a public profile, and confirm the profile currently shows reviews on Yaga.
Run takes too longLower maxListings or continue in smaller batches with nextContinuationToken.
Possible blocking or rate limitsRetry later with a smaller maxListings value, keep discoveryConcurrency at 1, and increase requestDelayMs slightly.

Pricing

The current Store price appears before each run. Keep maxListings and maxReviews low for a first test and raise them only when you need broader coverage. Under result-based pricing, each saved listing, profile, or review row counts as a result. Continuation tokens do not change the unit of output; 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 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.

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?

Yes. The Actor mirrors Yaga's public All reviews feed. Filter isAutomatic to separate Yaga-generated transaction reviews from member reviews.

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.