Jumia Products Scraper avatar

Jumia Products Scraper

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Jumia Products Scraper

Jumia Products Scraper

The whole Jumia catalogue of a country through its sitemaps: hundreds of thousands of products with price, discount, stock, brand, seller and specs. Incremental mode reopens only what changed, so a daily refresh takes minutes not hours. Example: Morocco, 1,000 products, then schedule it.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Badr Bouargan

Badr Bouargan

Maintained by Community

Actor stats

1

Bookmarked

3

Total users

0

Monthly active users

9 days ago

Last modified

Security

Limited permissions

Share

Jumia Products Scraper – Full Catalog & Price Monitoring

Jumia Products Scraper

Jumia Products Scraper extracts the entire Jumia product catalog — prices, old prices, discounts, stock, ratings, sellers, categories, images, specifications and customer reviews — from Morocco, Nigeria, Kenya, Egypt, Ghana, Côte d'Ivoire, Senegal and Uganda. It remembers every price between runs, so a scheduled run becomes an e-commerce price monitoring and competitor tracking feed for Africa's largest online marketplace. You pay only for products actually saved.

Countries: Morocco (jumia.ma) · Nigeria (jumia.com.ng) · Kenya (jumia.co.ke) · Egypt (jumia.com.eg) · Ghana (jumia.com.gh) · Côte d'Ivoire (jumia.ci) · Senegal (jumia.sn) · Uganda (jumia.ug)

Need only a few keywords, one category or a list of competitor product URLs? Use Jumia Scraper instead — see Which Jumia Actor should I use?

What you can do with it

  • Monitor prices across a whole market: previous price, change in value and percent, on every product, every run.
  • Track competitors: filter on a brand, a seller or a category and schedule a daily run to see who cuts prices.
  • Catch stock movements and new listings: back-in-stock and new-product flags, with optional e-mail alerts.
  • Build a product database: SKU, product ID, brand, categories, images, specifications and seller for each item.
  • Compare African markets: the same brand's pricing in Morocco, Nigeria, Kenya and Egypt side by side.
  • Size a catalog cheaply: list every product URL with its modification date, without opening a single page.

Why this Actor

  • Complete catalog, not a keyword sample: it walks every category of Jumia's official sitemaps — up to roughly 1.1 million products for Kenya.
  • Pay only for success: failed pages, filtered-out products and duplicates are never written to your dataset, so they are never billed. maxItems is exact, and the run stops cleanly at your maximum cost per run.
  • Built for scheduled monitoring: price history per product, Only changed products, incremental refresh and a Price monitoring dataset view.
  • Flat, integration-ready rows: numbers as numbers, an ISO currency code on every row, ISO 8601 dates, the same columns in every mode.
  • Ethical and cheap: identified bot, Jumia's robots.txt respected, speed capped under its limit, plain HTTP (no browser) and no proxy needed.

How to use in 3 steps

  1. Pick the countries — e.g. Morocco and Nigeria. No URL or keyword needed: every category is walked for you.
  2. Set the limit and filters — Maximum products per country (try 50 first for a few cents; 0 = whole catalog), plus optional brand, category, price or discount filters.
  3. Click Start — then open the Products tab and export to Excel, CSV, JSON, or send it to Google Sheets.

Speed: why 40 products per request beats 1

Jumia's robots.txt is explicit — an identified bot may send fewer than 200 requests per minute. So speed cannot come from asking faster; it comes from asking for less.

A catalogue page hands over 40 products in one request. A product page hands over one:

Where the Actor reads1,000 productsRequests
Catalogue pages (default)1 min 24 s189
Product pages8 min 37 s1,003

Measured on the Moroccan catalogue, same settings. A larger run keeps the pace — 5,000 products in 5 min 27 s.

Catalogue pages carry the SKU, name, brand, price, previous price, discount, rating, rating count, category path, image, stock and Jumia Express flag — everything a price or assortment study needs. Switch Where to read the products to Product pages when you also need the description, specifications, seller name and score, and every image: those exist only on the product's own page.

