Kijiji Scraper | Canadian Classified Listings avatar

Kijiji Scraper | Canadian Classified Listings

Pricing

from $19.00 / 1,000 results

Go to Apify Store
Kijiji Scraper | Canadian Classified Listings

Kijiji Scraper | Canadian Classified Listings

Scrape Kijiji classified ads across Canada for cars, real estate, jobs, and goods with title, price, location, seller, posted date, photos, and full description. Track Canadian marketplaces for resale arbitrage, real estate research, and competitive market intelligence.

Pricing

from $19.00 / 1,000 results

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

21 hours ago

Last modified

Share

ParseForge Banner

🍁 Kijiji.ca Listings Scraper

🚀 Pull live Kijiji listings in seconds. Real estate (houses, condos, rentals, rooms, commercial) and Buy & Sell, filtered by category, province, keyword, or price. No API key, no registration, no manual CSV wrangling.

🕒 Last updated: 2026-05-22 · 📊 35+ fields per listing · 3M+ live listings on source · Pagination + detail enrichment · Pure HTTP, no headless browser

Kijiji is Canada's largest general classifieds platform with roughly 85% market share of the country's local buy-and-sell traffic and a real estate vertical that hosts over 244,000 active property listings across every province. This actor extracts listings from any vertical at kijiji.ca: houses for sale, condos, apartments and condos for rent, room rentals, short-term rentals, commercial space, land, and the full Buy & Sell catalog. Each record carries the title, asking price in CAD, address with city, province, latitude and longitude, full image gallery, view count, listing date, seller type (private vs business), and the canonical attribute set Kijiji exposes for that vertical (bedrooms, bathrooms, sqft on real estate; condition, brand, model on classifieds).

You feed it a Kijiji search or category URL, the same one you copy from your browser after applying filters on the site, and the actor walks every page until it has the records you asked for. Each record optionally enriches with the listing detail page so you also get view counts, the full description, all photos at full resolution, and seller phone (when public). Use it for daily monitoring of new rental listings, off-market real estate lead discovery, price intelligence on used goods, dealer benchmarking, or research into Canada's informal economy.

🎯 Target audience🛠️ Primary use cases
Real estate agents, property managers, leasing agents, used-car dealers, market researchers, e-commerce resellersRental price tracking, off-market lead discovery, daily new listing alerts, competitor pricing, dealer benchmarking, price arbitrage

📋 What the Kijiji Listings Scraper does

  • 🏘️ Real estate built in. Scrape houses for sale, condos, apartments and condos for rent, rooms, short-term rentals, commercial, land, all from one actor.
  • 📍 Filter by location. Pass a Canada-wide URL, any province URL (Ontario, Quebec, BC, Alberta, all 13 provinces and territories), or city-level URLs.
  • 🔎 Filter by keyword. Bake the keyword into the URL or pass it via the keyword input, both work.
  • 🏷️ Filter by category. 13 real estate sub-categories and 32 Buy & Sell sub-categories, each with its own slug and URL.
  • 💰 Filter by price, condition, seller type, ad type. Apply the filters on Kijiji.ca, then paste the URL, the actor follows whatever you set.
  • 🔍 Detail-page enrichment. Optional second pass per listing to grab views, full description, full-res photos, end date, and seller phone.

Each record includes the listing title, listing ID, listing URL, primary image and full image gallery, price (number) and price type (FIXED / CONTACT / SWAP_TRADE / GIVE_AWAY), currency, category ID and full category path, seller type and ID, verified flag, address, city, province, latitude, longitude, image count, full description, all attributes (bedrooms, bathrooms, sqft, parking, pets, condition, brand, etc. depending on vertical), view count, status, listing type (OFFER / WANTED), activation date, and end date.

💡 Why it matters: Kijiji aggregates the largest pool of Canadian real estate and classifieds inventory, but it has no public API. Without this actor, the only options are manual browsing or fragile DIY scrapers. This one returns clean, typed JSON in seconds and is the basis for daily-listing alerts, price indices, and lead pipelines.


🎬 Full Demo

🚧 Coming soon: a 3-minute walkthrough showing how to pull daily new rental listings for one neighbourhood, set up a schedule, and route the dataset to a Google Sheet.


⚙️ Input

