LoopNet Scraper — Commercial Listings for Sale & Lease avatar

LoopNet Scraper — Commercial Listings for Sale & Lease

Pricing

from $0.42 / 1,000 listings

Go to Apify Store
LoopNet Scraper — Commercial Listings for Sale & Lease

LoopNet Scraper — Commercial Listings for Sale & Lease

Scrape LoopNet commercial real estate for sale or lease: address, GPS, price or rent, sizes, year built, class, cap rate, brokers, plus optional broker phone, email, owner and Walk Scores. Search by city, state and property type, watch new listings or paste listing IDs. Export to JSON, CSV or Excel.

Pricing

from $0.42 / 1,000 listings

Rating

0.0

(0)

Developer

Nice Dev

Nice Dev

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

a day ago

Last modified

Features

Limited permissions

Share

🏢 What is LoopNet Scraper?

LoopNet Scraper extracts commercial real estate listings from LoopNet — for sale and for lease — and, as options, each broker's phone number and e-mail address, the owner or manager of the property and its Walk, Transit, Bike and Drive scores. Every listing comes with its address, GPS position and price or rent as LoopNet shows it; sizes, year built, building class and cap rate when the listing states them. Built for brokers, investors, lenders and data teams who need LoopNet leads and comps in a spreadsheet.

Type a city and state (Austin, TX) and pick the property types, or paste LoopNet listing IDs or URLs, click Start, and download the listings in JSON, CSV or Excel. No login, nothing to set up, no limit of 750 results per search. Measured on Apify: 1,000 listings with the brokers' phone and e-mail, the owner and the scores in about 7 minutes; 1,000 listings without options in about 2.5 minutes; the 200 newest listings of a state in under 30 seconds.

📋 What data can you extract from LoopNet?