Other ways to read a catalog

ModeWhat it does
Incremental resumeJumia dates each product; only what changed since your last complete run is reopened. A daily refresh becomes minutes instead of hours.
URL index (listUrlsOnly)Lists every product URL with its product ID and modification date, without opening a single page.
Sampling (sampleEveryNth)Keeps one product out of N, to study a huge catalog cheaply.
Brand searchWith Brand contains = samsung in Product pages mode, only pages whose URL carries the word are opened.

How it works

  1. The Actor reads Jumia's public sitemaps for the countries you selected — the category sitemap in the default fast mode, the product sitemaps otherwise.
  2. Each page is parsed from the structured data Jumia embeds in it, not from fragile CSS classes.
  3. Products are deduplicated by SKU (a product listed in a category and its sub-category is saved and billed once).
  4. Prices and stock are compared with the previous run, stored in a named key-value store that survives runs.
  5. Filters are applied before saving: you only pay for rows you asked for.
  6. Blocked or failing pages are retried with a growing delay and a fresh session; pages that still fail are listed in the FAILED_INPUTS record, never in your dataset.

Step-by-step tutorial

  1. Pick one or more Countries.
  2. Set Max products per country to 50 for a first look (a few cents, under a minute; 500 is the default when omitted). 0 means the whole catalog.
  3. Optionally add Filters: price range, minimum discount, in stock only, brand, seller, category or name keywords, exclusions.
  4. Press Start, then open the Products or Price monitoring tab and export as Excel, CSV or JSON.

Daily price monitoring with a Schedule

  1. Keep Track prices between runs on (default).
  2. Switch on Only changed products so each run returns only new products and price or stock changes — you pay for the changes, not the catalog.
  3. Optionally switch on Incremental resume for large catalogs.
  4. In Apify Console, create a Schedule (for example every day at 08:00) with the same input. Keep the same countries and Max products on every run so comparisons stay meaningful.
  5. Connect the run to Google Sheets, Slack, Make, Zapier or n8n (see Integrations) to receive the price drops.

The first run records prices; from the second run on, previousPrice, priceChange, priceChangePercent, stockChanged and isNewProduct are filled in.

Input example

{
"countries": ["ma", "ng"],
"maxItems": 1000,
"readFrom": "listings",
"minDiscountPercent": 20,
"onlyInStock": true,
"categoryKeywords": ["phones"],
"trackPriceChanges": true,
"onlyChangedProducts": true
}

A daily watch on discounted phones in Morocco and Nigeria, returning only what moved since yesterday.

Output example

Sample output

A real row from a catalogue-page run (first run, so the tracking fields are still empty):

{
"productId": "67496081",
"sku": "BR590ST0ARAHWNAFAMZ",
"name": "L'Oréal Paris Elseve Fiber Booster – Serum Anti-Chute Cheveux Clairsemes",
"brand": "L'Oréal Paris",
"url": "https://www.jumia.ma/loreal-paris-elseve-fiber-booster-serum-anti-chute-cheveux-clairsemes-cure-6-semaines-stimule-la-pousse-augmente-la-densite-capillaire-hommes-femmes-enrichi-en-aminexil-r-67496081.html",
"image": "https://ma.jumia.is/unsafe/fit-in/300x300/filters:fill(white)/product/18/069476/1.jpg?1876",
"price": 125,
"oldPrice": 155,
"discountPercent": 19,
"currency": "MAD",
"inStock": true,
"rating": 5,
"reviewsCount": 3,
"categories": ["Health & Beauty", "Beauty & Personal Care", "Hair Care", "Hair Loss Products", "Hair Building Fibers"],
"badges": ["Boutique Officielle"],
"isJumiaExpress": true,
"isSponsored": false,
"sellerName": null,
"sellerScorePercent": null,
"country": "ma",
"countryName": "Morocco",
"sitemapLastmod": "2026-09-01",
"readFrom": "listing",
"isNewProduct": true,
"previousPrice": null,
"priceChange": null,
"priceChangePercent": null,
"previousInStock": null,
"stockChanged": false,
"lastSeenAt": null,
"scrapedAt": "2026-09-29T14:29:32.269442+00:00"
}