FieldTypeRequiredDescription
startUrlstringyesAny Kijiji.ca search or category URL: real estate, buy-sell, or any keyword search. Defaults to all real estate across Canada. Apply filters on the site, then paste the URL.
maxItemsintegernoCap on records returned. Free plan: 10. Paid: up to 1,000,000.
keywordstringnoOptional free-text keyword applied on top of the start URL.
categorystringnoPick a category from the dropdown (real estate or buy-sell sub-categories). Overrides the URL's category segment when set.
provincestringnoProvince filter (Ontario, Quebec, BC, etc.). Overrides the URL's province segment when set.
priceMin / priceMaxintegernoPrice range filter in CAD.
forSaleBystringnoOwner (private seller) or Business / Dealer.
sortBystringnoMost recent (default), least recent, lowest price, highest price.
fetchListingDetailsbooleannoIf true (default), fetches each listing's detail page to populate viewCount, full description, full-res photos, end date, and seller phone.
proxyConfigurationobjectnoApify Proxy. Datacenter is fine for most runs.

Example, all houses for sale across Canada, 50 most recent:

{
"startUrl": "https://www.kijiji.ca/b-houses-for-sale/canada/c35l0",
"maxItems": 50,
"sortBy": "DATE_DESC"
}

Example, Toronto apartments and condos for rent under $2,500, with detail enrichment:

{
"startUrl": "https://www.kijiji.ca/b-apartments-condos/city-of-toronto/c37l1700273",
"maxItems": 200,
"priceMax": 2500,
"fetchListingDetails": true
}

⚠️ Good to Know: Make sure the URL ends in /cXlY (e.g. c35l0 for houses-for-sale Canada-wide, c37l1700273 for Toronto apartments). That's how Kijiji encodes category and location, and the actor uses that segment to walk pagination.


📊 Output

Each record is a flat JSON object, drop it straight into Postgres, BigQuery, Sheets, or Make / Zapier without further processing.

🧾 Schema

FieldTypeExample
🖼️ imageUrlstringhttps://media.kijiji.ca/api/v1/...webp
📝 titlestringThe Riverfront Bliss: A bungalow near Merrickville
🔗 urlstringhttps://www.kijiji.ca/v-house-for-sale/.../1728118991
🆔 listingIdstring1728118991
💵 pricenumber656000
💱 currencystringCAD
🏷️ priceTypestringFIXED / CONTACT / SWAP_TRADE / GIVE_AWAY
📂 categoryIdnumber35
📂 categoryPathstringReal Estate > For Sale > Houses for Sale
👤 sellerTypestringprivate / dealer
👤 sellerIdstring68379442
👤 sellerNamestringCeci Alexander
sellerVerifiedbooleanfalse
☎️ sellerPhonestring780977xxxx
🌐 sellerWebsitestringfull URL or null
🔗 sellerProfileUrlstringhttps://www.kijiji.ca/o-profile/68379442/1
🔢 sellerListingsCountnumber1
🏙️ citystringMerrickville
🇨🇦 provincestringON
📍 addressstringMerrickville, ON K0G 1N0
🌐 latitudenumber44.88
🌐 longitudenumber-75.79
📷 imageCountnumber13
🖼️ imageUrlsstring[]full gallery
📃 descriptionstringfull text
🧩 attributesobject[][{name:"Bedrooms",value:"2 + Den"},...]
👁️ viewCountnumber1507
🎬 youtubeVideoIdstringYouTube ID or null
📊 statusstringACTIVE
📨 listingTypestringOFFER / WANTED
conditionstringNew / Used / null on real estate
📅 activationDatestring (ISO)2025-11-03T12:35:09.000Z
📅 endDatestring (ISO)2026-07-08T00:47:09.000Z
🕒 scrapedAtstring (ISO)2026-05-09T00:59:32.422Z

📦 Sample records


✨ Why choose this Actor

💎Capability
Fast. Pure HTTP, no headless browser, hundreds of listings per minute.
🇨🇦Canada-focused. Built for Kijiji.ca specifically, with all 13 provinces and territories supported.
🏘️Real estate ready. Houses, condos, rentals, rooms, commercial, land, all in one actor.
🔍Detail enrichment. Optional second pass for views, full description, all photos, seller phone.
🧱Stable. Reads Kijiji's own Apollo GraphQL state, not flaky CSS selectors.
🧰Filter-aware. Apply any filter on Kijiji.ca, the actor follows whatever URL you paste.
📊35+ fields per record. Title, price, bedrooms, bathrooms, sqft, lat / lng, images, attributes, views, status.

📊 244,360 real estate listings + 2.7M Buy & Sell listings live on source the day this README was written. The actor reads them the same way Kijiji's own front-end does.


📈 How it compares to alternatives

ApproachCostCoverageRefreshFiltersSetup
⭐ Kijiji.ca Listings Scraper (this Actor)Pay-as-you-go, free 10-item previewAll Kijiji verticals, all of CanadaLive at run timeCategory, location, keyword, price, seller type, sortPaste URL, click run
Manual browsingTime onlyWhatever you click throughLiveWhatever you apply on the siteFree, but hours of clicking per day
Paid live APIsSubscription, often $$$Varies by providerLiveProvider-definedAccount, API keys, integration code
Legacy community dumpsFree or one-timeStale snapshotsDays to months oldNoneManual download
DIY scraperEngineering timeWhatever you buildWhatever you maintainWhatever you buildDays of dev plus ongoing fixes

