Kijiji.ca Scraper avatar

Kijiji.ca Scraper

Pricing

from $2.50 / 1,000 results

Go to Apify Store
Kijiji.ca Scraper

Kijiji.ca Scraper

Scrape Kijiji.ca — Canada's #1 classifieds — with a vertical-aware structured schema across all 5 verticals: Autos, Real Estate, Jobs, Services, Marketplace. Per-vertical fields (make/model/VIN, bedrooms/rent/utilities), FSBO vs dealer detection, bilingual EN/FR. Pure HTTP, no browser.

Pricing

from $2.50 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Extract classified listings from Kijiji.ca — Canada's #1 classifieds site (Adevinta Group) — with a vertical-aware structured schema. Most Kijiji scrapers flatten everything into one generic table; this one understands that Autos, Real Estate, Jobs, Services and Marketplace each need their own fields.

Apify Actor


What Makes This Different

The Kijiji scraper market is crowded but shallow — 12+ actors that all do "search URL → flat listing." This one differentiates with:

  • Vertical-aware schema — Autos get make/model/year/mileageKm/VIN/CARFAX, Real Estate gets bedrooms/rent/utilitiesIncluded/amenities, Jobs get salaryMin/Max/jobType, etc.
  • FSBO vs Dealer detection — derives adSource (fsbo / dealer / professional / ebay) from the image CDN path, so flippers and dealer-monitors get the split they need
  • Bilingual EN/FR handling — detects descriptionLang via French hint-word density (Quebec listings are French)
  • Paid placement tiers — flags isTopAd / isShowcase / isHighlighted (a seller-seriousness signal)
  • Kijiji price grammar — parses Please Contact, Free, Swap/Trade, $X OBO, $X firm into structured priceType + isNegotiable

How It Works

Kijiji.ca is a React/Next.js SPA. Listing data is hydrated into the page as JSON. This actor:

  1. Fetches the search/category result page HTML
  2. Extracts the hydration JSON (__NEXT_DATA__, Apollo state, or JSON-LD — tolerant)
  3. Deep-searches that JSON for listing arrays
  4. Parses each listing with the vertical-aware schema
  5. Optionally visits each listing's detail page (VIP) for full data
  6. Follows pagination

No browser, no headless Chrome — pure HTTP.


Input

Search on Kijiji.ca, copy the result page URL, paste it in:

{
"mode": "search-urls",
"searchUrls": [
"https://www.kijiji.ca/b-cars-trucks/gta-greater-toronto-area/c174l1700272",
"https://www.kijiji.ca/b-apartments-condos/city-of-toronto/c37l1700273"
],
"fetchDetails": true,
"maxItems": 100
}

Keyword search mode

{
"mode": "keyword-search",
"keyword": "toyota camry",
"categoryCode": "c174",
"provinces": ["ON", "QC"],
"maxItems": 100
}

Parameters

ParameterTypeDefaultDescription
modestringsearch-urlssearch-urls or keyword-search
searchUrlsarray[]Kijiji result page URLs (search-urls mode)
verticalstringautoauto / marketplace / autos / real-estate / jobs / services
keywordstring""Free-text search (keyword-search mode)
categoryCodestring""Category code e.g. c174, c37, c10 (keyword-search mode)
provincesarray["ON"]Province codes (keyword-search mode)
minPrice / maxPriceinteger0CAD price filter
sortBystringdateDescrelevance / dateDesc / priceAsc / priceDesc
adSourceFilterstringallall / fsbo-only / dealer-only / exclude-ebay
languagestringbothboth / en / fr
fetchDetailsbooleantrueVisit each VIP page for full data (slower, richer)
maxItemsinteger100Total listing cap (0 = unlimited)
maxPagesinteger10Pages per search URL
requestDelayinteger (ms)500Delay between requests
maxConcurrencyinteger3Parallel requests
maxRetriesinteger3Retries on 403/503/429
proxyConfigurationobjectCA residentialProxy settings
debugModebooleanfalseVerbose parser logging (hydration structure, listing keys, attribute dumps) for the first page of each search — for troubleshooting

Category Codes

Codes verified against live Kijiji. The actor also auto-detects the vertical from the search-URL slug, so an exact code match isn't required.

CodeCategoryVertical
c174Cars & Trucksautos
c30Motorcyclesautos
c27Cars & Vehicles (parent)autos
c37Apartments & Condosreal-estate
c34Real Estate (parent)real-estate
c10Buy & Sellmarketplace
c45Jobsjobs
c72Servicesservices

Tip: the simplest path is to browse Kijiji.ca to the category/city you want and paste the result-page URL into searchUrls — the vertical is inferred automatically.


Provinces

CodeProvinceCodeProvince
ONOntarioMBManitoba
QCQuebecSKSaskatchewan
BCBritish ColumbiaNSNova Scotia
ABAlbertaNBNew Brunswick
NLNewfoundlandPEPrince Edward Island

Output

Common fields appear on every record; vertical-specific fields are populated based on the listing's vertical.

Autos listing example

