Crexi Commercial Real Estate Scraper
Pricing
from $0.63 / 1,000 listings
Crexi Commercial Real Estate Scraper
Scrape Crexi commercial real estate for sale and for lease: price, size, property type, address and status. Optional: full listing details, brokers with licenses, the property owner, and the cap rate, NOI and occupancy Crexi hides. Export to JSON, CSV or Excel.
Pricing
from $0.63 / 1,000 listings
Rating
0.0
(0)
Developer
Nice Dev
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
12 hours ago
Last modified
Categories
Share
🏢 What is Crexi Commercial Real Estate Scraper?
Crexi Commercial Real Estate Scraper extracts commercial property listings from Crexi, for sale and for lease: asking price, size, property type, status and address, for any US location, keyword or Crexi search URL. Tick the optional add-ons for the full listing page (zoning, year built, photos), every listing broker with their license, the e-mail each brokerage publishes on its own website, the property owner and parcel number (APN), and the cap rate, NOI, occupancy and tenancy that Crexi hides.
Type a location (Austin, TX, Florida, 78701) or paste any Crexi search URL, click Start, and download the listings in JSON, CSV or Excel. No login, nothing to set up: 20 Pittsburgh listings with every add-on on — details, owner, recovered cap rates — in 2 minutes; search results alone: 2,000 Texas retail listings in 9 seconds. The cap rate, occupancy, tenancy and lease type that Crexi shows as ***** to visitors without an account are recovered, exact, without any account.
📋 What data can you extract from Crexi?
One item per listing, 95 fields:
| Category | What you get |
|---|---|
| 🏷️ Listing | title, tagline, link, Crexi id, sale or lease, status (on market, auction, call for offers, under contract) — City Collision · Corporate Guarantee · 8.00% cap rate |
| 💰 Price and returns | asking price, price per square foot, per acre and per unit, cap rate, NOI, occupancy, tenancy, lease type — $3,835,752 · 8% cap · $306,860 NOI · 100 % occupied |
| 🏗️ Property | property type and subtypes, investment type, building class, building size, lot size, buildings, stories, units, year built, zoning, parcel number (APN) |
| 👤 Owner | current owner and past owners of the building, property history events (listed, sold), county record link |
| 📍 Location | street address, city, county, state, ZIP, neighborhood, GPS coordinates, Opportunity Zone |
| 🧑💼 Brokers | every listing broker: name, license numbers and states, brokerage, brokerage website and office address, Crexi profile; broker of record, auctioneer |
| 📧 Brokerage e-mail (option) | the e-mail each listing brokerage publishes on its own website, and the page it was found on — info@brokerage.com |
| 🔑 Lease listings | rent per square foot per year, available space from / to, every available space with its size, rent, use and status |
| 📝 Text and media | full description, investment highlights, every property fact shown by Crexi, all photos in full size, OM / flyer / video / tour flags |
| 🕒 Dates | activation date, last update, creation, days on market, offer deadline, offer terms (earnest deposit, escrow period) |
Every field, with an example, is listed in the Output section below.
Fields filled from the listing page — description, highlights, facts, building class, brokers, photos, owner — need Extract details, which is off by default: a run reads the search-card fields only, much faster, until you tick it (brokers and the property record need it too).
✅ Why use Crexi Commercial Real Estate Scraper?
- 🔓 The numbers Crexi hides, recovered: cap rate (to 0.01 %), occupancy, tenancy and lease type are shown as
*****to anonymous visitors. The Actor gives you the exact values, and computes the NOI from the price and the cap rate — no account needed. On a Pittsburgh test, all 20 cap rates were found, and each one written in a listing title matched to the hundredth. - 👤 The property owner and the parcel number: the owner of the building (often an LLC), past owners, APN and year built, from Crexi's own property record.
- 🧑💼 Brokers with licenses: every listing broker with license numbers and states, brokerage website and office address — ready for outreach. Optionally, the e-mail each brokerage publishes on its own website, each site read once per run.
- 🗺️ No 1,500-result cap: a large search (a whole state, the whole US) is split automatically and read to the end.
- 🏬 For sale and for lease in one Actor: lease listings come with their available spaces and rents.
- 🗂️ Several searches in one run: keywords × locations × sale / lease, with a cap per search.
- 🔔 Monitoring built in: tick Only new listings, schedule the Actor, and each run returns (and charges) only what it has never delivered before.
- 🔌 API, scheduling, integrations (Make, Zapier, n8n, Google Sheets…) and JSON / CSV / Excel export via the Apify platform.
🚀 How to scrape Crexi
- Create a free Apify account.
- Open Crexi Commercial Real Estate Scraper and type a Location (e.g.
Austin, TX), and optionally a Search keyword (e.g.dollar general) and Property types. - Or paste your own Crexi URLs into Start URLs: any search results page (for sale or for lease, the filters set on the site are kept) or single listing pages.
- Set the filters you need (price, cap rate, size, occupancy…) and Max listings (100 by default, 0 = no limit), then click Start.
- Download the dataset in JSON, CSV, Excel or via API.
💰 How much does it cost to scrape Crexi?
This Actor uses pay per event pricing — see the Pricing tab. Each option is charged on top of the listing, only when you tick it and only on the listings where it gave you something (brokers, the property record and the brokerage e-mails also bill each page they read, found or not, at a small price):
| What you pay for | Event | Price per 1,000 |
|---|---|---|
| Listing: the search-card fields (price, size, type, address, dates, brokerage) | apify-default-dataset-item | $0.89 ($0.81 Bronze, $0.72 Silver, $0.63 Gold) |
| Extract details: the listing page read (description, every field, class, broker of record, photos) | listing-details | $0.65 ($0.55 Bronze, $0.45 Silver, $0.44 Gold) |
| Include brokers: a listing that got at least one broker (name, licenses, brokerage, profile) | listing-brokers | not charged: you only pay the brokers page read below |
| Include brokers: each brokers page read, whether it names a broker or not | broker-page-read | $0.39 ($0.38 Bronze, $0.37 Silver, $0.36 Gold) |
| Find brokerage e-mails: a listing that got at least one brokerage e-mail — none found, no charge for this line | agency-email | $1.39 ($1.38 Bronze, $1.37 Silver, $1.36 Gold) |
| Find brokerage e-mails: each page of a brokerage website read (a site is read once per run, whatever the number of its listings), whether it shows an e-mail or not | agency-site-page-read | $0.058 ($0.048 Bronze, $0.038 Silver, $0.028 Gold) |
| Include property record: a listing whose county record names the owner — no owner, no charge for this line | property-owner | $4.99 ($4.98 Bronze, $4.97 Silver, $4.96 Gold) |
| Include property record: each page read (the lookup, then the record), whether it names an owner or not | owner-record-page-read | $5.99 ($5.985 Bronze, $5.98 Silver, $5.975 Gold) |
| Recover hidden financials: a sale listing that got at least one hidden cap rate, occupancy, tenancy or lease type back — nothing recovered, no charge | financials-recovered | $7.20 ($7.19 Bronze, $7.01 Silver, $7.00 Gold) |
| A listing dropped by one of the Actor's own filters | filter-check | $0.34 ($0.33 Bronze, $0.32 Silver, $0.31 Gold) |
| A listing page read, then dropped by a filter that needs it | detail-filter-check | $0.744 ($0.734 Bronze, $0.724 Silver, $0.714 Gold) |
| Run start | apify-actor-start | $0.01 per run (at the default 512 MB) |
Example: 1,000 sale listings with every option except the brokers ≈ $18.48 (about half of them get an owner, about 1.6 record pages are read per listing, about two in three get hidden financials back); the search-card fields alone: $0.90. A listing you keep never costs a filter fee. Platform usage (compute, proxy) is included in the price.
⚙️ Input
{"location": "Austin, TX","propertyTypes": ["Retail"],"minCapRate": 6.5,"maxItems": 200}
Several searches, lease listings, a cap per search, only the listings not delivered before:
{"listingType": "both","searchQueries": ["dollar general", "walgreens"],"locations": ["TX", "Florida"],"maxItemsPerQuery": 50,"sortBy": "newest","onlyNew": true,"stateKey": "nnn-south"}
Or with your own URLs or listing ids:
{"startUrls": [{ "url": "https://www.crexi.com/properties?types%5B%5D=Industrial&states%5B%5D=GA" },{ "url": "https://www.crexi.com/properties/2492041/pennsylvania-former-pittsburgh-hospital" }],"listingIds": ["2332534"],"maxItems": 500}
| Field | Notes |
|---|---|
location, locations | A state (TX, Texas), a city with its state (Austin, TX), a county (Travis County, TX, Orleans Parish, LA) or a ZIP code (78701, also read at the end of an address: Austin, TX 78701) (St. / Saint, Ft. / Fort, Mt. / Mount: either spelling); locations adds more places. Every keyword is searched in every location (max 500 searches per run). Empty = the whole US. |
query, searchQueries | Free-text search as typed in the Crexi search box (a tenant, a brand, an address); searchQueries adds more keywords. |
listingType | sale (default, auctions included), lease, or both. |
startUrls, listingIds | Crexi search pages (sale or lease, their filters kept) or listing pages; listing ids are read as listingType says. The search fields are then ignored. |
states, propertyTypes, propertySubtypes | Added to every search. |
sortBy | relevance, newest, updated, priceHigh, priceLow, capRateHigh. |
maxItems, maxItemsPerQuery | Cap for the whole run and for each search (0 = unlimited). |
extractDetails, includeBrokers, includePropertyRecord, unmaskFinancials, enrichEmails, includeGallery | What is read for each listing: listing page, brokers, owner record, hidden financials, brokerage e-mails (all five off by default, you tick what you need; brokers and the owner record need the listing page, the brokerage e-mails need the brokers), all photos (on). |
minPrice, maxPrice, minCapRate, maxCapRate, minPricePerSqft, maxPricePerSqft, minOccupancy, maxOccupancy | Sale listings, applied by Crexi itself before anything is read; bounds included. A price range gives priced listings only (includeUnpriced then has no effect). |
minSqft, maxSqft, minLotAcres, maxLotAcres | Building size (or available space for a lease), lot size in acres. |
buildingClasses, investmentTypes, tenancy, leaseTypes, minRemainingTerm, maxRemainingTerm, statuses, opportunityZoneOnly, includeUnpriced | More filters of the Crexi search. |
minLeaseRate, maxLeaseRate | Lease listings: rent per square foot per year. |
minYearBuilt, maxYearBuilt | Sale listings only, read in the property record: needs includePropertyRecord and extractDetails (refused without them, and with lease listings: Crexi never gives their year); a listing without a known year is dropped. |
postedAfter, postedBefore | Activation date range: 2026-09-01, or a period before now (7 days, 2 weeks, 1 month, 24 hours). |
excludeKeywords | Drop the listings whose title or tagline contains one of these words (case and accents ignored). |
onlyNew, stateKey, resetState | Monitoring: only the listings never delivered under this memory key; resetState forgets the memory. |
| Advanced | proxyConfiguration (Apify proxy by default, included in the price; the residential, Google SERP and Unblocker proxies are not available), maxConcurrency, maxRequestsPerMinute, minRequestIntervalMs, maxRequestRetries, debugLog. |
📦 Output
One real item (Pittsburgh, 25/09/2026), shortened: long texts cut, one broker, one photo.
{"id": "2332534","crexiId": 2332534,"listingType": "sale","url": "https://www.crexi.com/properties/2332534/pennsylvania-city-collision-corporate-guarantee-750-cap-rate","title": "City Collision | Corporate Guarantee | 8.00% cap rate","subtitle": "Investment-Grade | Private-Equity-Backed Net Lease in Pittsburgh’s Strip District","status": "On-Market","isAuction": false,"propertyType": "Retail","propertyTypes": ["Retail"],"propertySubtypes": ["Auto Shop"],"investmentType": "Net Lease","askingPrice": 3835752,"currency": "USD","isUnpriced": false,"pricePerSqft": 399.56,"capRate": 8,"capRateSource": "recovered","netOperatingIncome": 306860,"occupancy": 100,"tenancy": "Single","squareFootage": 9600,"lotSizeSqft": 7200,"buildings": 1,"yearBuilt": 1991,"zoning": "Industrial Mixed-Use Subdistrict","apn": "0025G00205000000","address": "2950 Penn Ave","city": "Pittsburgh","county": "Allegheny County","state": "PA","postalCode": "15201","latitude": 40.45870353815599,"longitude": -79.97299392283915,"neighborhood": "PITTSBURGH URBAN","publishedAt": "2026-01-28T13:39:29.602Z","daysOnMarket": 240,"description": "2950 PENN AVE - Pittsburgh, PA 15201 Discover an exceptional investment opportunity in Downtown Pittsburgh…","hiddenFields": ["Investment Type", "Lease Type", "Tenancy", "Cap Rate", "Occupancy", "NOI", "Year Built", "APN"],"images": ["https://crexi.com/images/format=auto,width=3000,height=2000/assets/2332534/a287270d74d340ff99adb0eb6147ad84.JPG"],"hasOfferingMemorandum": true,"brokerageName": "Matthews","brokerName": "Beryl Grant","brokerLicense": "TN 356957","brokerProfileUrl": "https://www.crexi.com/profile/berylgr","brokerageWebsite": "https://www.matthews.com","brokers": [{"name": "Beryl Grant","publicProfileId": "berylgr","licenses": [{ "number": "TN 356957", "state": null, "type": null }],"brokerage": { "name": "Matthews", "website": "https://www.matthews.com", "city": "El Segundo", "state": "CA" }}],"brokerOfRecordName": "Kyle Matthews","owner": "KEY WEST HOLDINGS LLC","previousOwners": [],"propertyHistory": [{ "event": "Sold", "date": null }],"propertyRecordId": "f397f0b9f8e0a15e2d7d9bb626ec5290d396dee7","relatedListingIds": [],"spaces": [],"scrapedAt": "2026-09-25T22:30:21.097Z"}
You can download the dataset in various formats such as JSON, HTML, CSV or Excel.
All 95 fields
| Fields | What you get |
|---|---|
id, crexiId, listingType, url, title, subtitle, status, isAuction | Listing: 2332534, sale or lease, On-Market / Auction / Call For Offers / Under Contract |
propertyType, propertyTypes, propertySubtypes, investmentType, buildingClass | Property: Retail, Auto Shop, Net Lease, class A / B / C |
askingPrice, currency, isUnpriced, pricePerSqft, pricePerAcre, pricePerUnit | Price: 3835752, USD, 399.56 |
capRate, capRateSource, netOperatingIncome, occupancy, tenancy, leaseType | Returns: 8, recovered (or crexi, title), 306860, 100, Single, NNN |
squareFootage, lotSizeAcres, lotSizeSqft, buildings, stories, units, yearBuilt, zoning, apn, ownership, groundLease | Building and lot: 9600, 7200, 1991, 0025G00205000000, Fee Simple |
address, city, county, state, stateName, postalCode, fullAddress, latitude, longitude, neighborhood, isInOpportunityZone | Location: 2950 Penn Ave, Pittsburgh, PA, 15201 |
publishedAt, updatedAt, createdAt, daysOnMarket, offersDueAt | Dates (ISO): activation, last update, creation, days on market, offer deadline |
description, highlights, details, hiddenFields | Text: description and highlights as plain text, every fact shown by Crexi (a hidden one is null and named in hiddenFields) |
imageUrl, imageCount, images, hasVideo, hasVirtualTour, hasOfferingMemorandum, hasFlyer | Media: main photo, all photos in full size, flags |
brokerageName, brokerageLogoUrl, brokerName, brokerLicense, brokerProfileUrl, brokerageWebsite, brokerageAddress, brokerageEmail, brokerageEmailSource, brokers | Brokers: first broker flattened for a spreadsheet (with enrichEmails, the e-mail found on the brokerage website and its page), and every broker with licenses and brokerage |
brokerOfRecordName, brokerOfRecordLicense, brokerOfRecordBrokerage, auctioneer, offerTerms | Offer: supervising broker, auctioneer, earnest deposit, escrow and due diligence periods |
owner, previousOwners, propertyHistory, propertyRecordId, propertyRecordUrl, relatedListingIds | Owner record: KEY WEST HOLDINGS LLC, history events, the same building's other Crexi listings |
rentableSqftMin, rentableSqftMax, leaseRateMin, leaseRateMax, leaseRateText, rateType, numberOfSpaces, spaces, isSingleTenant | Lease: 1360, 3200, 23.5 USD per SF per year, $23.50/SF/YR, each available space |
searchUrl, scrapedAt | the search it was found by, ISO timestamp |
💡 Tips
How to get more results
Leave Location empty or type a state: a search over 1,500 results is split automatically and read to the end. Set maxItems to 0 for everything. Leave extractDetails and unmaskFinancials unticked (their default) when the search-card fields are enough (price, size, type, address, dates): 2,000 listings are then read in about 10 seconds.
How to reduce costs
The price is per listing, plus each option you tick, so the levers are maxItems, maxItemsPerQuery, the filters (Crexi applies most of them before anything is read), onlyNew for recurring runs (you never pay twice for the same listing) and the options: extractDetails, includeBrokers, includePropertyRecord, unmaskFinancials and enrichEmails are all unticked by default, tick only what you need.
Recovered cap rates
Crexi hides the cap rate, occupancy, tenancy and lease type of most listings from visitors without an account. With unmaskFinancials ticked (off by default), the Actor recovers the exact values anyway — the cap rate to 0.01 % — and capRateSource then says recovered. A cap rate that Crexi shows is crexi; one only written in the listing title is title. netOperatingIncome is the asking price × the cap rate. Sale listings only; a listing is charged financials-recovered only if at least one of these values was recovered for it. It takes time: 2,000 Texas retail listings with 257 cap rates found took under 10 minutes, against 9 seconds without it.
Several searches in one run
Fill searchQueries and / or locations: the Actor runs one search per keyword × location (× sale and lease with listingType: "both"), up to 500 searches per run. The single query and location fields still work and are added to the lists. 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. You can also paste several search URLs into startUrls: each one is a search of its own, with the same cap. If your filters match almost nothing in one search (300 listings in a row dropped), that search stops and the run goes on with the next ones; the run stops only when every search is in that case.
Monitoring: only the new listings
Tick Only new listings (onlyNew) and schedule the Actor. The first run returns everything; each later run skips the listings already delivered: they are not saved, not charged, and their page is not even opened. The memory lives in a named key-value store of your account (crexi-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. With the default sort (relevance) or newest, searches are then read newest first, and a search stops once it meets 100 listings in a row you already have; another sort keeps its order and reads the search to the end, skipping (and not charging) what you already have. A listing your filters drop is checked (and charged the filter check) once: the next runs with the same filters skip it for free; change a filter, or tick resetState, to check them again.
Filter by activation date
postedAfter and postedBefore take a date (2026-09-01, the whole day in UTC is included, like every date of the results) or a period before now (7 days, 2 weeks, 1 month; via the API also 24 hours or a full ISO date-time). Crexi filters on the date the listing went live (publishedAt); the Actor checks it again on every listing. Filtered-out listings are not saved and do not count in maxItems.
🔌 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 Crexi commercial real estate listing. Actor id: nice_dev/crexi-listings-scraper; MCP server with this Actor only: https://mcp.apify.com/?tools=fetch-actor-details,nice_dev/crexi-listings-scraper.
Smallest input, for a cheap first call:
{"location": "Austin, TX","maxItems": 10}
Key output fields: url, title, askingPrice, capRate, netOperatingIncome, propertyType, city, state, owner, brokerName.
Cost: see the pricing section above and the Pricing tab. Cap each call with maxItems and, through the API, with the run option maxTotalChargeUsd.
❓ FAQ
Is it legal to scrape Crexi?
The Actor only reads what Crexi shows publicly to any anonymous visitor. It logs in to nothing and solves no captcha. Results contain the names and license numbers of real estate brokers and the names of property owners (often companies), which can be personal data protected by laws such as the CCPA or the GDPR: do not store it without a legitimate reason. Photos stay on Crexi: the Actor gives their links only. You are responsible for using the data in compliance with Crexi's Terms of Use and applicable law. This Actor is not affiliated with Crexi.
Where do the brokerage e-mails come from?
With Find brokerage e-mails (enrichEmails) ticked, the Actor opens the website each brokerage gives on Crexi and returns the business e-mail address published there — what any visitor of that site sees, most often a general mailbox. It does not guess addresses, logs in nowhere and returns nothing a site keeps behind a login or a contact form. Some of these addresses name a person and are personal data under laws such as the CCPA or the GDPR: you are responsible for having a lawful reason before using them, for telling the people concerned where you got them and for honouring opt-outs; the rules for business e-mail outreach differ by country (CAN-SPAM in the US).
Does it need a login or a proxy?
No login and no Crexi account. The proxy is included in the price: leave the default setting (the residential, Google SERP and Unblocker proxies are not available). A request Crexi turns away is retried at once on a new proxy session, up to 10 times on top of the retries (without a proxy, after a pause of 5 seconds, doubled at each retry up to 150 seconds).
Why are some fields empty?
Crexi hides some facts from visitors without an account: the Actor recovers the cap rate, occupancy, tenancy and lease type, and reads the year built and the parcel number in the property record. What stays hidden (NOI written by the broker, number of units, rent bumps, lease term…) is null, and its label is listed in hiddenFields. Brokers' own phone numbers and e-mails, and the offering memorandum, are only shown to logged-in users: the Actor does not return them (tick Find brokerage e-mails for the e-mail each brokerage publishes on its own website). A brokerage site that shows no e-mail, or turns visitors away (some large networks do), leaves brokerageEmail empty.
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 @: 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.
Known limitations
- Crexi serves 1,500 results per search: larger searches are split by activation date, and a listing without an activation date (about 1 in 4,000) can be missed.
- A pasted search URL keeps its own filters; a map area drawn on the site cannot be read (use Location instead): the log says when a parameter is ignored.
onlyNewremembers listing ids, not their content: a listing whose price changed is not returned again.- With
onlyNew, a listing that does not pass a time-dependent filter yet (a relative "posted before" date) is checked again on the next run. - Two runs sharing the same
stateKeyat 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). Measured on Apify: about 10 listings a minute with every option (the owner record and the hidden financials), about 50 with the listing page alone — the default hour holds about 600 listings with every option.
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. What it had read since is read again, and the listings already saved are skipped: none is delivered or charged twice, and
maxItemsstill 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 and no longer on Crexi (removed while the run was reading them), and the requests that failed after every retry. Those requests and the removed listings 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 Crexi changes its data, you are told instead of paying for blank rows. A results page that counts listings but gives none the Actor can read is an error (listed in FAILED_REQUESTS), never a quiet "No listings found". If the first 20 listings read all lack their title, activation date, property type, status, address (state and map position) or photo, the run saves nothing more, stops and fails, and its last message names the missing field: at most those first listings are charged. A run of fewer listings (a scheduled onlyNew run that finds a few new ones, a small Max listings) is checked at its end, from 5 listings: its listings are already saved, and the run fails with the missing field instead of ending green.
🛟 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 URLs failed and why.