Cars.co.ug Scraper: Used & New Cars in Uganda avatar

Cars.co.ug Scraper: Used & New Cars in Uganda

Pricing

from $22.00 / 1,000 vehicle listings

Go to Apify Store
Cars.co.ug Scraper: Used & New Cars in Uganda

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

RecordsData

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

RecordsData

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: price in UGX as the site shows it, plus priceUsd and priceEur read 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

  1. Choose What to collect on the actor page.
  2. Add makes such as Toyota or Subaru, or leave them empty, and set filters such as price, year or body type.
  3. Set the maximum number of results and click Start.
  4. Download the dataset from the Storage tab.

Three ways to collect data

Mode (mode)Use it toRecord types
searchFind listings by make, model and the full filter setvehicle, price-change
urlsRefresh known listings by number or address, replay a search address of the site, or read one dealer, one make or one model pagevehicle, price-change, dealer
dealersList the car dealers and optionally their carsdealer, 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.

FieldTypeDefaultMeaning
modestringsearchWhat to collect: search, urls or dealers
maxItemsinteger50Maximum results (free plans: 10)
makesarrayemptyMakes as written on the site, for example Toyota
modelsarrayemptyModels of ONE make, for example Land Cruiser
bodyTypesarrayemptysuv, sedan, station-wagon, pickup-double-cab, panel-van, minibus, mpv, hatchback, coupe and more
fuelTypesarrayemptypetrol, diesel, hybrid
citiesarrayemptykampala, entebbe
transmissionstringanymanual or automatic (automatic also covers DSG and multitronic, as on the site)
conditionstringanynew or used
yearFrom / yearTointegernoneModel year range
priceFrom / priceTointegernonePrice range in UGX
mileageFrom / mileageTointegernoneOdometer range in km
engineFrom / engineTointegernoneEngine size range in cc
sortBystringnewestnewest, oldest, price-asc, price-desc, mileage-asc, mileage-desc, year-desc, year-asc
startUrls / listingIdsarrayemptyAddresses and listing numbers for urls mode
fetchDetailsbooleanfalseOpen every listing page for the full gallery, equipment and seller block
includeContactDetailsbooleanfalseAdd dealer business phones
onlyNew / trackPriceChangesbooleanfalseMonitor 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.

FieldDescription
recordTypeThe record type
listingId, dealerIdListing number and dealer number
title, url, imageUrlListing title, address and cover photo
make, model, yearMake, model and model year
bodyType, fuelType, transmission, driveTypeSpecification: body as the site names it, fuel and transmission as lowercase English enums (manual, automatic, other), drive as the site names it
engineSize, engineSizeUnitEngine size in litres with its unit L
powerKw, powerHp, fuelConsumption, seats, loadCapacityTonsPower in kW and horsepower, fuel use in litres per 100 km, seats and load capacity, when the seller entered them (detail rows)
mileage, mileageUnit, conditionOdometer in km and new or used
price, currencyAsking price in UGX
priceUsd, priceEurExact US dollar and euro price shown on the listing page (detail rows)
previousPrice, priceChange, priceChangePct, changeTypePrice-change rows: old price, difference, percent, price-drop or price-increase
financeAvailableWhether the seller offers finance (detail rows)
country, city, address, latitude, longitudeWhere the vehicle or dealership is; address and map position are the dealership showroom (detail rows and dealer rows)
features, descriptionEquipment list and the seller's text, with contacts removed (detail rows)
images, imageCountFull-size gallery and photo count (detail rows)
sellerType, isPrivateSeller, sellerName, sellerUrl, sellerLogodealer or private; dealer identity is filled for dealers only
sellerPhone, phonesDealer business phone, only with Include dealer contact details
vehicleCountDealer rows: number of cars in stock
sourceSite, scrapedAtcars.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:

EventWhat you pay forPrice per resultPer 1,000
Vehicle recordOne listing read from the result list$0.0015$1.50
Vehicle detail recordOne listing with its detail page$0.0023$2.30
Price change recordOne listing whose price moved$0.0015$1.50
Dealer recordOne 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.

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 price is accurate to about 5,000 shillings. Listings priced in US dollars show a converted UGX price; priceUsd on detail rows is the exact dollar amount.
  • A used listing that shows 0 km has no stated mileage; mileage is 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.

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.