On a later run, the same product would carry for example "previousPrice": 155, "priceChange": -30, "priceChangePercent": -19.4, "lastSeenAt": "2026-09-28". In Product pages mode, rows also contain description, specifications, breadcrumbs, all images, condition, sellerName and sellerScorePercent. With reviews on, a reviews array is added.

Each run also stores two records in its key-value store:

  • RUN_SUMMARY — products saved per country, filtered, duplicates skipped, failed requests, and stoppedReason (null, budget or timeout).
  • FAILED_INPUTS — the pages or inputs that could not be read, with the error. They are not billed.

Pricing

Pay per result: one result = one product saved in the dataset (or one URL in URL index mode). Proxy and compute are included — nothing else to pay.

Apify planPrice per 1,000 products
Free$3.00
Starter$2.40
Scale$1.95
Business$1.50

Plus a negligible start fee of $0.00005 per run. Examples on the Free plan: 500 products ≈ $1.50, 10,000 products ≈ $30. With Only changed products on a daily Schedule, you only pay for the products whose price or stock moved.

You never pay for failed pages, filtered-out products or duplicates. Set a maximum cost per run in the run options: the Actor stops cleanly when it is reached.

FAQ

How do I monitor Jumia prices every day without paying for the whole catalog each time? Keep Track prices between runs on, switch on Only changed products, and run it on a Schedule. Add Incremental resume for big catalogs: only products Jumia modified since your last complete run are reopened.

Is maxItems exact? Yes. It is the exact number of products saved per country, after filters and deduplication. In Product pages mode, the Actor keeps opening pages until the quota is met or the catalog is exhausted.

Why did the run stop before reaching my maxItems? Either your maximum cost per run was reached, or the run was about to time out — the Actor stops shortly before the timeout to save your data, the price history and the summary. RUN_SUMMARY.stoppedReason tells you which. For the whole catalog, raise the timeout.

Does it need a proxy? No. Jumia allows identified crawlers and the Actor stays under the rate limit. If you are ever blocked, Apify datacenter proxy is enough.

Why did an e-mail alert not arrive? Actors started from Apify Store run with limited permissions and cannot send mail on your behalf. Connect a Slack, webhook, Make or Zapier integration instead, or copy the Actor into your account with full permissions. The changed products are always in the dataset.

Why is price tracking empty on my first run? The first run records prices; comparisons start from the second run. With limited permissions, a run that cannot open the named history store collects products normally and says so in the log.

Can I scrape the whole catalog? Yes — set Max products per country to 0, give the run a longer timeout and 1 GB of memory. Start smaller to size it first, or use the URL index.

Do you collect customer names? No. Reviews are returned without the reviewer's name.

Can I give it keywords or category URLs? Not in this Actor — it is built to walk whole catalogs, and narrows them with filters (Brand contains, Name contains, Category contains, price, discount). For keywords, category or product URLs, use Jumia Scraper; if you paste startUrls or searchQueries here, the log tells you they are ignored.

Can I type several brands in one line? Yes: samsung, apple, xiaomi in one line counts as three brands. Country names ("Morocco") and domains ("jumia.co.ke") are accepted as well as codes.

What it can and cannot do

✅ Can❌ Cannot
Walk the whole catalog of 8 Jumia countries (up to ~1.1 M products in Kenya)Search by keyword or start from a URL — use Jumia Scraper
40 products per request in catalogue mode; every field in product-page modeGive seller name, description or specs in catalogue mode (they only exist on product pages)
Price history, only-changed rows, incremental refresh, URL index, samplingGo faster than Jumia's robots.txt allows (< 200 requests per minute)
Filters applied before saving, so filtered products are never billedScrape Jumia Algeria or Tunisia (closed sites)

