JLL Scraper: Commercial Property Listings for Lease & Sale
Pricing
from $20.00 / 1,000 full listings
JLL Scraper: Commercial Property Listings for Lease & Sale
Scrape property.jll.com, JLL commercial real estate listings in 14 markets: office, industrial, retail and land for lease or sale with size in m2 and sq ft, coordinates, photos, floor plans, brochures and available suites. Sitemap, market summaries, new-listing monitor. No proxy. Export JSON, CSV.
Pricing
from $20.00 / 1,000 full listings
Rating
0.0
(0)
Developer
RecordsData
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
3 days ago
Last modified
Categories
Share

π’ JLL Scraper - Commercial Property Listings for Lease and Sale - RecordsData
π Export JLL commercial real estate in minutes. Read property.jll.com, the listing portal of JLL (Jones Lang LaSalle), in 14 markets: about 13,150 offices, industrial buildings, warehouses, retail units, land plots and more for lease or sale, with size in m2 and sq ft, coordinates, photos, floor plans, brochures and the suites a building has available. No login, no browser and no proxy setup needed.
JLL Scraper is an Apify Actor that collects public commercial property listings from property.jll.com in 14 markets (United States, Canada, Mexico, Brazil, Chile, Colombia, Argentina, Costa Rica, Peru, Uruguay, Puerto Rico and South Africa) and returns them as JSON, CSV or Excel with size in m2 and sq ft, coordinates, photos, floor plans, brochures, available suites and JLL business contacts. The dataset schema holds 81 columns across five record types, a detailed listing carries 32 to 46 fields, and a 3-listing run finishes in about 6 seconds.
π What the JLL Scraper does
The Actor reads the same public pages every visitor of property.jll.com sees. Each page carries its data as embedded JSON, so rows are exact and no browser is needed. Four modes cover the site.
- search: listings for the markets, deal type (rent, sale or both), property types and places you choose. The Actor reads the search pages JLL publishes for those combinations (for example office space for rent in Houston) and opens every listing for the full row.
- sitemap: every listing address the site publishes in a market, newest first, with the date the site last changed it. This is the way to reach the full catalog: the United States alone has about 10,740 listings. Switch off Open every listing to get a cheap address list, or leave it on for full rows.
- urls: paste JLL listing addresses (any market prefix such as
/en-ca/or/pt-br/) or search page addresses. Several kinds can be mixed. - market: one summary row per search page: how many listings JLL shows, the market text JLL writes for the page and the average, median, smallest and largest size of the listings shown.
π‘ Why it matters: JLL is one of the largest commercial brokers in the world, and its portal is one of the few places that shows lease and sale offers for offices, industrial and retail space in the United States, Canada and Latin America in one structure. Prices are often hidden (priceOnRequest), so size, location, type, availability dates and broker office are the data that really move a deal list.
| π― Target audience | π‘ Primary use cases |
|---|---|
| Tenant representatives and brokers | Build a shortlist of available office and industrial space by city |
| Investors and lenders | Track listings, sizes and sale prices by market and type |
| Site selection and expansion teams | Compare vacant space, warehouse stock and land plots across countries |
| Proptech and data teams | Feed a CRM, a map or a dashboard with a daily listing feed |
π Output
Every row has a recordType: listing (card data from the search page, fast), listing-detail (full listing page), listing-url (sitemap address), availability (one suite, floor or unit of a listing) or market-stat (search page summary). Fields without a value are left out, never filled with null. Column order is fixed: image first, identity and deal next, then location, size, text, media, the JLL business data and scrapedAt last. Every row names its country, language and, when JLL shows a price, its currency.
Real listing-detail row (industrial building for sale, Toronto), shortened:
{"imageUrl": "https://res.cloudinary.com/jll-global-sandbox/image/upload/v1783625120/MyListing/public/prod/upaaingijq9nhnoyx0n8.png","recordType": "listing-detail","title": "320-328 Nantucket Boulevard","listingId": "692332","url": "https://property.jll.com/en-ca/listings/320-328-nantucket-boulevard","sourceSite": "property.jll.com","country": "CA","language": "en","operation": "sale","operations": ["sale"],"propertyType": "industrial","buildingClass": "C","labels": ["Sale"],"price": 15500000,"priceFormatted": "CAD 15,500,000","currency": "CAD","priceBasis": "unspecified","priceTenure": "sale","address": "320-328 Nantucket Boulevard","city": "Toronto","region": "Ontario","state": "ON","postalCode": "M1P 2P4","locationDescription": "Greater Toronto Central","latitude": 43.762048,"longitude": -79.27728,"areaBuilt": 3900.5,"areaSqft": 41985,"areaSourceUnit": "sq ft","highlights": ["Freestanding industrial building within premium Scarborough location (Hwy 401 & Kennedy Rd)", "Flexible layout allows demising into smaller units"],"imageCount": 14,"agencyName": "JLL","agencyUrl": "https://www.jll.com","isPrivateSeller": false,"officeCities": ["Toronto"],"brokerCount": 2,"scrapedAt": "2026-10-11T13:56:24.400Z"}
Real availability row (an office suite in Houston), shortened:
{"recordType": "availability","title": "Suite 1000, floor 10","listingId": "200943","availabilityId": "24360","url": "https://property.jll.com/listings/20-greenway-plaza-20-greenway-plz-houston","country": "US","operation": "rent","propertyType": "office","spaceUse": "Office","availabilityType": "Lease","priceOnRequest": true,"address": "20 Greenway Plz","city": "Houston","region": "Texas","suite": "1000","floorName": "10","areaBuilt": 2337.7,"areaSqft": 25163,"leaseTerm": "Negotiable","availableFrom": "Immediate","agencyName": "JLL"}
Real market-stat row (office space for rent in Washington D.C.), text shortened:
{"recordType": "market-stat","title": "Office space for rent in Washington D.C.","url": "https://property.jll.com/rent-office/washington-dc","country": "US","operation": "rent","propertyType": "office","city": "Washington","region": "District of Columbia","listingCount": 123,"sampleSize": 50,"avgArea": 402.6,"medianArea": 240.4,"minArea": 81.3,"maxArea": 5107.3,"areaUnit": "mΒ²"}
Field groups of a detailed row, with the type and a real value:
| Field | Type | Example |
|---|---|---|
listingId, url, title | string | 692332, the /listings/ address, the building name |
operation, operations, propertyType, propertyTypes, labels | string or array | sale, industrial, Sale |
price, currency, priceFormatted, priceBasis, pricePerM2, rentPeriod | number or string | 15500000, CAD, per-area |
priceOnRequest | boolean | true when JLL hides the price |
address, city, region, state, postalCode, submarket | string | Toronto, Ontario, M1P 2P4 |
latitude, longitude | number | 43.762048, -79.27728 |
areaBuilt, areaBuiltMax, areaLand, areaSqft, areaSqftMax | number | 3900.5 m2, 41985 sq ft |
description, highlights, amenities, brochures, floorPlans | text or array | listing text and PDF links |
images, imageCount, virtualTourUrls | array or number | photo links, never downloaded |
agencyName, agencyPhone, agencyLicenseNumber, officeCities, brokerCount | string or number | JLL, the business line, the license entity |
β¨ Why choose this Actor
- Five record types in one Actor: cards, full listings, sitemap addresses, available suites and market summaries.
- 14 markets, 4 languages: country and language are named on every row, and text stays in the language of the market.
- Exact sizes: area in m2 and in sq ft, the range maximum, and the unit JLL used. Implausible upstream values (a plot listed with billions of hectares) are dropped, not passed on.
- Honest prices: the price as JLL shows it, with currency, rent period and whether it is per area. Hidden prices are never guessed.
- Business contacts only by default: the JLL business phone, license entity and office cities come with every listing. Names and e-mails of individual brokers need a switch.
- Monitor mode: a scheduled run returns only listings it has not delivered before.
- Gentle on the site: one shared request pace of about one per second, robots.txt rules checked on every address.
π How it compares to alternatives
One other Actor on the Apify Store reads the same portal, read on 2026-10-11:
| This Actor | rigelbytes/jll-scraper | |
|---|---|---|
| Source | property.jll.com, 14 markets | property.jll.com, markets not listed |
| Fields | 81 columns, 32 to 46 per detailed listing | 24 published fields |
| Record types | Listing, detail, sitemap address, available suite, market summary | Not listed |
| Full catalog by sitemap | Yes, newest first with change date | Not listed |
| Available suites and floors | Yes, with size, lease term and date | Not listed |
| Size in m2 and sq ft | Both, with range maximum and source unit | One area field, unit not stated |
| Monitor for new listings | Yes | Not listed |
| Usage | New | 89 runs in total, 0 users in the last 30 days |
This Actor does not cover the white label sites JLL builds for retail and banking clients on the same platform, and it returns no personal contact data unless you switch it on.
π How to use
- Create a free account at console.apify.com ($5 of monthly credit) and open the Actor.
- Choose What to collect. For a first test keep
search, pick a market, a deal type and a property type, and set Maximum items to 10. - Optionally name places (
houston,texas,toronto,sao paulo) and add price or size limits. - Press Start. Open the dataset when the run finishes and download JSON, CSV, Excel, XML or HTML.
- To watch a market, turn on Only new listings, give the search a Monitor name and schedule the Actor.
A minimal JSON input:
{ "mode": "search", "markets": ["us"], "tenure": "rent", "propertyTypes": ["office"], "locations": ["houston"], "maxItems": 50 }
πΌ Business use cases
- π¬ Tenant representation and brokerage: list every available suite in a city with its size, floor, lease term and availability date, and sort by size or date.
- π Investors and lenders: sale listings by market and type with price where JLL publishes one, plus the market summary rows for supply by city.
- π Industrial and logistics site selection: warehouses, industrial buildings and land in the United States, Canada, Mexico, Brazil, Chile, Colombia and Argentina, with coordinates ready for a map.
- π€ Proptech and data teams: a daily feed of new and changed listings into a CRM, a map or a data warehouse.
π Automating the JLL Scraper
Schedule runs in Apify Console and send results to Make, Zapier or n8n, Slack or e-mail alerts, Google Sheets, Google Drive, Airbyte or any webhook. With the Python client:
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("YOUR_USERNAME/jll-scraper").call(run_input={"mode": "search", "markets": ["us"], "locations": ["houston"], "maxItems": 30})rows = client.dataset(run["defaultDatasetId"]).list_items().items
π Beyond business use cases
- π Research: study how much office and industrial space is offered per city, how sizes are distributed and how listings change over weeks.
- π§ Personal projects: find a workshop, a studio or a small office near a place, with coordinates and photos.
- π€ Non-profits and local government: map available space for incubators, community projects or economic development plans.
- π§ͺ Experimentation: test geocoding, map tools and area conversions on real commercial data.
π€ Ask an AI assistant about this scraper
The Apify MCP server (mcp.apify.com) exposes this Actor as a tool, so Claude, ChatGPT or another MCP client can run it from a chat. The agent reads the input schema and fills the fields itself.
Example prompt: "Using the JLL Scraper, get 30 industrial listings for sale in Canada with details, sort them by size and tell me which ones show a price."
Tool description for an agent: "Collects public commercial real estate listings from property.jll.com for lease or sale in 14 markets. Input: mode (search, sitemap, urls, market), markets, tenure, propertyTypes, locations, price and size limits, maxItems. Returns typed rows with size in m2 and sq ft, coordinates, photos, brochures, available suites and JLL business data."
Frequently Asked Questions
π’ What data can I scrape from JLL property listings?
Commercial listings for lease and sale: office, industrial, warehouse, retail, land, medical, multifamily, lab, flex R&D and data center. Each detailed listing includes the address, coordinates, size in m2 and sq ft, the description and highlights, amenities, photos, brochures and floor plans, and the JLL office and license entity. Available suites come as their own rows when you turn on Include available spaces.
π How do I scrape JLL listings for one city?
Add the city to Places, for example houston, chicago, toronto or sao paulo, and pick the market. Search and market modes match the names of the search pages JLL publishes, such as office space for rent in Houston. A place with no search page returns one free error row that lists places that do have one, and sitemap mode can match the words of a listing address instead.
π’ How many listings can one search return?
Up to 50 per search page, because JLL shows at most 50 cards on a page even when it reports more (Washington D.C. office space for rent reports 123 listings and shows 50). Search by city, type and deal type to cover more, or use the sitemap mode, which has no such ceiling and lists every listing address of a market: about 13,150 across all markets and about 10,740 in the United States.
π·οΈ Why do most rows have no price?
JLL hides the price of most listings and shows "price on request" instead. In a check of 31 detailed listings, 5 showed a price. The Actor sets priceOnRequest to true in that case and never invents a figure. When a price is shown it keeps the currency and tells you whether it is a total, a yearly or monthly rent, or a price per sq ft or per m2.
π Which countries and languages are covered?
The United States, Canada (English and French), Mexico, Brazil (Portuguese and English), Chile, Colombia, Argentina, Costa Rica, Peru, Uruguay, Puerto Rico and South Africa. Every row has country and language. Text such as descriptions stays in the language of the market. Some markets publish few search pages and Chile publishes none, so for those use sitemap mode.
π§© What is the difference between listing, listing-detail and availability rows?
listing rows come from the search page: title, address, type, size, coordinates and photos. listing-detail rows open the listing page and add the description, highlights, amenities, brochures, floor plans, license data and broker count. availability rows list one suite, floor or unit of a building with its own size, lease term and available date.
π§ Does it return names, phones or e-mails?
By default only business data: the JLL name and website, the business phone, the license entity and region, the office cities and the number of brokers. JLL brokers are individuals, so their name, job title, business e-mail and phone are returned only when you turn on Include broker details. Use them in line with the privacy rules that apply to you.
π How do I get only new listings?
Turn on Only new listings and give the search a Monitor name. The next run skips listings it already delivered and you are not charged for skipped ones. In sitemap mode a listing the site changed since is delivered again. Schedule the Actor daily for an alert feed.
π‘οΈ Do I need a proxy or an API key?
No. The site sits behind a bot filter that blocks plain command-line clients, but the Actor's own client is accepted from Apify servers without a proxy. In 21 cloud test runs that reached the site it made 112 requests and none was refused. The Actor keeps to about one request per second for all workers together, retries a refusal with a pause, and only if the site keeps refusing does it switch to the Apify datacenter proxy.
π Which units and currencies are used?
Size is given in square meters (areaBuilt) and square feet (areaSqft) for every listing, plus areaSourceUnit, the unit JLL used. Prices keep the currency JLL shows (USD, CAD, BRL, MXN, CLP and others) next to the numeric price. Dates are ISO 8601.
π§ͺ What happens if my input is wrong or nothing matches?
A wrong value, such as an unknown market or a price range without a currency, ends the run as succeeded with one free error row that says what to fix. A search with no matches ends as succeeded with no rows. Neither is charged. Free plans return up to 10 items per run and paid plans up to 1,000,000, and you can export JSON, CSV, Excel, XML, HTML or RSS.
β±οΈ How fast is it?
A 3-listing run finished in a median of 6.5 seconds in 18 cloud runs (slowest 16.7 seconds) at 256 MB, with a peak memory use of 58 MB. Full detail pages are read at about one per second, so 100 detailed listings take roughly two minutes.
π Integrate with any app
Results can be pulled by API, pushed to a webhook when a run ends, or synced to Google Sheets, Airtable, BigQuery, Snowflake or a database through Apify integrations. See the Integrations tab of the Actor.
βοΈ Limits and legal notes
- The Actor reads public pages that need no login and follows the robots.txt rules of the site: no search queries, no pages the file disallows.
- Search depth is 50 listings per search page. Sitemap mode lists every address but needs one request per listing for full rows.
- Most listings show no price, a few have sizes only as a range, and the site sometimes shows inconsistent figures for the same building; the Actor returns what the page says.
- White label sites that JLL runs for other companies are not covered.
- The site terms reserve the rights to its content: use the data in line with them and with the privacy law that applies to you. Photos and documents are returned as links, never downloaded.
π Recommended Actors
- RecordsData collection: other real estate and public data scrapers by the same team.
π Need help? Write to contact.punkrecordsdata@gmail.com or open an issue in the Issues tab.
β οΈ Disclaimer: This is an independent tool and is not affiliated with, endorsed by or sponsored by JLL (Jones Lang LaSalle). JLL is a trademark of its owner. It collects only publicly available data.