One item per listing, 86 fields (22 of them come from LoopNet's full listing page and stay empty for now, see Known limitations):

CategoryWhat you get
🏷️ Listingtitle, building name, link, LoopNet id, sale / lease, property type and subtype — For Lease, Office, Medical
📍 Locationfull address, street, city, state, ZIP code, country, latitude and longitude — Austin, TX 78705
💰 Priceasking price (sale), price or rent as shown, rent per SF per year (lowest and highest), price per SF, cap rate, deal score and its reasons, currency — $46.34 /SF/YR, 5.73%
🏗️ Buildingspace available, number of spaces, smallest and largest space, building size, lot size, year built, building class — 725 SF, Class B, 1920
📞 Brokersevery broker of the listing with company, city, phone and e-mail (option) — 512-555-0142
🏠 Ownerowner or manager of the property: name, website, description (option; rare: about 1 listing in 700, measured November 2026)
🚶 ScoresWalk, Transit, Bike and Drive scores, 0-100 (option)
📝 Text and photoshort description, highlights, photo link
🕒 Datesday LoopNet last changed the listing

Every field, with an example, is listed in the Output section below.

✅ Why use LoopNet Scraper?

  • 📞 Broker phone AND e-mail as an option, for every listing that has one, one lookup per broker for the whole run — not just a name.
  • 🏠 Owner or property manager and location scores as options too, charged only on the listings that get them.
  • 🚫 No 750-result limit: a whole state, or the whole of LoopNet, in one search — newest changes first.
  • 🗂️ Several searches in one run: cities × property types, with a cap per search so that one big market cannot eat the whole budget.
  • 🆕 New listings of the last 30 days as a source of its own, newest first — made for scheduled runs.
  • 🎯 Filters: price, building size, space size for lease, property subtype, cap rate, year built, building class, lot size, rent per SF, number of units, listing tags, keywords, with a broker phone only.
  • 🔔 Monitoring and price drop alerts built in: tick Only new listings, schedule the Actor, and each run returns (and charges) only what it has never delivered before. Tick Track price changes too, and the listings whose price moved come back with the old price and the change in %, at no extra cost.
  • 🔌 API, scheduling, integrations (Make, Zapier, n8n, Google Sheets…), JSON/CSV/Excel export via the Apify platform.

🚀 How to scrape LoopNet

  1. Create a free Apify account.
  2. Open LoopNet Scraper, choose For sale or For lease, type a Location (Austin, TX, TX, Toronto, ON, London, United Kingdom) and pick the Property types (empty = all commercial real estate).
  3. Or list Listing IDs, or paste LoopNet listing or search URLs into Start URLs.
  4. Tick Broker phone and e-mail, Owner or property manager and Walk, Transit, Bike and Drive scores if you need them (all three are off by default).
  5. Set Max listings (100 by default, 0 = no limit) — and Max listings per search when you run several searches — then click Start.
  6. Download the dataset in JSON, CSV, Excel or via API.

💰 How much does it cost to scrape LoopNet?

This Actor uses pay per event pricing: $0.45 per 1,000 listings without a subscription, $0.44 on Bronze, $0.43 on Silver and $0.42 on Gold and above; the options, per 1,000 listings that get them: broker phone and e-mail $0.89 ($0.83 on Gold), owner or manager $2.49 ($2.34 on Gold), Walk / Transit / Bike / Drive scores $0.047 ($0.017 on Gold); $0.02 per run start; a listing a filter drops $0.04 per 1,000 — see the Pricing tab. From November 20, 2026 the options get cheaper: broker phone and e-mail $0.45 ($0.21 on Gold), owner or manager $2.29 ($2.26 on Gold). Example: 1,000 office listings with their brokers' phone and e-mail ticked cost $0.45 + $0.89 + $0.02 = $1.36 without a subscription ($0.92 from November 20). An option you ticked but that a listing does not have (no owner shown, no scores for its place) is not charged. Platform usage (compute, proxy) is included in the price.

⚙️ Input

{
"listingType": "for-lease",
"location": "Austin, TX",
"propertyTypes": ["office", "flex"],
"includeBrokerContact": true,
"maxItems": 200
}

Several markets, a cap per search, filters, owner and scores, only the listings not delivered before:

{
"listingType": "for-lease",
"propertyTypes": ["office"],
"locations": ["Dallas, TX", "Houston, TX", "Austin, TX"],
"maxItemsPerQuery": 100,
"minRentPerSfYear": 20,
"buildingClasses": ["A", "B"],
"includeOwner": true,
"includeScores": true,
"onlyNew": true,
"stateKey": "texas-office-lease"
}

The listings LoopNet added in the last 30 days in two states, investment sales only:

{
"source": "newListings",
"listingType": "for-sale",
"locations": ["TX", "FL"],
"minCapRate": 6,
"maxItems": 500
}

Or with your own IDs and URLs:

{
"listingIds": ["41920405"],
"startUrls": [{ "url": "https://www.loopnet.com/search/retail-space/miami-fl/for-lease/" }],
"maxItems": 500
}
FieldNotes
listingIds, startUrlsLoopNet listing IDs (the number at the end of a listing URL, 41920405) and URLs; a pasted search URL (https://www.loopnet.com/search/office-space/austin-tx/for-lease/) is redone with its place, property type and deal. They replace the search fields below.
sourcesearch (default) = every listing of each location × property type, newest change first; newListings = the listings LoopNet added in the last 30 days.
listingTypefor-sale (default) or for-lease; auctions with the clientProxy access only.
propertyTypesoffice, retail, industrial, flex, land, multifamily, hospitality, healthCare, restaurant, specialPurpose, coworking; empty = all. One search per type. LoopNet has no lease search for multifamily, hospitality and specialPurpose, and coworking is for lease only.
location, locationsAustin, TX, TX, Texas, Toronto, ON, London, United Kingdom, USA, Canada, or a city alone (Austin: every state); locations adds more places (max 500 searches per run). Empty = everywhere. ZIP codes and counties are not supported.
includeBrokerContactEach broker's phone and e-mail (default off, charged as the broker-contact event; requirePhone switches it on).
includeOwnerOwner or manager of the property: name, website, description — rare (about 1 listing in 700, measured November 2026); charged as the owner-profile event only when there is one.
includeScoresWalk, Transit, Bike and Drive scores (charged as the location-scores event).
includeLimitedListingsAlso save the listings LoopNet publishes with almost nothing (no broker, price and size on request); skipped by default, never charged.
maxItemsStop after this many listings for the whole run (0 = unlimited).
maxItemsPerQueryCap for EACH search (location × property type, or search URL); the listing IDs count as one search. 0 = no per-search cap.
minPrice, maxPrice, minBuildingSize, maxBuildingSize, minCapRate, maxCapRate, minYearBuilt, maxYearBuilt, minLotSizeAcres, maxLotSizeAcres, minRentPerSfYear, maxRentPerSfYear, minUnitCount, maxUnitCountRanges (price in US dollars, sizes in SF, lot in acres, cap rate in %). A price LoopNet shows rounded ($1.7M) counts as 1,700,000. A listing without the value is dropped once a bound is set.
minSpaceSize, maxSpaceSizeSize in SF of a space to lease: a listing is kept when the size range of its spaces touches yours. A listing without a space size, so every sale, is dropped.
propertySubtypesKeep only the listings whose property subtype contains one of these texts (Warehouse, Medical, Strip Center…; case and accents ignored). A listing without a subtype is dropped.
buildingClassesA, B, C, F; once one is chosen, a listing that states no class (about 2 in 3) is dropped.
listingTagsKeep only the listings that carry at least one of the tags you pick (owner-user, renovated, motivated-seller, medical, income-producing, development-site, net-lease), read from the listing description.
keywords, excludeKeywordsKeep only the listings whose title, highlights or description contain one of keywords; drop those whose title, building name, highlights or description contain one of excludeKeywords as WHOLE words (case and accents ignored): art drops "Art deco", not "Smart building"; several words in one entry (hand made) must appear together; Chinese, Japanese, Korean, Thai, Lao, Khmer and Burmese words are found anywhere in the text (no spaces there).
requirePhoneKeep only the listings with a broker phone number (switches includeBrokerContact on: the option is charged).
onlyNew, stateKey, resetStateMonitoring: only the listings never delivered under this memory key; resetState forgets the memory.
trackPriceChangesWith onlyNew: a listing already delivered comes back, whole, when its asking price (or lowest rent) has moved, with previousPrice, priceChange, priceChangePct and priceChangedAt. No extra charge.
AdvancedaccessMode (standard by default; clientProxy = LoopNet's search pages through your own unblocking proxy, each listing as its search card shows it; no pasted listing, and of the filters only excludeKeywords), proxyConfiguration (Apify proxy by default, included in the price; the residential proxy is not available), maxConcurrency, maxRequestsPerMinute, minRequestIntervalMs, maxRequestRetries, debugLog.

📦 Output

A real item (an office for lease, with the broker contact and scores options; the broker's contact replaced by an example):

{
"id": "42302333",
"url": "https://www.loopnet.com/Listing/42302333/",
"title": "1006 W 31st St, Austin, TX 78705",
"propertyName": null,
"listingType": "For Lease",
"propertyType": "Office",
"propertySubtype": "Office",
"address": "1006 W 31st St, Austin, TX 78705",
"street": "1006 W 31st St",
"city": "Austin",
"state": "TX",
"postalCode": "78705",
"country": "US",
"latitude": 30.30064,
"longitude": -97.74664,
"price": null,
"priceText": "$46.34 /SF/YR",
"sizeText": "725 SF",
"currency": "USD",
"pricePerSf": null,
"capRate": null,
"discountToMarketPct": null,
"capRateSpread": null,
"dealScore": null,
"dealReasons": [],
"previousPrice": null,
"priceChange": null,
"priceChangePct": null,
"priceChangedAt": null,
"listingTags": [],
"saleType": null,
"saleCondition": null,
"minRentPerSfYear": 46.34,
"maxRentPerSfYear": 46.34,
"spaces": [],
"spacesCount": 1,
"unitCount": null,
"minSpaceSf": 725,
"maxSpaceSf": 725,
"totalSpaceAvailableSf": 725,
"buildingSizeSf": null,
"typicalFloorSizeSf": null,
"lotSizeAcres": null,
"lotSize": null,
"yearBuilt": 1920,
"yearRenovated": null,
"buildingClass": "B",
"stories": null,
"tenancy": null,
"zoning": null,
"parking": null,
"parcelNumber": null,
"landAssessment": null,
"improvementsAssessment": null,
"totalAssessment": null,
"propertyFacts": null,
"tenants": [],
"highlights": [],
"amenities": [],
"description": "Bright, remodeled and available immediately! Formerly used as an art gallery and an office for tech start-up. Ideal for professional…",
"brokerName": "John Carter",
"brokerCompany": "Realty Austin - North",
"brokerPhone": "512-555-0142",
"brokerEmail": "john.carter@realty.test",
"brokerProfileUrl": null,
"brokers": [
{
"name": "John Carter",
"company": "Realty Austin - North",
"city": "Austin",
"region": "TX",
"profileUrl": null,
"photoUrl": null,
"phone": "512-555-0142",
"email": "john.carter@realty.test"
}
],
"ownerName": null,
"ownerWebsite": null,
"ownerDescription": null,
"walkScore": 80,
"transitScore": 50,
"bikeScore": 80,
"driveScore": 60,
"images": ["https://images1.loopnet.com/i2/zYd7-MXqzioDtnzIF22SJdPjTL7wzDhZXLvyoX-8Bt4/110/image.jpg"],
"imageUrl": "https://images1.loopnet.com/i2/zYd7-MXqzioDtnzIF22SJdPjTL7wzDhZXLvyoX-8Bt4/110/image.jpg",
"brochures": [],
"matterportTours": [],
"videos": [],
"isAuction": null,
"isActive": true,
"publishedAt": null,
"daysOnMarket": null,
"updatedAt": "2026-09-24",
"detailLevel": "summary",
"searchUrl": "https://www.loopnet.com/search/office-space/austin-tx/for-lease/",
"scrapedAt": "2026-09-26T07:02:05.240Z"
}

You can download the dataset in various formats such as JSON, HTML, CSV or Excel.

All 86 fields

FieldsWhat you get
id, url, title, propertyName42302333, the listing link, 1006 W 31st St, Austin, TX 78705, Miron Place
listingType, propertyType, propertySubtype, isAuction, isActiveFor Lease, Office, Medical, null, true
address, street, city, state, postalCode, country, latitude, longitude1006 W 31st St, Austin, TX 78705, US, 30.30064, -97.74664
price, priceText, sizeText, currency, capRate, saleType1800000, $46.34 /SF/YR, 725 SF, USD, 5.73, Investment or Owner User
pricePerSf, discountToMarketPct, capRateSpread, dealScore, dealReasons300, 23.4, 1.4, 62, Price per SF 23% below the Office median (sales only, see the FAQ)
previousPrice, priceChange, priceChangePct, priceChangedAt2000000, -150000, -7.5, 2026-11-06T09:00:00.000Z (only with Track price changes, on a listing that comes back because its price moved)
unitCount, listingTags24, ["income-producing", "net-lease"] (housing units of a multifamily listing; keyword tags read from the description, see the FAQ)
minRentPerSfYear, maxRentPerSfYear, spacesCount, minSpaceSf, maxSpaceSf, totalSpaceAvailableSf46.34, 1, 725
buildingSizeSf, lotSizeAcres, lotSize, yearBuilt, buildingClass6000, 3.58, 3.58 AC, 1920, B
brokerName, brokerCompany, brokerPhone, brokerEmail, brokersevery broker with company, city, phone and e-mail (phone and e-mail only with the option Broker phone and e-mail)
ownerName, ownerWebsite, ownerDescriptionowner or manager of the property (option)
walkScore, transitScore, bikeScore, driveScore80, 50, 80, 60 (option)
description, highlights, images, imageUrlshort description, notes, photo link (not downloaded)
updatedAt, detailLevel, searchUrl, scrapedAt2026-09-24, summary, the LoopNet search of the same place, type and deal, ISO timestamp
saleCondition, spaces, typicalFloorSizeSf, yearRenovated, stories, tenancy, zoning, parkingempty for now: LoopNet's full listing page, not available at the moment
parcelNumber, landAssessment, improvementsAssessment, totalAssessment, propertyFacts, tenants, amenitiesempty for now: LoopNet's full listing page, not available at the moment
brokerProfileUrl, publishedAt, daysOnMarketempty for now: LoopNet's full listing page, not available at the moment
brochures, matterportTours, videoslinks to the PDF documents (brochure, floor plans), Matterport 3D tours and videos — empty for now: LoopNet's full listing page, not available at the moment

💡 Tips

How to get more results

There is no limit per search: a whole state (TX) or the whole of LoopNet (empty location) is read, newest change first, until Max listings. Split a big run into cities (locations) and property types (propertyTypes) with maxItemsPerQuery to get a bit of every market.

How to reduce costs

The price is per listing, so the levers are maxItems, maxItemsPerQuery, the filters (a filtered-out listing costs only the filter fee, lower than a listing), the options you tick, and onlyNew for recurring runs (you never pay twice for the same listing).

Several searches in one run

Fill propertyTypes and / or locations: the Actor runs one search per property type × location (3 types × 4 cities = 12 searches, up to 500 per run). The single location field still works and is added to the list. A listing found by several searches is saved — and charged — once. Set maxItemsPerQuery to give every search its own cap: without it the first searches can use up the whole maxItems budget.

Monitoring: only the new listings

Tick Only new listings (onlyNew) and schedule the Actor — ideally with source: newListings. The first run returns everything; each later run skips the listings already delivered: they are not saved and not charged. The memory lives in a named key-value store of your account (loopnet-listings-scraper-seen, up to 150,000 listings per key) and is only updated with listings that really reached the dataset, so a failed run never hides anything. Give each schedule its own stateKey (two schedules sharing a key would hide each other's listings), and tick resetState once to start over. Searches are read newest change first and stop once they meet 125 listings in a row that you already have.

Price drop alerts

Tick Track price changes (trackPriceChanges) together with Only new listings and schedule the Actor. Besides the new listings, each run returns, whole, the listings already delivered whose price moved since: previousPrice is the price when the listing was last delivered, priceChange the difference (negative = cheaper), priceChangePct the change in % (a $2,000,000 listing cut to $1,850,000 gives -7.5) and priceChangedAt when the run saw it. A listing at the same price stays out. There is no extra charge: a listing that comes back is one normal result.

  • The price followed is the asking price of a sale, or the lowest asking rent per SF per year of a lease. A listing with its price on request is never reported as changed, and a sale price is never compared with a rent.
  • A price change is caught on the listings a run reads: the top of each search, down to where the run stops (125 listings in a row that you already have; a listing whose price moved does not count in that row). The listings pasted in Listing IDs are all checked on every run. With source: newListings, only the listings added in the last 30 days are followed: keep the default search to follow your whole searches.
  • With the clientProxy access, each search reads up to 750 listings, as without the option; lease cards there show no rent, so rent changes are followed with the standard access only.
  • If your memory key already holds listings delivered without the option, the first run with it learns their prices and reports no change; changes show from the next run.

Listings with few details

LoopNet publishes some listings with almost nothing — no broker, price and size on request, no map position — often the newest ones. They are skipped by default (not saved, not charged). Tick Include listings with few details to get them too.

🔌 Integrations and API

Call the Actor via the Apify API, the JavaScript or Python clients, or connect it with integrations and webhooks (Make, Zapier, n8n, Google Sheets, Slack, Airtable…). The dataset can be fetched as JSON or CSV from any tool.

🤖 Use with AI agents (MCP)

AI agents (Claude, ChatGPT, Cursor…) can find and run this Actor through the Apify MCP server, billed to their Apify account like any run. It returns one item per LoopNet listing. Actor id: nice_dev/loopnet-listings-scraper; MCP server with this Actor only: https://mcp.apify.com/?tools=fetch-actor-details,nice_dev/loopnet-listings-scraper.

Smallest input, for a cheap first call:

{
"listingType": "for-lease",
"location": "Austin, TX",
"maxItems": 10
}

Key output fields: url, title, listingType, propertyType, address, priceText, capRate, brokerName, brokerPhone and brokerEmail.

Cost: pay per event, see the pricing section above. Cap each call with maxItems and, through the API, with the run option maxTotalChargeUsd.

❓ FAQ

The Actor only reads what LoopNet shows publicly to any anonymous visitor. It logs in to nothing and solves no captcha. Broker names, phone numbers and e-mail addresses are professional contact details published by the brokers; they can still be personal data under GDPR or CCPA: do not store them without a legitimate reason, and follow the anti-spam rules of your country (CAN-SPAM, GDPR) before you e-mail anyone. The Actor gives the links of the photos and never copies the photos themselves: they are protected by copyright. You are responsible for using the data in compliance with LoopNet's Terms of Use and applicable law. This Actor is not affiliated with LoopNet or CoStar Group.

Does it need a login or a proxy?

No login. The proxy is included in the price: leave the default setting (the residential proxy is not available). A request LoopNet turns away is read again on a new IP; without a proxy, it is retried after a pause of 5 seconds, doubled at each retry up to 150 seconds.

Is the data live or from a pre-collected database?

There is no pre-collected database. The listings are read on LoopNet at run time, so you get what the site shows when your run reads it, not a copy collected days ago.

How are the price per SF and the deal score worked out?

pricePerSf is the asking price divided by the building size, for sales that show both; it stays empty for leases, land without a building, prices on request and price ranges. dealScore (0 to 100, sales in the United States only) compares the listing with reference medians by property type, measured in November 2026: up to 50 points for a price per SF below the median of its type and up to 50 for a cap rate above it; with only one of the two figures the score is scaled to 100 on that one. discountToMarketPct is how far below (positive) or above (negative) the median price per SF the listing is, capRateSpread is its cap rate minus the median in percentage points, and dealReasons says it in short sentences, such as Price per SF 23% below the Office median. A property type without enough listings behind its median, and a listing outside the United States, get no comparison. All five fields come with every listing at no extra charge. They are a quick way to sort a list, not a valuation.

What are the listing tags and the unit count?

listingTags are keyword tags read from the listing description: owner-user, renovated, motivated-seller, medical, income-producing, development-site and net-lease. The field is always there and empty when no tag applies. The app's description is a short teaser, so a tag can be missed; a tag can also be given to a listing that only mentions the word, so use them to narrow a list, not as a verdict. income-producing and net-lease are read on sales only. Pick tags in listingTags to keep the listings that carry at least one of them. unitCount is the number of housing units of a multifamily listing when LoopNet prints it, empty otherwise; minUnitCount and maxUnitCount keep the listings inside a range and drop those without a unit count.

Why is a listing I see on LoopNet missing?

The Actor covers every listing of LoopNet's public catalog plus every listing added in the last 30 days. A listing added a little earlier may not be in the catalog yet: paste its ID in Listing IDs and it is read. The property type is read from each listing's summary; a listing LoopNet files under an unusual type may be missed by a search of one type — search all types (empty Property types) to be sure.

Is the data safe to open in Excel or to show on a web page?

Titles and descriptions are the brokers' own words, copied as they are. A text can begin with -, +, = or @ (a phone number such as +1 210-383-0007): Excel and Google Sheets may read such a cell of a CSV file as a formula or as a number. The Actor leaves the text as it is, so that the JSON and the API give the real value: when you open a CSV, import these columns as text. On a web page, escape every field like any text written by a stranger.

Can I get alerts when a price drops?

Yes. Schedule the Actor with Only new listings and Track price changes: each run returns the new listings plus the ones whose price moved since they were delivered, with the old price, the change and the change in % (see Price drop alerts). No extra charge.

Known limitations

  • The Actor gives each listing's summary. The spaces one by one, parcel and tax values, tenants, all building facts, the date on market, brochures, 3D tours and videos are on LoopNet's full listing page, which the Actor does not read at the moment: their 22 columns stay empty.
  • Auctions, ZIP codes and counties are not supported with the standard access.
  • Prices are in US dollars, for listings abroad too.
  • onlyNew alone remembers which listings you have, not their price: tick Track price changes to also get the listings whose price moved. A change is caught on the listings a run reads (the top of each search), not across the whole catalog.
  • Two runs sharing the same stateKey at the same time may both return the same new listing.

A run that reaches its timeout stops itself about 45 seconds before it: no new page is asked, what it read is saved and, with onlyNew, remembered, and the run ends Succeeded with "Stopped before the run's timeout". Resurrect it to go on from there, or give the next run a longer timeout (Run options). On Apify the standard access saved 1,000 listings in about 2 min 30 s, and in about 7 minutes with the broker contact, owner and scores.

A run the platform stops without warning (out of memory)

  • Resurrect it: it goes on from where it stood at most a minute before the stop, with the same list of listings. What it had read since is read again, and the listings already saved are skipped: none is delivered or charged twice, and maxItems still counts them.
  • With onlyNew, the memory is saved after each write (at most once every 2 seconds): resurrect the stopped run and the listings it had saved meanwhile join the memory; leave it stopped for good, and the next run may return the listings of its last 2 seconds once more.

Something doesn't work?

The last line of the log counts the listings saved, filtered out, saved without an option they asked for, and the requests that failed after every retry. Those requests are listed, with the reason, in the FAILED_REQUESTS record of the run's key-value store. A run that saved nothing and had failed requests fails, and its last message gives the cause.

If LoopNet changes, you are told instead of paying for blank rows. If the first 20 listings read all lack their title, city, price, map position or photo, or LoopNet stops answering for 500 listings in a row, the run saves nothing more, stops and fails, and its last message says why. A run of fewer listings is checked at its end, from 5 listings: its rows are kept, and the run fails all the same.

🛟 Support

Open an issue in the Issues tab with a link to your run: the run log and the FAILED_REQUESTS record of the key-value store show exactly which requests failed and why.