# Jumia Scraper — Africa E-commerce Prices & Products (`logiover/jumia-scraper`) Actor

Scrape Jumia across 10 African markets (Nigeria, Kenya, Egypt, Ghana, Morocco and more): product title, price and old price in local currency, discount percent, rating, review count, brand and category. Category or keyword search. Keyless.

- **URL**: https://apify.com/logiover/jumia-scraper.md
- **Developed by:** [Logiover](https://apify.com/logiover) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## 🌍 Jumia Scraper — Africa E-commerce Prices & Product Data

> **Export Jumia products across 10 African markets — price, discount, rating, reviews, brand — to JSON, CSV or Excel. Keyless.**

![data](https://img.shields.io/badge/data-JSON·CSV·Excel-2b8a3e?style=flat-square) ![login](https://img.shields.io/badge/login-not%20required-0b7285?style=flat-square) ![pricing](https://img.shields.io/badge/pricing-pay%20per%20result-5f3dc4?style=flat-square) ![proxy](https://img.shields.io/badge/proxy-built----in-1864ab?style=flat-square)

**Jumia Scraper** turns the leading e-commerce marketplace in **Africa** into structured product data. Scrape any category or keyword across **10 markets** — Nigeria, Kenya, Egypt, Ghana, Côte d'Ivoire, Morocco, Algeria, Tunisia, Uganda and Senegal — with local-currency prices, discount depth, ratings, review counts, brand and category. A no-code Jumia API alternative on Apify.

### 📋 At a glance

| | |
|---|---|
| **Source** | Jumia (Africa's leading marketplace) |
| **Coverage** | 10 African countries |
| **Volume** | Thousands of products per search |
| **Data** | Category browse or keyword search |
| **Fields** | Price · old price · discount · rating · brand |
| **Output** | JSON, CSV, Excel |
| **Login** | Not required |

### ❓ What is Jumia Scraper?

Jumia runs one platform across a dozen African country sites, and this scraper covers **10 of them** from a single dropdown, with the right local currency on every row. It reads the server-rendered product cards, splits the rating chip into a numeric score and review count, and keeps current price, old price and discount percent as separate columns so the real markdown is visible. Brand and category are lifted from the card's structured tracking data.

### ⭐ Why use this scraper?

- ✅ **10 African markets** from one dropdown, each with its local currency
- ✅ **Price, old price and discount** as separate columns — the real markdown
- ✅ **Rating and review count** split into numbers
- ✅ **Brand and category** on every row
- ✅ **Category browse or keyword search**
- ✅ **Keyless** — runs through a country-pinned residential proxy so pages resolve reliably

### 📦 What data can you extract?

Every row is a clean, structured record you can push straight into a spreadsheet, database or AI pipeline:

| Field | Description |
|---|---|
| `productId` | Jumia product ID |
| `title` | Product title |
| `productUrl` | Direct link to the product |
| `priceAmount` | Current price as a number |
| `currency` | Local currency (NGN, KES, EGP…) |
| `oldPriceAmount` | Original price before discount |
| `discountPercent` | Discount percentage |
| `rating` | Average star rating |
| `reviewCount` | Number of reviews |
| `brand` | Brand |
| `category` | Category |
| `imageUrl` | Product image |
| `country` | Market |

### 🎯 Use cases

- Monitor competitor pricing and discounts across African markets
- Power a repricing or price-intelligence tool with a Jumia feed
- Compare prices and assortment between Nigeria, Kenya and Egypt
- Track discount depth, ratings and brand presence
- Research a product category across all of Jumia's markets

### 🚀 How to use it

1. Pick a **country market**.
2. Enter a **category path** (e.g. `phones-tablets`, `computing`) or a **search query** to search the whole store.
3. Set **Maximum results** and click **Start**.
4. Export to JSON, CSV or Excel.

#### Input example

```json
{
  "market": "ng",
  "searchQuery": "laptop",
  "maxResults": 1000
}
```

### 💳 Pricing

This scraper runs on a **pay-per-result** model with **Apify Store volume discounts** — the more your plan tier, the lower the price per row. You only pay for the records actually delivered. Start on the **free tier**, no credit card needed to try it.

### ⚖️ Is it legal?

This scraper collects **publicly available** data only. You are responsible for how you use the exported data, including under GDPR and local regulations when the data concerns businesses or individuals. Nothing behind a login is accessed.

### ❔ FAQ

<details>
<summary><b>Do I need a Jumia account?</b></summary>

No. Product listings are public — no login required.

</details>

<details>
<summary><b>Which countries are covered?</b></summary>

Nigeria, Kenya, Egypt, Ghana, Côte d'Ivoire, Morocco, Algeria, Tunisia, Uganda and Senegal.

</details>

<details>
<summary><b>Category or keyword search?</b></summary>

Either — a search query overrides the category and works across all markets.

</details>

<details>
<summary><b>Why does it use a residential proxy?</b></summary>

Jumia serves each market to local IPs, so the scraper pins a residential proxy to the market's country for reliable results — handled automatically.

</details>

<details>
<summary><b>How many products can it return?</b></summary>

Thousands per search; the scraper paginates until your Maximum results is met.

</details>

***

<sub>Keywords: jumia scraper, jumia api, jumia nigeria scraper, africa e-commerce data, scrape jumia, jumia price tracker, jumia product data, nigeria kenya egypt ecommerce, jumia export csv, african marketplace data</sub>

# Actor input Schema

## `market` (type: `string`):

Which Jumia country site to scrape.

## `categoryPath` (type: `string`):

Jumia category slug from the URL, e.g. phones-tablets, computing, home-office, health-beauty, fashion-by-jumia. Ignored when a search query is set.

## `searchQuery` (type: `string`):

Keyword to search across the whole store. Overrides the category when set.

## `maxResults` (type: `integer`):

Stop after this many products. Jumia renders 40 per page and the Actor walks pages until the target is met.

## `proxyConfiguration` (type: `object`):

Jumia is served through a datacenter proxy pinned to the market; the default is enough.

## Actor input object example

```json
{
  "market": "ke",
  "categoryPath": "phones-tablets",
  "maxResults": 500,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `productId` (type: `string`):

No description

## `title` (type: `string`):

No description

## `productUrl` (type: `string`):

No description

## `priceLabel` (type: `string`):

No description

## `priceAmount` (type: `string`):

No description

## `currency` (type: `string`):

No description

## `oldPriceLabel` (type: `string`):

No description

## `oldPriceAmount` (type: `string`):

No description

## `discountPercent` (type: `string`):

No description

## `rating` (type: `string`):

No description

## `reviewCount` (type: `string`):

No description

## `isExpressShipping` (type: `string`):

No description

## `brand` (type: `string`):

No description

## `category` (type: `string`):

No description

## `imageUrl` (type: `string`):

No description

## `country` (type: `string`):

No description

## `source` (type: `string`):

No description

## `scrapedAt` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "market": "ke",
    "categoryPath": "phones-tablets",
    "searchQuery": "",
    "maxResults": 500,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("logiover/jumia-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "market": "ke",
    "categoryPath": "phones-tablets",
    "searchQuery": "",
    "maxResults": 500,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("logiover/jumia-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "market": "ke",
  "categoryPath": "phones-tablets",
  "searchQuery": "",
  "maxResults": 500,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call logiover/jumia-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,logiover/jumia-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/ed8fkGRPAs9R2JE5j/builds/CuueoNQvMzp7qyIee/openapi.json