A scheduled run on this actor replaces all four alternatives for monitoring Kijiji at any cadence.


🚀 How to use

  1. 🔑 Create a free Apify account. Takes 30 seconds, $5 starter credit included.
  2. 🔍 Find the URL. Go to kijiji.ca, pick your vertical (real estate or buy-sell), apply filters (province, category, keyword, price), and copy the URL from the address bar.
  3. ▶️ Paste and run. Drop the URL into startUrl, set maxItems, hit Start. The actor figures out the rest.
  4. 📥 Download. Export the dataset as JSON, CSV, or Excel from the Apify console.
  5. 🔁 Schedule. Re-run on a cron to keep your dataset fresh. Kijiji listings rotate fast, especially rentals.

⏱️ Total time to first dataset: under 2 minutes.


💼 Business use cases

🏘️ Real estate and rentals

  • Daily new rental listing alerts by neighbourhood
  • Track asking rents and price drops over time
  • Off-market lead discovery before MLS hits
  • Build hyperlocal market reports for buyers and sellers

🏠 Property management

  • Monitor competitor rental supply and pricing
  • Source roommate and short-term rental listings
  • Track vacancy patterns and seasonal demand
  • Auto-populate CRM with private-seller leads

🛍️ Retail and resale

  • Track competitor pricing on used electronics and furniture
  • Identify undervalued items to resell on Amazon CA or eBay
  • Monitor inventory turnover signals in your category
  • Source supplier leads from business sellers

🚗 Auto and dealer

  • Benchmark private-seller vehicle prices vs your dealership
  • Spot trade-in opportunities by make, model, year, region
  • Track depreciation curves with longitudinal pulls
  • Lead-gen on private sellers in your service area

🌟 Beyond business use cases

Data like this powers more than commercial workflows. The same structured records support research, education, civic projects, and personal initiatives.

🎓 Research and academia

  • Empirical datasets for papers, thesis work, and coursework
  • Longitudinal studies tracking changes across snapshots
  • Reproducible research with cited, versioned data pulls
  • Classroom exercises on data analysis and ethical scraping

🎨 Personal and creative

  • Side projects, portfolio demos, and indie app launches
  • Data visualizations, dashboards, and infographics
  • Content research for bloggers, YouTubers, and podcasters
  • Hobbyist collections and personal trackers

🤝 Non-profit and civic

  • Transparency reporting and accountability projects
  • Advocacy campaigns backed by public-interest data
  • Community-run databases for local issues
  • Investigative journalism on public records

🧪 Experimentation

  • Prototype AI and machine-learning pipelines with real data
  • Validate product-market hypotheses before engineering spend
  • Train small domain-specific models on niche corpora
  • Test dashboard concepts with live input

🔌 Automating the Kijiji Listings Scraper

Wire this into your stack with a few lines of code or no code at all.

  • 📦 Node.js SDK. Trigger runs and stream results to your warehouse, see Apify SDK docs.
  • 🐍 Python SDK. Same idea for Python pipelines, see Apify Python SDK.
  • 📚 Full API docs. docs.apify.com covers schedules, webhooks, and integrations.

Schedules are the most common automation pattern here. Run hourly for fresh rental alerts, daily for new listings in your for-sale category, weekly for trend snapshots. Pair with the Apify webhook to push each new run's dataset into your warehouse, Slack, or CRM the moment it finishes.


❓ Frequently Asked Questions


🔌 Integrate with any app

  • Make - run the actor on a schedule, route results to a sheet, Airtable, or CRM.
  • Zapier - trigger Slack, email, or Notion when new listings match a filter.
  • Slack - drop a daily digest of new listings into a channel.
  • Airtable - sync the dataset directly into a base.
  • Google Sheets - sheet-as-database for non-technical teams.
  • HubSpot - push private-seller leads into your CRM pipeline.

💡 Pro Tip: browse the complete ParseForge collection for more Canada-specific and global classifieds and real estate scrapers.


🆘 Need Help? Open our contact form and we will get back to you within one business day.


⚠️ Disclaimer: This actor scrapes only publicly available listing pages on Kijiji.ca. It does not bypass any access controls, does not collect private user data, and does not republish copyrighted content. Users are solely responsible for complying with Kijiji's Terms of Service and all applicable Canadian privacy and competition law (including PIPEDA). ParseForge is not affiliated with, endorsed by, or sponsored by Kijiji or its parent companies.