How to Scrape Jiji Listings Across Nigeria, Kenya, Ghana, Tanzania and Uganda

If you want to scrape Jiji listings for price intelligence, market research, or lead generation across African markets, this guide walks you through the entire process. You will learn what data you can extract from Jiji's category and search pages, how to capture demand signals and seller contacts, and how to work across five country marketplaces from a single scraper.
Why Scrape Jiji Data?
Jiji is Africa's largest online classifieds marketplace. After absorbing OLX's African operations, it became the default place to buy and sell almost anything across the continent's biggest economies — cars, phones, laptops, property, furniture, generators, livestock, and services. Nigeria alone is a market of over 200 million people, and Jiji is where a large share of its informal commerce happens in public.
That matters because Africa is one of the least-covered regions in commercial web data. Price benchmarks, demand indicators, and dealer directories that are commodity products in North America and Europe barely exist for Lagos, Nairobi, or Accra. Jiji is the single richest public source for all three, and it publishes something most classifieds sites keep to themselves: per-listing view and favorite counts.
Businesses and researchers scrape Jiji data for a range of purposes:
- Price intelligence — track what vehicles, electronics, and property actually list for across five African markets
- Demand measurement — use view counts and favorite counts against posting dates to see what is genuinely moving, not just what is listed
- Lead generation — build dealer and seller directories, with public phone numbers where sellers have chosen to publish them
- Cross-border arbitrage — compare the same category across Nigeria, Kenya, Ghana, Tanzania, and Uganda to find price gaps
- Market entry research — size a category by listing volume, price distribution, and seller concentration before committing to a market
- Inventory and competitor monitoring — track what specific dealers list, at what price, and how fast it turns over
Manual collection is impractical. A single category on Jiji Nigeria runs to tens of thousands of listings, prices are posted in local currency across five countries, and the interesting signals — views, favorites, posting time — live one click deep on each listing page.
What Data You Can Extract from Jiji
The Jiji Listings Scraper returns one record per listing. Here are the key fields available in listing mode:
| Field | Description | Example |
|---|---|---|
| ID | Jiji's listing identifier | 53248080 |
| Title | Listing title as written by the seller | Jeep Wrangler Willys Sport 2021 Gray |
| Price | Numeric price in local currency | 66000000 |
| Price text | Formatted price exactly as displayed | ₦ 66,000,000 |
| Region | Specific location of the listing | Central Business District |
| Parent region | State or top-level region | Abuja (FCT) |
| Region text | Combined display location, ready to use as-is | Lagos, Ikeja |
| Category | Jiji's category for the listing | Cars |
| Attributes | Full key/value attribute map, varies by category | Condition: Foreign Used, Transmission: Automatic, Mileage: 59000 km |
| Image / images count | Main photo and how many the listing has | pictures-nigeria.jijistatic.net/... (11 photos) |
| Verified seller | Whether Jiji has verified the seller | true |
| Country | Which Jiji marketplace the record came from | ng |
| URL | Direct link to the listing | jiji.ng/central-business-district/cars/... |
With scrapeItemDetails: true, each record additionally includes viewsCount, favoritesCount, dateCreated and dateModerated (exact posting timestamps), the full description, phone (when the seller has published one), and a seller object containing name, shop URL, ads count, feedback count, member-since duration, last-seen time, premium status, trust labels, and typical response time.
Common Use Cases for Jiji Data
Demand Measurement with View and Favorite Counts
This is the field pair that makes Jiji unusual. Most classifieds marketplaces tell you what is listed; Jiji tells you how many people looked at it. Combine viewsCount with dateCreated and you get views per day per listing — a direct demand rate rather than a proxy.
That single derived metric answers questions listing counts cannot. Which car models attract attention but do not sell? Which price points collapse interest? Which categories are oversupplied — many listings, few views each? For market research in a region with almost no published commerce data, this is close to having a public analytics feed.
Dealer and Seller Lead Generation
The seller object plus phone turns Jiji into a sourcing tool for B2B outreach. Filter for sellers with high advertsCount and you have identified the professional dealers in a category rather than one-off private sellers. feedbackCount, memberSince, and isPremium let you rank them by credibility before anyone picks up a phone.
Note that phone numbers are personal data — see the legal section below before building a pipeline around them.
Cross-Border Price Arbitrage
The same scraper covers Nigeria, Kenya, Ghana, Tanzania, and Uganda through a single country field. Run the same category in each and compare — used vehicles, phones, and laptops all move across these borders, and the price gaps between markets are large and persistent enough to be actionable.
Vehicle and Property Market Tracking
Jiji's attributes map is category-aware: cars return condition, transmission, and mileage; laptops return RAM and processor; property returns bedrooms and square footage. Because these come back as structured key/value pairs rather than free text, building a hedonic price model — what mileage costs, what a bedroom is worth by region — is a matter of grouping, not parsing.
Market Entry Sizing
Before entering an African market, you need to know how big a category is, what it costs, and who already owns it. Listing volume, price distribution, and seller concentration from a single sweep answer all three, per country, in one dataset.
Challenges of Scraping Jiji Manually
Before jumping into the tutorial, it is worth understanding why building your own Jiji scraper is harder than it looks:
- Country-matched residential proxies are mandatory — Jiji's country sites are geo-restricted in practice. Scraping jiji.ng requires Nigerian residential IPs, jiji.co.ke requires Kenyan ones, and so on. This is the single biggest barrier and the reason most generic scrapers fail on this target
- Five sites, five URL structures — each country marketplace has its own domain, its own region slugs, and its own currency. Normalizing them into one schema is real work
- Demand signals are one click deep —
viewsCountandfavoritesCountonly exist on the listing page, so any demand analysis requires a second request per listing and careful cost control - Category-dependent attributes — the attribute set differs completely between cars, phones, and property. A rigid schema breaks; the data has to be modelled as a key/value map
- The ~24,000-listing ceiling — a single category query tops out around 24,000 results, so full-category coverage means orchestrating many narrower queries by region or price band
- Local-currency prices — naira, shillings, and cedis all format differently, and comparing across markets requires keeping both the numeric value and the original string
- Maintenance burden — five frontends means five things that can change
For most use cases, a pre-built and maintained scraper is dramatically more practical than building one in-house — particularly given the proxy requirement.
Step-by-Step: How to Scrape Jiji Listings
Here is how to scrape Jiji data using the Jiji Listings Scraper on Apify.
Step 1 — Pick Your Country and Target
The scraper is driven by a handful of filters rather than raw URLs, all of which mirror what you would click on the site:
country— pick one ofng(Nigeria),ke(Kenya),gh(Ghana),tz(Tanzania), orug(Uganda). The proxy region is matched automaticallycategorySlug— the slug from the site URL, e.g.carsfor jiji.ng/cars, orcomputers-and-laptops. A full category URL works too. Leave it empty to scrape across all categoriessearchQuery— a keyword such asmacbook pro. Combine it with a category to search within that categoryregionSlug— narrow to a region such aslagosorabuja, using the slug as it appears in site URLspriceMin/priceMax— filter by price band in local currency
Category plus region plus price band is also how you get past the ~24,000-listing ceiling: each narrower query gets its own budget.
Step 2 — Configure the Scraper Input
Head to the Jiji Listings Scraper on Apify and configure your run:
- Choose your
country - Set
categorySlug,searchQuery,regionSlug, and the price band as needed - Set
maxItemsto cap the run (default50) - Toggle
scrapeItemDetails:- Off (listing mode) — fast and about 2.5x cheaper; already includes price, attributes, images, location, and the verified-seller flag
- On (detail mode) — one extra request per listing for the full description, view and favorite counts, exact posting dates, seller profile, and phone number where published
- Leave
proxyConfigurationon its default — country-matched residential proxies are required and configured for you
Example input for a Lagos car-market sweep:
{
"country": "ng",
"categorySlug": "cars",
"regionSlug": "lagos",
"priceMin": 5000000,
"priceMax": 50000000,
"maxItems": 1000,
"scrapeItemDetails": false,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}
And a smaller demand-research run with the full payload:
{
"country": "ke",
"categorySlug": "mobile-phones",
"searchQuery": "iphone 15",
"maxItems": 200,
"scrapeItemDetails": true
}
Step 3 — Run the Scraper
Once started, the scraper will:
- Route requests through residential proxies in the marketplace's own country
- Build the category, search, region, and price-band query and paginate through the results
- Parse each listing card into a typed record with a numeric
priceplus the originalpriceText - Extract the category-specific
attributesmap as structured key/value pairs - Optionally fetch each listing page when
scrapeItemDetails: true, adding demand signals, posting dates, and the seller profile - Tag every record with its
countryso multi-market runs stay unambiguous
Step 4 — Export Your Results
When the run finishes, export your data in the format you need:
- JSON — ideal for developers building price-tracking or lead pipelines
- CSV / Excel — perfect for pivot-table analysis by region, category, and price band
- XML / HTML / RSS — useful for feeds and reporting workflows
- API — pull results programmatically via the Apify API for scheduled runs
Ready to try it? Run the Jiji Listings Scraper on Apify and get your first dataset in minutes.
Example Output (Real Data Preview)

