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

0.0

(0)

Developer

Inus Grobler

Inus Grobler

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Yaga Marketplace Scraper

Yaga Marketplace Scraper extracts public Yaga South Africa listings and seller profile data for marketplace research, price monitoring, inventory tracking, and lead enrichment.

Use it to collect structured Yaga product listings, prices, images, categories, brands, sizes, seller profile URLs, public rating aggregates, 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.
  • 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

Each dataset row includes recordType, so you can filter listings and profiles separately.

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.
maxListingsIntegerMaximum listing rows to save from search and profile pages. 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.

Example Input

{
"searchQuery": "nike sneakers",
"profiles": ["megano-5"],
"maxListings": 20,
"includeSoldItems": false
}

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

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. Set maxListings to the number of listing rows you need.
  4. Start the Actor.
  5. Open the Dataset tab to preview, filter, or download results.

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 = {
"searchQuery": "nike sneakers",
"maxListings": 20,
"profiles": ["megano-5"],
}
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.
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.
  • 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.
Run takes too longLower maxListings or continue in smaller batches with nextContinuationToken.
Possible blocking or rate limitsRetry later with a smaller maxListings value.

Pricing

This Actor is best suited to per-result pricing because each saved dataset row is the client-visible value. Keep maxListings low for test runs and raise it only when you need broader coverage.

Recommended monetization is pay per event using the default dataset item event as the primary charge. A small Actor-start event can cover tiny failed or empty runs, but result pricing should remain simple and transparent.

Continuation does not require a different pricing model. Each batch still charges the same dataset-item event per saved result.

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 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.