Jumia Marketplace Scraper at a glance
Jumia Marketplace Scraper is a ready-to-run Apify actor from abotapi for collecting web data. Its documented output includes kind, id, sku, product and display name, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $2.00 per 1,000 results on the Apify Free plan and from $1.20 on paid plans, with smaller per-run or optional feature charges listed on Apify.
- Runs on
- Apify cloud: console, API, schedules and integrations
- Data type
- Web data
- Pricing
- $2.00 per 1,000 results (Free plan), from $1.20 on paid plans
- Output
- Documented below · JSON, CSV, Excel
- Inputs
- 22 options
Scrape Jumia, Africa's largest marketplace: products with local prices, discounts, ratings, official-store badges and customer reviews across the Nigeria, Egypt, Kenya and Morocco storefronts. Search keywords or paste links, and monitor price changes with recurring updates.
What Jumia Marketplace Scraper can do
- Two ways to collect. Keyword search walks one market's catalogue for your terms; My own links reads exactly the product, vendor or catalogue links you paste.
- Six African markets, one actor. Nigeria, Egypt, Kenya, Morocco, Ivory Coast and Senegal, each its own catalogue with its own currency and connection exit.
- Prices, discounts, ratings and badges on every listing. Official-store and campaign badges, seller id, express and sponsored flags, all without any extra toggle, on every search, catalogue and vendor-shop listing (a pasted single product URL has no badges, since that data lives only on search and catalogue cards).
- Product detail depth on demand. Switch on the description, specification table, barcode, stock state and seller profile per run, and pay the surcharge only for what you read.
- Full customer reviews, not just a snippet. The reviews reader walks every page of a product's reviews and returns the star histogram and total count alongside the text.
- Vendor shops in one paste. A vendor shop link returns the shop's own profile row followed by its products.
Choose what to collect
These inputs let you configure Jumia Marketplace Scraper - Products, Prices, Reviews & Sellers. Open the actor on Apify to enter your values and review the current options.
| Input | What it controls |
|---|---|
modestring · required | Where to collect from: a keyword search on one marketplace, or your own product, vendor and catalogue links. |
countrystring | Which country storefront to search. Each market is its own catalogue with its own currency. |
queriesarray | Only read when mode = keyword search. One entry per search; each search is walked forward, and all searches share the record cap. |
sortstring | Order in which products are returned for each search. |
brandsarray | Only read when mode = keyword search. Product brand names, e.g. Samsung or Xiaomi. Names are matched against the filters the marketplace itself offers for your search; a name it does not offer stops the run with the list of available brands, so a typo can never silently return everything. |
officialStoreOnlyboolean | Only read when mode = keyword search. Return only products sold by the marketplace's official stores. |
minDiscountinteger | Only read when mode = keyword search. Return only products discounted at least this much (0 to 100). Leave 0 for no discount filter. |
Show 15 more inputs
| Input | What it controls |
|---|---|
urlsarray | Only read when mode = my own links. Paste product page links, a vendor shop link, or catalogue links (search results, categories). Each link is read on its own market; product links yield one enriched product each, catalogue links are walked forward. Left untouched, links mode reads these sample links, one per supported link shape. |
fetchDetailsboolean | Open each product's own page and add the description, specifications, seller score, stock state and barcode to the record. Off by default: a run without it is much cheaper and still carries prices, discounts, ratings and badges. |
fetchReviewsboolean | Collect each product's customer reviews (rating, title, text, date, author, verified-purchase flag), the rating total and the star histogram, into a reviews column on the product record. Needs the reviews toggle only; works with or without detail pages. Billed on top of the base detail-enrichment event: every full 5 reviews collected on a product adds one more detail-enrichment event (1-4 extra reviews cost nothing). |
maxReviewsPerProductinteger | Cap on customer reviews collected per product (0 = every review the product has). Every full 5 reviews collected bills one extra detail-enrichment event, so this cap is also a cost cap: the default 10 reviews bills 2 extra events, 500 bills 100 extra events. |
maxItemsinteger | Stop after this many records across the whole run (0 = no limit; the walk then ends when the catalogue runs out). Products and vendor header rows both count. |
maxPagesinteger | Runaway guard: an upper bound on how much is read for any single search or catalogue walk. Leave 0 to go as deep as the source serves, with the record cap above as the only real limit. |
resumeFromRunIdstring | Paste the run id (or dataset id) of an earlier run of this Actor to continue it. Records that run already returned are skipped, so an interrupted large collection can finish without paying for the same rows twice. Leave empty for a normal run. |
incrementalModeboolean | Turn this on for daily or weekly monitoring. The first run returns everything as NEW. Later runs return only NEW, UPDATED and REAPPEARED records, each labelled in a changeType column, with the changed columns named in changedFields. Compared: price, was-price, discount, rating average and count, stock and availability, seller, badges, categories, specifications and the description and review content (order of lists is ignored). Excluded from the comparison but still returned: scrapedAt, source columns, position, lastModified and the sponsored flag. Prices and rating counts move constantly on a marketplace, so a record whose only difference is a price still counts as UPDATED. Use the ignore-fields input below to exclude more columns. Leave off for a normal one-off run. |
stateKeystring | Optional. Name this monitoring campaign to keep its memory stable, or to deliberately share one memory across differently configured runs. Leave empty and the memory is keyed on the run setup automatically. |
emitUnchangedboolean | Off by default. Turn on to also return records that have not changed since the last run, labelled UNCHANGED. This returns, and bills, rows you already have. |
emitExpiredboolean | Off by default. Turn on to also return records that were present before and are no longer found, labelled EXPIRED. Only produced when a run covered its whole setup, so a capped or continued run never reports records as gone. This returns, and bills, extra rows. |
ignoreFieldsForChangesarray | Optional list of output columns that must NOT count as a change in recurring updates, for example ratingCount or priceDisplay. A plain name is ignored wherever it appears inside nested lists such as specifications; a dotted path such as specifications.value ignores only that nested field. The review list and the description can only be ignored as a whole column (reviews, description), not field by field. The columns are still returned in every row. Changing this list never causes a wave of UPDATED rows. Ignored when recurring updates is off. |
mcpConnectorsarray | Optionally send results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify, Settings, API & Integrations, then select it here. Notion gets a rich page-per-item export; other connectors get a best-effort write or digest. Leave empty to skip; never changes the dataset output. |
notionParentPageUrlstring | URL or id of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors. |
maxNotifyListingsinteger | Cap on items written to each connector per run. Does not affect the dataset. |
Fields in the output
The documented dataset includes the fields below. Availability can depend on the source page and selected mode.
recordTypeKindidIdskuSKUnameProductdisplayNameDisplay namebrandBrandcategoriesCategoriesurlLinkimageUrlImagecurrencyCurrencypricePricepriceDisplayPrice (display)Show 56 more fields
oldPriceWasdiscountPercentDiscount %ratingAverageRatingratingCountRatingsofficialStoreOfficial storebadgesBadgessellerIdSeller idsellerNameSellersellerUrlSeller linksellerScoreSeller score %availabilityAvailabilitygtinBarcodeshopExpressExpresssponsoredSponsoredbuyableBuyablemarketMarketmarketHostStorefrontdescriptionDescriptionspecificationsSpecificationsreviewsTotalReviews (total)reviewsFetchedReviews (collected)reviewsReviewsreviewsHistogramStar histogramfollowersFollowerssourceTypeSource kindsourceIdSourcesourceUrlSource linkpositionPositionscrapedAtScraped atchangeTypeChangechangedFieldsChanged fieldsfirstSeenAtFirst seenlastSeenAtLast seencountrycountrycountryCodecountryCodepriceTextpriceTextoldPriceTextoldPriceTextratingratingreviewsCountreviewsCountinStockinStockisOfficialStoreisOfficialStoreisExpressisExpresscategoryPathcategoryPathsellersellerkeyFeatureskeyFeaturesimagesimagesbreadcrumbsbreadcrumbsenrichedenrichedsellerFollowerssellerFollowerssellerPerformancesellerPerformancereviews.ratingStarsreviews.titleTitlereviews.textReviewreviews.dateDatereviews.authorAuthorreviews.verifiedVerified purchaseExample output
An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.
{
"recordType": "product",
"id": "SA0123XXFAKE1",
"sku": "SA0123XXFAKE1",
"name": "Sample Product Earbuds Pro - Black",
"displayName": "Sample Product Earbuds Pro - Black",
"brand": "SAMPLEBRAND",
"categories": [
"Electronics",
"Audio",
"Earbuds"
],
"url": "https://www.jumia.com.ng/sample-wireless-earbuds-pro-black-000000001.html",
"imageUrl": "https://example.img/sample-earbuds.jpg",
"currency": "NGN",
"price": 19999,
"priceDisplay": "N 19,999",
"oldPrice": 29999,
"discountPercent": 33,
"ratingAverage": 4.3,
"ratingCount": 214,
"officialStore": true,
"badges": [
"Official Store"
],
"sellerId": 100001,
"shopExpress": true,
"sponsored": false,
"buyable": true,
"market": "NG",
"marketHost": "www.jumia.com.ng",
"lastModified": 1700000000,
"gtin": "0000000000000",
"availability": "in_stock",
"description": "Sample product description text.",
"specifications": [
{
"name": "Color",
"value": "Black"
}
],
"sellerName": "Sample Official Store",
"sellerUrl": "https://www.jumia.com.ng/sample-official-store/",
"sellerScore": 98,
"sellerFollowers": 3450,
"reviewsTotal": 214,
"reviewsFetched": 20,
"reviews": [
{
"rating": 5,
"title": "Sample headline",
"text": "Sample review text.",
"date": "01-01-2026",
"author": "by Jane Doe",
"verified": true
}
],
"reviewsHistogram": {
"1": 6,
"2": 8,
"3": 20,
"4": 60,
"5": 120
},
"sourceType": "search",
"sourceId": "wireless earbuds",
"sourceUrl": null,
"position": 1,
"scrapedAt": "2026-09-29T00:00:00Z"
}Ways to use this data
- Price monitoring and repricing: track price, discount and stock changes on competitor listings with Recurring updates.
- Marketplace research: compare official-store versus marketplace-seller pricing and ratings across six African storefronts.
- Review mining: collect full customer review text and star histograms for product quality analysis.
- Vendor intelligence: pull a shop's seller score, follower count and full product catalogue from one shop link.
- Catalogue enrichment: feed titles, images, prices and specifications into your own store or comparison site.
Before you run
Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.
Questions about this actor
What data does Jumia Marketplace Scraper return?
The documented output for Jumia Marketplace Scraper includes kind, id, sku, product, display name, brand, categories and link. Availability of each field depends on the source page and the selected mode.
How much does Jumia Marketplace Scraper cost?
It costs $2.00 per 1,000 results on the Apify Free plan and from $1.20 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.
Can I get only new or changed listings on a schedule?
Yes. Schedule the actor from the Schedules tab and turn on Recurring updates. Each run then returns only new and updated records, and unchanged ones are not billed unless you turn that on too.
Why did my brand filter stop the run instead of just returning nothing?
Brand names are matched against the filters the marketplace itself offers for your exact search, not against a fixed list. A name it does not offer stops the run with the list of available brands, so a typo can never silently return an unfiltered catalogue.
Why did my run fail instead of returning an empty dataset?
If the marketplace refuses every request the run makes, that is a connection problem, not an empty search, so the run fails loudly with a clear message instead of returning zero rows silently. A genuine empty search, where the catalogue was read successfully and holds nothing for your terms, succeeds with zero rows and a visible verdict on the run page.
Can I use it with AI agents or MCP?
Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.