{
"listingId": "1733059633",
"vertical": "autos",
"categoryCode": "c174",
"title": "2023 Ford Edge SEL No Accident Leather Radar Cruise Navigation",
"url": "https://www.kijiji.ca/v-cars-trucks/mississauga-peel-region/2023-ford-edge.../1733059633",
"descriptionLang": "en",
"priceAmount": 23995,
"priceCurrency": "CAD",
"priceType": "fixed",
"locationCity": "Mississauga",
"locationProvince": "ON",
"latitude": 43.6449207,
"longitude": -79.6509123,
"adSource": "dealer",
"posterId": "COMMERCIAL_7108",
"make": "ford",
"model": "edge",
"trim": "SEL",
"year": 2023,
"mileageKm": 76402,
"transmission": "Automatic",
"fuelType": "Gasoline",
"drivetrain": "AWD",
"bodyType": "SUV / Crossover",
"color": "white",
"condition": "used",
"vin": "2FMPK4J95PBA28054",
"forSaleBy": "Dealer",
"features": ["Bluetooth", "Alloy Wheels"],
"imageCount": 25,
"isTopAd": true,
"priceDropped": null,
"scrapedAt": "2026-05-14T12:49:00Z"
}

make / model come straight from Kijiji's attribute data and are lower-cased (ford, edge); the human-readable name is in title. Some Kijiji model values are internal slugs (e.g. crv, slvrd1500).

Real estate listing example

{
"listingId": "1735361401",
"vertical": "real-estate",
"categoryCode": "c37",
"title": "Modern, Newly Renovated 1 Bed+Den on the Danforth",
"priceAmount": 2300,
"priceType": "fixed",
"locationCity": "Toronto",
"locationProvince": "ON",
"latitude": 43.67986,
"longitude": -79.3389,
"adSource": "fsbo",
"listingType": "For Rent",
"propertyType": "apartment",
"bedrooms": "1.5",
"bathrooms": "1",
"rentMonthly": 2300,
"utilitiesIncluded": ["Heat", "Water"],
"furnished": "No",
"petsAllowed": "No",
"sizeText": "520 sq ft",
"availableDate": "2026-06-01T00:00:00Z",
"agreementType": "one-year",
"buildingAmenities": ["Laundry (In-Unit)", "Air Conditioning"]
}

Kijiji codes bathrooms as count×10 — the parser decodes "10""1", "15""1.5". furnished / petsAllowed are decoded to Yes / No / Limited. utilitiesIncluded and buildingAmenities are collected from Kijiji's separate boolean attributes.

Notes

  • adSource is derived from the image CDN path (ca-prod-fsbo-ads → fsbo) with a poster-type fallback
  • descriptionLang is auto-detected; Quebec listings are usually fr
  • priceType: fixed / contact (Please Contact) / free / swap
  • isRepost, priceDropped, underpricedFlag, categoryMedian require cross-run state and are reserved for a future version (currently null)
  • motivatedSeller is detected from urgency keywords in the title/description

Use Cases

  • Auto dealers & used-car pricing — Kijiji Autos benchmark, FSBO sourcing, VIN + mileage + trim valuation input
  • Resellers & flippers — FSBO filter + motivated-seller signal + price tracking pipeline
  • Real estate investors & property managers — rental price trends, utilities-included analysis, competitor pricing (CAPREIT, Minto, Boardwalk)
  • Retail arbitrage & pricing intelligence — second-hand price vs retail, demand proxy by listing volume
  • Local recruitment analysis — Kijiji Jobs blue-collar/local segment that Indeed/SEEK miss
  • Academic & policy research — Statistics Canada, Bank of Canada, CMHC: second-hand economy, housing affordability
  • Fraud & trust/safety — abnormal pricing, repost patterns, "cash only" risk signals
  • Quebec/bilingual market specialists — French content detection and normalization

Cost & Performance

  • No browser — pure HTTP, low CU consumption
  • fetchDetails: true roughly doubles requests (1 search page + 1 VIP per listing) but yields full data
  • Set fetchDetails: false for fast, summary-only scrapes
  • Canadian residential proxy strongly recommended for sustained runs

Limitations

  • Field discovery: Kijiji's internal __NEXT_DATA__ field names can change; the parser is tolerant (tries many field names + deep-search fallback) but a Kijiji frontend rewrite may need a parser update.
  • Kijiji Autos platform (autos.kijiji.ca) is a separate frontend; this actor scrapes the classic Kijiji /b-cars-trucks/ autos which are cross-linked.
  • Intelligence fields (repost / price-drop / underpriced detection) need persistent cross-run state — reserved for a future release.
  • Anti-bot: moderate. Datacenter IPs work partially; residential CA proxy is the reliable path.

Changelog

VersionDateNotes
1.0.02026-05-14Initial release — vertical-aware schema across all 5 verticals (Autos, Real Estate, Jobs, Services, Marketplace), calibrated against live Kijiji. Apollo-state hydration parsing with __ref denormalization, FSBO/dealer detection from image CDN, bilingual EN/FR detection, Kijiji price-grammar parsing, enum decoding (transmission/fuel/bodytype/bathrooms/furnished/pets), search-urls + keyword modes, optional VIP detail enrichment, debugMode for troubleshooting.