loopnet.com APIloopnet.com ↗
Search LoopNet commercial listings by location and property type, retrieve listing details with pricing and broker contacts, and look up broker profiles via API.
curl -X GET 'https://api.parse.bot/scraper/15d7f889-d88e-4c3d-8aff-7a3a3bd288f9/search_listings?location=los-angeles-ca&property_type=commercial-real-estate&transaction_type=for-sale' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for commercial real estate listings by location and property type. Returns paginated results with listing IDs and basic information extracted from structured data on the page.
| Param | Type | Description |
|---|---|---|
| locationrequired | string | Location slug in city-state format (e.g., 'los-angeles-ca', 'new-york-ny', 'chicago-il'). |
| max_acres | string | Maximum acres filter for land searches. |
| min_acres | string | Minimum acres filter for land searches. |
| page_index | integer | Page number for pagination. |
| property_type | string | Property type slug. Accepted values: 'commercial-real-estate', 'office', 'retail', 'industrial', 'land', 'multifamily', 'restaurants', 'health-care', 'sports-entertainment', 'hotel-motel'. |
| transaction_type | string | Transaction type. Accepted values: 'for-sale', 'for-lease'. |
{
"type": "object",
"fields": {
"count": "integer total number of listings returned on this page",
"listings": "array of listing objects, each containing id, name, url, address, city, and state when available from structured data; falls back to id-only objects"
},
"sample": {
"data": {
"count": 25,
"listings": [
{
"id": "26462638"
},
{
"id": "39000431"
},
{
"id": "38204092"
}
]
},
"status": "success"
}
}About the loopnet.com API
The LoopNet API covers 4 endpoints for accessing commercial real estate data: search listings by location and property type with search_listings, pull full property facts and broker contact links with get_listing_detail, find agents in a market with search_brokers, and retrieve individual broker profiles including phone numbers and professional designations with get_broker_profile.
Search and Listing Data
The search_listings endpoint accepts a location slug in city-state format (e.g., los-angeles-ca) along with optional filters for property_type (office, retail, industrial, land, and others), transaction_type (for-sale or for-lease), acreage range via min_acres / max_acres, and a page_index for pagination. Results include an array of listing objects, each carrying an id, name, url, address, city, and state alongside a count of listings returned on that page.
Listing Detail
get_listing_detail takes a listing_id (obtainable from search_listings results) and an optional slug. The response surfaces the listing price, a description, an images array, an address object, a properties map of key-value property facts (square footage, zoning, lot size, year built, and similar fields as published on the listing), and a broker_links array of full URLs pointing to associated broker profiles.
Broker Search and Profiles
search_brokers accepts a location string in City, ST format and returns a brokers array of objects with profile_url and name, plus a total count. get_broker_profile takes a profile_url and returns the broker's name, company, phones array, direct_phone, and designations array. The phones array contains numbers in XXX-XXX-XXXX format as found on the profile page.
Coverage Notes
All fields are conditional on availability in the source listing or profile — the API documents fallback behavior explicitly. The properties object on listing detail pages reflects the facts published per listing, so available keys vary by property type and what the listing agent has filled in.
- Aggregate commercial-for-sale inventory by city to populate a market comparison dashboard using
search_listingswithtransaction_type: for-sale. - Extract property facts (square footage, zoning, year built) from
get_listing_detailto feed a deal-screening model. - Build a broker discovery tool by combining
search_brokersresults with detailed contact data fromget_broker_profile. - Monitor new industrial listings in a target market by polling
search_listingswithproperty_type: industrialand tracking new listing IDs. - Compile broker phone and designation data from
get_broker_profileto enrich a CRM with verified contact details. - Retrieve
broker_linksfrom listing details to map which brokers are most active in a given market segment. - Filter land listings within an acreage range using
min_acresandmax_acresto surface development parcels for a specific project size.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does LoopNet offer an official developer API?+
What does `get_listing_detail` return beyond basic address and price?+
properties object containing key-value property facts as published on the listing page — fields like square footage, zoning, lot size, and year built vary by listing. It also includes an images array, a description string, and a broker_links array of full profile URLs for associated brokers.How does pagination work in `search_listings`?+
page_index to step through result pages. Each response includes a count reflecting how many listings were returned on that page. There is no explicit total-results count across all pages in the response.Does the API return lease rate details or price per square foot?+
get_listing_detail endpoint returns a price string when the listing publishes one, but granular lease rate breakdowns (price per square foot, rent escalation schedules) are not exposed as discrete fields. You can fork this API on Parse and revise get_listing_detail to parse additional fields if that data appears on specific listing pages.Can I search listings by multiple property types in one request?+
search_listings accepts a single property_type value per request. Multi-type queries in one call are not currently supported. You can fork this API on Parse and revise the endpoint to accept and merge results across multiple property types.