Cars.co.ug Scraper: Used & New Cars in Uganda
Pricing
from $22.00 / 1,000 vehicle listings
Cars.co.ug Scraper: Used & New Cars in Uganda
Scrape cars.co.ug, the Ugandan car marketplace: used and new cars, SUVs, pick-ups and trucks with UGX, USD and EUR price, mileage, fuel, transmission, engine, photos, dealers and price-change monitoring. No login, no proxy. Export JSON, CSV or Excel.
Pricing
from $22.00 / 1,000 vehicle listings
Rating
0.0
(0)
Developer
RecordsData
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share

Cars.co.ug Scraper: Used and New Car Listings from Uganda
Cars.co.ug Scraper is an Apify Actor that extracts vehicle listings from cars.co.ug, the Ugandan car marketplace for used and new cars, SUVs, pick-ups, vans, trucks and trailers. Each row has the price in Ugandan shillings (UGX) with the exact US dollar and euro price, year, mileage, engine, fuel, gearbox, drive, photos, city and seller type. It also returns dealer profiles and price-change rows. No login, no proxy and no browser are needed.
Export the result as JSON, CSV, Excel, XML or HTML, or read it through the Apify API. The actor reads the pages the site shows to visitors and paces its requests politely.
What can you scrape from Cars.co.ug?
- Vehicle listings: the whole catalogue, 1,633 live ads on 2026-10-19 (1,569 used and 64 new), with price, year, mileage, engine size, fuel, transmission, city, seller type and the cover photo.
- Detail pages (optional): full photo gallery, equipment list, seller description, body type, drive type, power, fuel consumption, seats, finance flag, dealer address with map position and the exact US dollar and euro price.
- Dealers: the 13 car dealerships of the site with showroom address, map position, number of cars in stock and, on request, the business phone. Private sellers are listed as such and never identified.
- Price changes: with monitoring on, a repeat run returns only new listings, and a repriced listing comes back with the previous price and the change in percent.
Why use this actor?
- Whole catalogue reachable: every page of every search can be read, so a full list read takes about two minutes and a full read with detail pages about 12 minutes.
- Real filters, applied by the site and checked again on every row: make, model, body type, fuel, transmission, city, condition, year, price, mileage and engine size.
- Three currencies:
pricein UGX as the site shows it, pluspriceUsdandpriceEurread from the listing page. - Clean, typed output: numbers are numbers, enums are lowercase English, and absent values are left out instead of being filled with placeholders.
- Privacy built in: names and phone numbers of private sellers are never output, and phones and emails are removed from their descriptions.
- Small and cheap to run: 256 MB of memory, plain HTTP, about 0.1 cent of platform cost for a run of three listings.
How to scrape Cars.co.ug car listings in four steps
- Choose What to collect on the actor page.
- Add makes such as
ToyotaorSubaru, or leave them empty, and set filters such as price, year or body type. - Set the maximum number of results and click Start.
- Download the dataset from the Storage tab.
Three ways to collect data
Mode (mode) | Use it to | Record types |
|---|---|---|
search | Find listings by make, model and the full filter set | vehicle, price-change |
urls | Refresh known listings by number or address, replay a search address of the site, or read one dealer, one make or one model page | vehicle, price-change, dealer |
dealers | List the car dealers and optionally their cars | dealer, vehicle |
Make and model names are not case sensitive and are checked against the site. An unknown name ends the run with one free error row that suggests close matches.
Input
The form has 30 fields. These are the most used; the rest are in the input form of the actor page.
| Field | Type | Default | Meaning |
|---|---|---|---|
mode | string | search | What to collect: search, urls or dealers |
maxItems | integer | 50 | Maximum results (free plans: 10) |
makes | array | empty | Makes as written on the site, for example Toyota |
models | array | empty | Models of ONE make, for example Land Cruiser |
bodyTypes | array | empty | suv, sedan, station-wagon, pickup-double-cab, panel-van, minibus, mpv, hatchback, coupe and more |
fuelTypes | array | empty | petrol, diesel, hybrid |
cities | array | empty | kampala, entebbe |
transmission | string | any | manual or automatic (automatic also covers DSG and multitronic, as on the site) |
condition | string | any | new or used |
yearFrom / yearTo | integer | none | Model year range |
priceFrom / priceTo | integer | none | Price range in UGX |
mileageFrom / mileageTo | integer | none | Odometer range in km |
engineFrom / engineTo | integer | none | Engine size range in cc |
sortBy | string | newest | newest, oldest, price-asc, price-desc, mileage-asc, mileage-desc, year-desc, year-asc |
startUrls / listingIds | array | empty | Addresses and listing numbers for urls mode |
fetchDetails | boolean | false | Open every listing page for the full gallery, equipment and seller block |
includeContactDetails | boolean | false | Add dealer business phones |
onlyNew / trackPriceChanges | boolean | false | Monitor mode: only new listings, and price-change rows |
A minimal example input:
{"mode": "search","makes": ["Toyota"],"models": ["Land Cruiser"],"bodyTypes": ["suv"],"fuelTypes": ["diesel"],"yearFrom": 2018,"sortBy": "price-asc","maxItems": 100}
What data do you get?
Every row has a recordType: vehicle, price-change or dealer. Fields that do not apply to a record type, or that the site does not show for a listing, are left out.
| Field | Description |
|---|---|
recordType | The record type |
listingId, dealerId | Listing number and dealer number |
title, url, imageUrl | Listing title, address and cover photo |
make, model, year | Make, model and model year |
bodyType, fuelType, transmission, driveType | Specification: body as the site names it, fuel and transmission as lowercase English enums (manual, automatic, other), drive as the site names it |
engineSize, engineSizeUnit | Engine size in litres with its unit L |
powerKw, powerHp, fuelConsumption, seats, loadCapacityTons | Power in kW and horsepower, fuel use in litres per 100 km, seats and load capacity, when the seller entered them (detail rows) |
mileage, mileageUnit, condition | Odometer in km and new or used |
price, currency | Asking price in UGX |
priceUsd, priceEur | Exact US dollar and euro price shown on the listing page (detail rows) |
previousPrice, priceChange, priceChangePct, changeType | Price-change rows: old price, difference, percent, price-drop or price-increase |
financeAvailable | Whether the seller offers finance (detail rows) |
country, city, address, latitude, longitude | Where the vehicle or dealership is; address and map position are the dealership showroom (detail rows and dealer rows) |
features, description | Equipment list and the seller's text, with contacts removed (detail rows) |
images, imageCount | Full-size gallery and photo count (detail rows) |
sellerType, isPrivateSeller, sellerName, sellerUrl, sellerLogo | dealer or private; dealer identity is filled for dealers only |
sellerPhone, phones | Dealer business phone, only with Include dealer contact details |
vehicleCount | Dealer rows: number of cars in stock |
sourceSite, scrapedAt | cars.co.ug and the time of extraction |
Sample output
A real vehicle row with detail pages on, from a cloud run (photo list, equipment and description shortened):
{"imageUrl": "https://www.cars.co.ug/Uganda/used-cars/2024-Toyota-LAND-CRUISER-LC300-ZX-2024-928-1480118_1.jpg","recordType": "vehicle","title": "2024 Toyota LAND CRUISER LC300 ZX","listingId": "41315","dealerId": "928","url": "https://www.cars.co.ug/Toyota-LAND-CRUISER-LC300-ZX-2024-41315","sourceSite": "cars.co.ug","country": "Uganda","city": "Kampala","address": "CADAM ENTREPRISES NAGURU ROAD-OFF LUGOGO BY PASS KAMPALA","latitude": 0.330955,"longitude": 32.6036,"make": "Toyota","model": "LAND CRUISER LC300 ZX","year": 2024,"bodyType": "SUV","fuelType": "diesel","transmission": "automatic","driveType": "4x4","engineSize": 3.3,"engineSizeUnit": "L","condition": "used","price": 450000000,"currency": "UGX","priceUsd": 108641,"priceEur": 96773,"financeAvailable": true,"features": ["Air Conditioning", "Cruise Control", "Electric Mirrors", "Power Steering"],"description": "TOYOTA LAND LC300 ZX 2024 INVESTMENT UGX 450M","images": ["https://www.cars.co.ug/Uganda/used-cars/2024-Toyota-LAND-CRUISER-LC300-ZX-2024-928-1480118_1.jpg","https://www.cars.co.ug/Uganda/used-cars/2024-Toyota-LAND-CRUISER-LC300-ZX-2024-928-1480118_2.jpg"],"imageCount": 22,"sellerType": "dealer","isPrivateSeller": false,"sellerName": "SEPHOC MOTORS UGANDA","sellerUrl": "https://www.cars.co.ug/SEPHOC-MOTORS-UGANDA","sellerLogo": "https://www.cars.co.ug/image/928/dealerlogo/SEPHOC-MOTORS-UGANDA","scrapedAt": "2026-10-19T07:10:24.857Z"}
How much does it cost to scrape Cars.co.ug?
The actor is billed per result with Apify pay-per-event pricing:
| Event | What you pay for | Price per result | Per 1,000 |
|---|---|---|---|
| Vehicle record | One listing read from the result list | $0.0015 | $1.50 |
| Vehicle detail record | One listing with its detail page | $0.0023 | $2.30 |
| Price change record | One listing whose price moved | $0.0015 | $1.50 |
| Dealer record | One dealer | $0.0023 | $2.30 |
Worked examples:
- The whole catalogue from the result list: 1,633 x $0.0015 = $2.45.
- The whole catalogue with detail pages: 1,633 x $0.0023 = $3.76.
- A daily monitor run that finds 12 new listings and 3 price changes costs 12 x $0.0015 + 3 x $0.0015 = $0.02.
Error rows, empty searches and listings skipped by monitoring are never charged. Apify platform usage for a run of three listings is about $0.0001.
How does it compare with other car scrapers?
No other actor on the Apify Store reads cars.co.ug (Store search on 2026-10-19: no result for the site, its name or Uganda car listings). The general car scrapers cover other marketplaces: for example memo23/facebook-marketplace-scraper-ppe and 3x1t/mobile-de-scraper-ppr both charge $1.50 per 1,000 results.
This actor's result-list price is the same $1.50 per 1,000 and it returns the Ugandan marketplace with dealers, price-change monitoring and both UGX and USD prices.
Is it legal to scrape Cars.co.ug? Limits and responsible use
The actor reads public listing pages. It does not log in or bypass any protection, and it keeps a gap of about half a second between requests; the site's robots.txt allows these pages and sets no crawl delay. Private sellers' names and phone numbers are never output, and contacts are removed from private descriptions. Dealer business phones only appear with Include dealer contact details. You are responsible for using the data in line with the site terms and Ugandan data protection law.
Limits:
- The site prints UGX prices in millions with two decimals, so
priceis accurate to about 5,000 shillings. Listings priced in US dollars show a converted UGX price;priceUsdon detail rows is the exact dollar amount. - A used listing that shows 0 km has no stated mileage;
mileageis left out. A 0 km reading is kept only for new vehicles. - The site shows no publication date, no view count and no VIN, so those fields do not exist.
- Power and fuel use are filled for only a few percent of ads, because sellers often leave the form placeholders.
- A sort by price, mileage or year can repeat or skip rows between result pages on the site; the actor fills the gaps with a second newest-first pass, and those rows come last.
- Free Apify plans are limited to 10 results per run.
Use with AI agents (MCP)
Connect the Apify MCP server to Claude, Cursor or another MCP client and this actor appears as a tool: https://mcp.apify.com?tools=RecordsData/cars-ug-scraper.
Example prompt: "Find the 20 cheapest diesel Toyota Land Cruiser SUVs from 2018 or newer on Cars.co.ug and list price in UGX and USD, mileage and dealer." The agent sends { "mode": "search", "makes": ["Toyota"], "models": ["Land Cruiser"], "bodyTypes": ["suv"], "fuelTypes": ["diesel"], "yearFrom": 2018, "sortBy": "price-asc", "fetchDetails": true, "maxItems": 20 } and analyzes the rows.
Run it from code
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('RecordsData/cars-ug-scraper').call({mode: 'search',makes: ['Toyota'],yearFrom: 2018,maxItems: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.length, items[0].title, items[0].price);
You can also call the actor from the Python client, Make, Zapier or n8n, and schedule it from the Apify Console.
Frequently Asked Questions
Which vehicles does it cover?
Everything listed on cars.co.ug: used and new cars, SUVs, pick-ups, vans, minibuses, trucks and trailers, from dealers and private sellers. The condition (new or used) is the label the site shows on the ad.
Do I need a proxy, a login or an API key?
No. The actor makes plain HTTP requests to the public site and needs no proxy, browser or Cars.co.ug account. You only need an Apify account to start runs, and the free plan returns up to 10 results per run.
Is it legal to scrape Cars.co.ug?
The actor reads publicly visible listings and does not log in. It keeps a polite request pace and respects the site's robots.txt. Private sellers' personal data is not output; you remain responsible for how you use the data.
How much does a run cost?
The actor is billed per result: $0.0015 per vehicle listing, $0.0023 per listing with its detail page, $0.0015 per price change and $0.0023 per dealer. So 1,000 vehicle listings cost $1.50. The Pricing tab of the actor page shows the live rate. Error rows and listings skipped by monitoring are never charged.
Why is the price in shillings and what are priceUsd and priceEur?
The site shows prices in Ugandan shillings, so price is in UGX. Detail rows add priceUsd and priceEur, read from the exact dollar and euro figures on the listing page. Sellers who list in US dollars appear in shillings at the site's own rate.
Why is there no phone number in the rows?
Dealer phones are returned only when you switch on Include dealer contact details, and only for dealers, which are businesses. Private sellers' phones and names are never returned, and contacts are also removed from private descriptions.
Why does a used car have no mileage?
Many sellers leave the odometer empty and the site then prints 0 km. The actor treats that as unknown and leaves mileage out, so a mileage filter never matches a listing without a stated mileage. New vehicles are kept at 0 km.
Can I get only the listings published since my last run?
Yes. Switch on Only new listings (monitor) and keep the same search settings, or the same Monitor name. Add Report price changes to also get a row when a price moves by 2 percent or more. Scheduled runs then return only new or repriced listings, never charged twice.
How many results can I get in one run?
The site sets no cap: all 1,633 listings are reachable. A read of the result list takes about two minutes and a full read with detail pages about 12 minutes. Set maxItems to what you need. Free Apify plans are limited to 10 results per run; paid plans use the value you set.
What happens when the search finds nothing or the input is wrong?
A search with no hits ends as succeeded with an empty dataset and charges nothing. A wrong input value, such as a minimum year above the maximum or an unknown make, ends as succeeded with one free error row that explains the problem, so a typo never costs you money.
Support
Questions, a missing field or a feature request: contact.punkrecordsdata@gmail.com. Reviews on the actor page help other people find it.
This actor is an independent tool and is not affiliated with cars.co.ug.