Here is a listing-mode record from Jiji Nigeria:
{
"id": 53248080,
"title": "Jeep Wrangler Willys Sport 2021 Gray",
"description": "Jeep Wrangler 2020 model is available for inspection just like brand new accident free just call...",
"price": 66000000,
"priceText": "₦ 66,000,000",
"region": "Central Business District",
"regionParent": "Abuja (FCT)",
"category": "Cars",
"attributes": {
"Condition": "Foreign Used",
"Transmission": "Automatic",
"Mileage": "59000 km"
},
"image": "https://pictures-nigeria.jijistatic.net/198771226.webp",
"imagesCount": 11,
"isVerifiedSeller": true,
"url": "https://jiji.ng/central-business-district/cars/jeep-wrangler-willys-sport-2021-gray.html",
"country": "ng"
}
With scrapeItemDetails: true, each record gains the demand and seller payload:
{
"viewsCount": 514,
"favoritesCount": 10,
"dateCreated": "Thu, 28 May 2026 19:59:24 GMT",
"phone": "2348086865618",
"seller": {
"name": "EU REALITY SOLUTIONS",
"url": "https://jiji.ng/shop/eurealitysolutions",
"advertsCount": 17,
"feedbackCount": 1,
"memberSince": "5 y 8 m",
"lastSeen": "10 hours ago",
"isPremium": true,
"labels": ["1+ years on Jiji"],
"responseTime": "Typically replies within minutes"
}
}
Key things to notice:
viewsCountanddateCreatedtogether are the demand metric — 514 views since late May is a rate, and rates are comparable across listings in a way raw counts are notpriceis numeric,priceTextkeeps the currency — essential when a dataset spans naira, shillings, and cedisattributesis category-aware — cars return mileage and transmission; a phone listing returns storage and condition. Model it as a map, not as columnsregionParentgives you the geographic rollup — group by state or province without maintaining your own region table, whileregionTextcarries the combined display string for reportingseller.advertsCountseparates dealers from private sellers — this one number is the cheapest professional-seller filter availablecountryis on every row — multi-market runs stay unambiguous when merged
Try the Jiji Listings Scraper now — no coding required.
Automating Jiji Data Collection
Classifieds move fast — listings appear and disappear within days — so scheduled collection is where this scraper earns its keep.
Scheduled Runs
A daily run against your target categories captures the full listing lifecycle: what appeared, what changed price, and what vanished. Because dateCreated is exact, a daily scrape lets you reconstruct time-to-sale for every listing that disappears — the closest thing to sell-through data a classifieds site will give you.
For lead generation, weekly is usually enough; new dealers do not appear daily.
API Integration
Use the Apify API to trigger runs programmatically and retrieve results:
- Feed new listings into a price-tracking dashboard or valuation model
- Push qualified dealer leads into your CRM
- Alert when a listing matching your criteria appears below a target price
- Connect to Zapier, Make, Google Sheets, or Slack for no-code workflows
Node.js Example
For a complete working example showing how to call this scraper from Node.js — including a multi-country sweep — see the GitHub repository.
Webhooks
Configure webhooks to fire when a run completes, so downstream processing starts as soon as new listings land rather than on a polling timer.
Using Jiji Data for Business Intelligence
Views-per-Day as a Demand Index
Divide viewsCount by the age derived from dateCreated and you have a normalized demand rate per listing. Aggregate by model, price band, or region and you have a demand index for a market where no such index is published. This is the highest-value analysis available from Jiji data and almost nobody builds it.
Time-to-Sale from Listing Disappearance
Scrape daily, track listing IDs, and record when each one stops appearing. Listings that vanish quickly sold; listings that linger did not. Cross that against price and attributes and you can estimate what a car with given mileage actually sells for, rather than what sellers ask.
Dealer Concentration Analysis
Group listings by seller and count. In most Jiji categories a small number of dealers account for a large share of inventory — identifying them tells you who actually controls a category, which matters for both competitive and partnership decisions.
Hedonic Price Modelling
The structured attributes map plus numeric price is exactly the input a hedonic regression needs. What is a year of age worth on a Toyota in Lagos? What does "Foreign Used" command over "Nigerian Used"? These are answerable from one sweep.
Cross-Market Price Gaps
Run the same category across all five countries and compare price distributions after currency conversion. Persistent gaps in used vehicles and electronics are the basis of a real cross-border trade, and they are visible directly in the data.
Does Jiji Provide an API?
No. Jiji does not offer a public API for listing data.
What's Available
- There is no developer program, no documented endpoints, and no partner API for querying listings, prices, or seller information
- Jiji's own tooling is aimed at sellers posting ads and at advertisers buying placements, not at anyone reading the marketplace as a dataset
- The site does not publish bulk exports or feeds
What That Means
For Jiji, scraping is not an alternative to an API — it is the only route to the data. Everything the scraper returns is visible to any visitor browsing the site without an account: prices, attributes, photos, view counts, and the contact details sellers deliberately publish so buyers can reach them.
The Jiji Listings Scraper reads that public surface across all five markets and returns it as structured records, handling the country-matched residential proxies that make the target difficult in the first place.
Why Use a Jiji Scraper Instead of Building One
Building a custom Jiji scraper sounds straightforward until you actually start:
- Proxy sourcing is the hard part — you need residential IPs in Nigeria, Kenya, Ghana, Tanzania, and Uganda specifically. Generic datacenter or US residential proxies do not work on this target
- Five marketplaces, one schema — each country site needs its own region handling and currency treatment, normalized into a common output shape
- Cost control on detail mode — demand signals require a second request per listing, so a naïve implementation multiplies your bill without you noticing
- Category-variable attributes — a fixed column set breaks the moment you move from cars to phones
- Pagination past 24,000 — full-category coverage requires programmatically splitting queries by region and price band
- Frontend churn across five sites — five times the maintenance surface of a single-country scraper
- Opportunity cost — every hour spent sourcing African residential proxies is an hour not spent on the market analysis the data exists to support
Unless you have requirements no existing tool can meet, a maintained scraper lets you focus on the analysis instead of the plumbing.
Pricing — Pay Only for Results
The Jiji Listings Scraper uses Apify's Pay-Per-Event pricing model. You only pay for listings that land in your dataset — failed pages and retries are free.
| Event | When it's charged | Price per event | Per 1,000 listings |
|---|---|---|---|
product-listing | Each listing scraped from category or search results | $0.002 | $2.00 |
item-detail | Each listing fetched with full details — description, demand signals, posting dates, seller profile and phone (scrapeItemDetails: true) | $0.005 | $5.00 |
Actor start | Once per run, per GB of memory | $0.00005 | negligible |
Quick cost estimates:
- 1,000 listings for price tracking → $2.00
- 1,000 listings with demand signals and seller contacts → $5.00
- A daily 500-listing category monitor → $1.00/day, about $30/month
Listing mode is roughly 2.5x cheaper and already carries price, attributes, images, location, and the verified-seller flag — enough for price tracking and category sizing. Turn on detail mode when you specifically need demand signals, posting dates, or seller contacts. A common pattern is a broad cheap sweep to find the listings worth studying, then a narrow detail run over just those.
Apify's free plan includes monthly platform credit, which is enough to test the scraper properly before spending anything.
Try the Jiji Listings Scraper
The Jiji Listings Scraper extracts structured marketplace data across five African countries — listing IDs, titles, numeric prices in local currency, regions, categories, category-specific attributes, images, and verified-seller flags, with demand signals and seller contacts available in detail mode.
What you get:
- Five marketplaces from one input field — Nigeria, Kenya, Ghana, Tanzania, and Uganda
- View and favorite counts — real demand signals that most classifieds scrapers cannot provide
- Seller profiles and public phone numbers — dealer identification and lead generation in one pass
- Country-matched residential proxies configured automatically
- Flexible targeting by category, keyword, region, and price band
- Pay-Per-Event pricing:
$2.00 / 1,000listings,$5.00 / 1,000with full details - Scheduled runs, webhooks, and API access for ongoing intelligence
- No coding, no proxy sourcing, no scraper maintenance
Start scraping Jiji now — your first run takes less than 5 minutes to set up.
If you are building a classifieds data pipeline, combine Jiji with OLX for emerging markets more broadly, Kleinanzeigen for Germany, or Leboncoin for France — or work through the lead generation scraping guide if seller contacts are your goal.
Legal and Ethical Considerations
Jiji deserves more care than a pure product-data scraper, because seller phone numbers are personal data. Read this section before building anything on the contact fields.
- Public data only — everything the scraper collects is visible to any visitor without logging in, including the phone numbers sellers publish specifically so buyers can contact them
- Phone numbers are personal data — collecting and processing them engages Nigeria's Data Protection Act 2023, Kenya's Data Protection Act 2019, and equivalent legislation in Ghana, Tanzania, and Uganda. You need a lawful basis for processing, and if you are contacting people you also need to comply with local direct-marketing rules
- Business contacts differ from private ones — a dealer with 400 active adverts publishing a business line is a materially different case from a private individual selling one sofa. Filtering on
seller.advertsCountis both a data-quality filter and a defensible way to keep your dataset focused on commercial actors - Honor deletion requests — if a seller asks to be removed from your dataset, remove them. Build that capability in from the start rather than retrofitting it
- Respect rate limits — the scraper paces its requests rather than overloading Jiji's servers
- No misuse — use the data for legitimate purposes like price research, market analysis, and B2B outreach. Do not use scraped contacts for spam, and do not resell personal data
Listing content, prices, and attributes are ordinary public commerce data. The contact fields are the part that carries obligations — treat them accordingly.
Frequently Asked Questions
Is scraping Jiji legal?
Scraping publicly available data from Jiji is generally legal — listings, prices, and attributes are visible to anyone who visits the site without logging in. Seller phone numbers are a different matter: they are personal data, and processing them falls under Nigeria's Data Protection Act 2023, Kenya's Data Protection Act 2019, and equivalent laws in the other markets. You need a legitimate basis for collecting and using them.
Which Jiji countries are supported?
The scraper covers five markets: Nigeria (jiji.ng), Kenya (jiji.co.ke), Ghana (jiji.com.gh), Tanzania (jiji.co.tz), and Uganda (jiji.ug). You pick the country with a single input field, and the scraper matches the proxy region automatically. Ethiopia (jiji.et) is not currently supported.
What data can be extracted from Jiji?
In listing mode you get the listing ID, title, description snippet, numeric price and formatted price string, region and parent region, category, the full attributes map (condition, make, model, mileage, RAM, and so on), main image, image count, verified-seller flag, and the listing URL. Detail mode adds view counts, favorite counts, exact posting timestamps, the seller profile, and the seller's phone number when publicly available.
Can I get demand data from Jiji?
Yes, and this is unusual for a classifieds site. With detail mode enabled every listing returns viewsCount and favoritesCount alongside an exact dateCreated timestamp. Dividing views by listing age gives you a per-listing demand rate, which is a far stronger market signal than listing counts alone.
How many listings can I scrape from one category?
A single category query reaches roughly 24,000 listings. To cover an entire large category beyond that, split your runs by region slug or by price band and combine the results — each narrower query gets its own 24,000-listing budget.
Do I need proxies to scrape Jiji?
Yes, and they have to be residential proxies located in the marketplace's own country. This is the main technical barrier on this target. The scraper handles it automatically — the proxy region is matched to your selected country by default.
How much does the Jiji Listings Scraper cost?
The actor uses Apify's Pay-Per-Event pricing. Listing-only records cost $0.002 each ($2.00 per 1,000), and full detail records cost $0.005 each ($5.00 per 1,000), plus a negligible per-run start event. Listing mode is about 2.5x cheaper and already includes price, attributes, images, and location.
About the Author
This guide was written by Piotr, a software engineer with hands-on experience building and maintaining web scrapers at scale. He develops and maintains a suite of data extraction tools on the Apify platform, helping businesses automate their data collection workflows.
Need help with your scraping project?
Book a free discovery call and let's scope your project together.
Book a Call