Troubleshooting

  • "Nothing to scrape: no valid country" — the countries you typed were not recognized (see FAILED_INPUTS). Use ma, ci, sn, ng, ke, eg, gh, ug or the country names. Nothing is billed.
  • Fewer products than maxItems — your filters are strict, or Only changed products skipped unchanged ones (RUN_SUMMARY.filteredOut / unchangedSkipped). The seller filter switches to product-page mode, which is slower.
  • Run stopped early — RUN_SUMMARY.stoppedReason is timeout (raise the run timeout for big catalogs) or budget (your maximum cost per run).
  • Requests failed / no product saved — Jumia was temporarily unavailable or blocked the IP. Try again later or turn on Apify Proxy (datacenter is enough).

Which Jumia Actor should I use?

Jumia Products Scraper (this one)Jumia Scraper
Best forWhole catalogs, market-wide price intelligence, product databasesSpecific keywords, categories or product URLs, competitor watch lists
InputCountries (+ filters) — every category is walked for youKeywords, category URLs, product URLs
ExtrasIncremental refresh, URL index, samplingKeyword relevance check, position on the page
Free plan price$3.00 / 1,000 products$2.50 / 1,000 products

Both share the same row format and price tracking, so their outputs can be merged.

Integrations

  • Schedules: a nightly or weekly run builds your own price history for Jumia, with Only changed products to keep datasets small.
  • Google Sheets: send each run's products or price changes to a spreadsheet from the Integrations tab.
  • Make, Zapier and n8n: trigger a scenario when a run succeeds and read the dataset — for example, post price drops of more than 10 % to Slack or Telegram.
  • Webhooks: call your own endpoint on ACTOR.RUN.SUCCEEDED and pull the items.
  • AI agents (MCP): add the Actor to Claude, Cursor or any MCP client through the Apify MCP server.

Dataset views for exports: overview (products), priceChanges (price monitoring), urlIndex (URL index mode).

Use it via API

Get your token in Apify Console → Settings → API & Integrations.

Python (pip install apify-client)

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("badr_xba/jumia-products-scraper").call(run_input={
"countries": ["ma", "ng"],
"maxItems": 200,
"brandKeywords": ["samsung"],
"minDiscountPercent": 20,
})
for product in client.dataset(run["defaultDatasetId"]).iterate_items():
print(product["name"], product["price"], product["currency"], product["discountPercent"])

JavaScript / Node.js (npm install apify-client)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('badr_xba/jumia-products-scraper').call({
countries: ['ke'],
maxItems: 200,
categoryKeywords: ['phones'],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`${items.length} products`, items[0]);

cURL (runs and returns the products in one call)

curl -X POST "https://api.apify.com/v2/acts/badr_xba~jumia-products-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN&view=priceChanges" \
-H "Content-Type: application/json" \
-d '{"countries": ["ke"], "maxItems": 200, "onlyChangedProducts": true}'

Support

Open an issue on the Actor's Issues tab for bugs, missing fields or a new country.

Did this Actor do the job? Leaving a short review on its Store page takes a minute and helps other people find it — and tells me which feature to build next.

This Actor reads public product pages and sitemaps, follows Jumia's robots.txt, identifies itself honestly in its user agent, and limits its request rate. It collects product data, not personal data. How you reuse prices and product information is your responsibility.

En français

Jumia Products Scraper extrait tout le catalogue Jumia au Maroc, au Nigeria, au Kenya, en Égypte, au Ghana, en Côte d'Ivoire, au Sénégal et en Ouganda : prix, anciens prix, remises, stock, notes, vendeurs, catégories, images, caractéristiques et avis clients. Il mémorise les prix d'un run à l'autre : programmé chaque jour, il devient un outil de veille tarifaire et de suivi des concurrents sur le e-commerce africain, avec l'option « seulement les produits modifiés » et des alertes. Vous ne payez que les produits enregistrés : ni les pages en échec, ni les produits filtrés, ni les doublons. Le mode par défaut lit 40 produits par requête ; l'Actor respecte le robots.txt de Jumia, se présente honnêtement et n'a pas besoin de proxy. Pour quelques mots-clés, une catégorie ou une liste de fiches produit, préférez Jumia Scraper.