Jumia Products Scraper
Pricing
from $1.50 / 1,000 results
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
Maintained by CommunityActor stats
1
Bookmarked
3
Total users
0
Monthly active users
9 days ago
Last modified
Categories
Security
Limited permissionsShare
Jumia Products Scraper – Full Catalog & Price Monitoring

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.
maxItemsis 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.txtrespected, speed capped under its limit, plain HTTP (no browser) and no proxy needed.
How to use in 3 steps
- Pick the countries — e.g. Morocco and Nigeria. No URL or keyword needed: every category is walked for you.
- 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. - 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 reads | 1,000 products | Requests |
|---|---|---|
| Catalogue pages (default) | 1 min 24 s | 189 |
| Product pages | 8 min 37 s | 1,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
| Mode | What it does |
|---|---|
| Incremental resume | Jumia 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 search | With Brand contains = samsung in Product pages mode, only pages whose URL carries the word are opened. |
How it works
- The Actor reads Jumia's public sitemaps for the countries you selected — the category sitemap in the default fast mode, the product sitemaps otherwise.
- Each page is parsed from the structured data Jumia embeds in it, not from fragile CSS classes.
- Products are deduplicated by SKU (a product listed in a category and its sub-category is saved and billed once).
- Prices and stock are compared with the previous run, stored in a named key-value store that survives runs.
- Filters are applied before saving: you only pay for rows you asked for.
- Blocked or failing pages are retried with a growing delay and a fresh session; pages that still fail are listed in the
FAILED_INPUTSrecord, never in your dataset.
Step-by-step tutorial
- Pick one or more Countries.
- Set Max products per country to
50for a first look (a few cents, under a minute;500is the default when omitted).0means the whole catalog. - Optionally add Filters: price range, minimum discount, in stock only, brand, seller, category or name keywords, exclusions.
- Press Start, then open the Products or Price monitoring tab and export as Excel, CSV or JSON.
Daily price monitoring with a Schedule
- Keep Track prices between runs on (default).
- 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.
- Optionally switch on Incremental resume for large catalogs.
- 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.
- 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

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, andstoppedReason(null,budgetortimeout).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 plan | Price 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 mode | Give seller name, description or specs in catalogue mode (they only exist on product pages) |
| Price history, only-changed rows, incremental refresh, URL index, sampling | Go faster than Jumia's robots.txt allows (< 200 requests per minute) |
| Filters applied before saving, so filtered products are never billed | Scrape Jumia Algeria or Tunisia (closed sites) |
Troubleshooting
- "Nothing to scrape: no valid country" — the countries you typed were not recognized (see
FAILED_INPUTS). Usema, ci, sn, ng, ke, eg, gh, ugor 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.stoppedReasonistimeout(raise the run timeout for big catalogs) orbudget(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 for | Whole catalogs, market-wide price intelligence, product databases | Specific keywords, categories or product URLs, competitor watch lists |
| Input | Countries (+ filters) — every category is walked for you | Keywords, category URLs, product URLs |
| Extras | Incremental refresh, URL index, sampling | Keyword 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.SUCCEEDEDand 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 ApifyClientclient = 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.
Legal
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.