Is There a LoopNet API? How to Get CRE Listing Data

Al Amin/ Author15 min read
Is There a LoopNet API? How to Get CRE Listing Data

Every few weeks someone building a commercial real estate tool runs the same search: LoopNet API. The results look encouraging. There are marketplace actors, a RapidAPI listing, half a dozen vendor pages with "LoopNet API" in the title tag. What there isn't, anywhere, is a developer portal on loopnet.com.

That gap is the whole story. LoopNet is not a site that forgot to ship an API. It belongs to CoStar Group, and CoStar has spent five years in federal court arguing that its listing data is exactly the thing nobody else gets to have. Here's the honest answer, the parts of LoopNet's terms almost nobody quotes, and what you can actually run this afternoon.

The short answer

No. LoopNet has no public API. No developer portal, no key request form, no sandbox, no documented REST or GraphQL surface. The one first-party product that touches your listing data is LoopLink, and as you'll see in a moment, it is a search widget rather than a feed.

That leaves four realistic paths in 2026, and they differ enormously in cost, effort, and legal exposure. One of them is a hosted REST API you can call in the next ten minutes. Before we get there, it's worth reading the terms, because commercial real estate is the one vertical where "I'll just scrape it" has a documented body count.

The Ninth Circuit summarized CoStar's product line more cleanly than CoStar's own marketing does. In its June 23, 2025 opinion in CoStar Group v. Commercial Real Estate Exchange: "For listing services, CoStar offers LoopNet, an online marketplace, and LoopLink, software that enables brokers to display LoopNet listings on their websites."

LoopNet's own LoopLink page agrees. It sells "professional search technology" you integrate into your site, where "the search interface adopts your branding" and is "a maintenance-free tool." Updates you make are "real time on your website and instantly update on CoStar and LoopNet as well." There is no signup button, no plan table, and no price. There is a contact form and a phone number.

Read that carefully and you'll notice what LoopLink gives you: a rendered search experience for your own listings, on your own domain, under CoStar's control. What it does not give you is rows. You cannot re-rank them, join them against your own underwriting model, push them into a warehouse, or diff them nightly. An embed is not an integration. If your product needs to reason about the data, a hosted search widget is a picture of a database, not a database.

For context on what that search experience actually does, this walkthrough covers the LoopNet interface a broker sees:

Video walkthrough of searching commercial properties on the LoopNet website

What LoopNet's terms actually say

Most "LoopNet API" articles wave at the terms of use and move on. That's a mistake, because the LoopNet Terms of Use are unusually specific about the exact things a developer wants to do. They're worth reading in full; here are the clauses that decide your architecture.

ClauseWhat it saysWhy it matters to you
Prohibited Uses (a) You shall not "store, copy or export any portion of the Product into any database or other software program," nor "link to or frame any portion of the Product." Your ETL job is named in the contract. So is your iframe.
Prohibited Uses (b) Without express written permission, no "data mining, gathering or extraction tool, or any robot, spider or other automatic device or manual process, to monitor or copy any portion of the Product." "Manual process" closes the intern-with-a-spreadsheet loophole.
Prohibited Uses (b) You may not "use any portion of the Product to create, directly or indirectly, any database or product," nor access it at all if you are "a direct or indirect competitor." The terms never define "competitor," and CoStar owns marketplaces in commercial, multifamily, residential and auctions.
Prohibited Uses (b) No use of any portion of the Product "in any securities offering materials, registration statement, prospectus, or other filing with the United States Securities and Exchange Commission." The clause nobody mentions. If you're building for syndicators or fund managers, comps pulled from LoopNet cannot travel into the offering documents.
Termination (c) On termination you must "within 10 days thereafter permanently delete or destroy all elements of the Product within your control," and certify it in writing on request. Whatever you accumulated has a demolition date attached.
Termination (a) A violator "is precluded from enforcing, agrees not to enforce, and covenants not to sue to enforce, any similar contract, including terms and conditions, terms of use and terms of service" against CoStar. Breach their terms and you forfeit yours. That is not boilerplate; it's a designed asymmetry.
Ownership Brokers assign CoStar "the right to pursue enforcement of copyright and other intellectual property claims against third parties that have, without authorization… scraped, copied, or distributed content from your Submitted Content." CoStar can sue on the broker's behalf. The broker doesn't have to care, and often won't know.

Then there's the asymmetry that makes the whole picture click. Under the Information section, a broker with an advertising agreement grants CoStar "an irrevocable, non-exclusive license to gather, use, modify, reproduce and sublicense real estate information available on your website." CoStar may crawl the broker. The broker may not export from CoStar. Whatever you think of that as policy, it's a clear answer to "why is there no API."

Infographic of four LoopNet terms-of-use restrictions: no robots or extraction tools, no exporting into a database, no use in securities filings, and deleting all copies within ten days of termination

The litigation is not hypothetical

CoStar sued CREXi, a competing CRE marketplace, in September 2020. Five years later the case produced two rulings in the same week, and together they are the most honest briefing anyone can give you on LoopNet data.

On the copyright side, on June 25, 2025, Judge Consuelo B. Marshall of the Central District of California issued a summary judgment opinion that CoStar quotes at length: "There is ample evidence that CREXi and its BPOs [offshore teams] copied listing information, including images, from LoopNet when a listing could only be found on LoopNet, and that CREXi would take screenshots of photos or otherwise crop out CoStar's watermarks from photos to build out listings on its website." The court also held that the DMCA safe harbor "does not apply to the User-Directed images." CoStar's general counsel put the takeaway plainly: "The industry is on notice that it will face judgment for any use of CoStar's watermarked images." Damages are still to be tried.

Two days earlier, the Ninth Circuit went the other way. It revived CREXi's antitrust counterclaims, holding that CREXi plausibly alleged CoStar holds monopoly power and maintains it "by entering de facto exclusive agreements and constructing technological barriers." Per the opinion, CREXi alleged 90% shares of the CRE listing and information markets and 95% of auction services, and that "LoopNet receives over 85% of website visitors as compared to listing competitors." Those are allegations that survived a motion to dismiss, not findings, and the Federal Trade Commission filed as amicus. But the described mechanism is the one you keep bumping into: brokers who asked CREXi to pick up listings from their own public websites found that CoStar "blocks its competitors—and only its competitors—from viewing them."

The practical read for a developer: the photos are the sharp edge, the terms are broad, and the wall is real. Ours is not a legal opinion, and we've written up the general landscape in is website scraping legal? and how we source data. What follows is the engineering.

Your four real options in 2026

Every route to LoopNet listing data trades money against engineering time and fragility. The honest comparison:

OptionPricingSetup effortWhere it hurts
Official LoopNet API Doesn't exist n/a No portal, no keys, no docs. Nothing to request.
LoopLink Sales-quoted, no public price Days, plus a phone call Renders your own listings on your own site. No rows, no joins, no export.
DIY scraper "Free," plus proxies and your calendar Weeks, then forever LoopNet sits behind Akamai. A plain request for robots.txt from a terminal returns an Access Denied page, not a robots file, and the homepage serves a bot-protection interstitial to automated browsers.
Scraper marketplaces (e.g. Apify actors) From $2.00 per 1,000 listings on the actor we checked Hours You still own schemas, dedup and monitoring. Actors go stale: the older, better-known LoopNet actor on the same marketplace is now flagged DEPRECATED.
Hosted REST endpoints (RealtyAPI) Free tier, then paid plans (see pricing) Minutes Covers what LoopNet publishes, so no CoStar-only analytics, no historical comps, no tenant data.

If you're still weighing build versus buy, we laid out the general case in web scraping vs API. The short version for CRE specifically: scraping wins on tiny volumes with no deadline, and loses the moment either an investor or an Akamai rule change starts paying attention.

What RealtyAPI's LoopNet endpoints cover

RealtyAPI runs hosted LoopNet endpoints as part of its real estate data platform. You call a normal REST endpoint with a key in a header; proxies, browser fingerprints and retries stop being your problem. Nine endpoints cover the surface:

EndpointWhat it returns
GET /search/bylocationListings for a free-text location (city, county, ZIP or address), with the full commercial filter set
GET /search/bycoordinatesThe same search within a radius in miles of a lat/lng point
GET /search/bypolygonThe same search inside a drawn area, passed as lon lat pairs or a GeoJSON coordinate list
GET /search/byzipThe same search scoped to a single US ZIP code
GET /search/byurlReplays a LoopNet search-results URL; filters are parsed out of the URL for you
GET /details/byidFull detail for one listing: address, every available space, building attributes, photos and brokers
GET /details/byurlThe same detail payload, addressed by listing URL instead of id
GET /autocompleteType-ahead locations (cities, counties, ZIPs, markets) with coordinates
GET /propertytypesThe property type and subtype taxonomy for USA, CAN, GBR, FRA, ESP or AUS

Auth is one x-realtyapi-key header, responses are JSON, and calls are metered per request against your plan. LoopNet is in the standard set, so the free plan reaches it. Every response uses the same envelope, which is easy to verify: call an endpoint with no key at all and you get the shape back with the error in it.

{
  "message": "401: missing API key in the header",
  "source": "loopnet.com",
  "total": 0,
  "nextPage": false,
  "resultCount": 0,
  "searchResults": [],
  "detail": {},
  "propertyTypes": {}
}

Searches fill searchResults and set nextPage; details fill detail; the taxonomy call fills propertyTypes. One parser handles all nine.

This is where general-purpose listing APIs quietly fail commercial work. A residential schema has beds and baths. A broker has none of those questions. These are the parameters that matter:

  • searchType: For_Lease (the default), For_Sale, or Auctions. Three genuinely different markets behind one endpoint.
  • capRateRange: min:5,max:12. Screening income properties without a cap rate filter is not screening.
  • netLeased: NNN investments only, for anyone building a 1031 or net-lease pipeline.
  • subLease: sublease space only, which is the fastest read on an office submarket's health.
  • distressed and opportunityZone: value-add and OZ filters, both single booleans.
  • leaseRateRange in dollars per square foot for lease, priceRange in dollars for sale, buildingSizeRange and spaceSizeRange in square feet, lotSizeRange in acres. Note that building size and space size are different questions, and mixing them up is the most common CRE data bug.
  • propertyType: fourteen values including Office, Industrial, Retail, Multifamily, Flex, Lab and Health_Care, comma-separated for multiples, plus propertySubType for things like warehouse, data_center or medical_office.
  • sortOrder: nine values, including Cap_Rate_High_to_Low and Newest. The pair you want for a deal-flow alert.

Infographic: one API key connects to nine LoopNet endpoints grouped into search, details, and others

Quick-start: commercial listings in three requests

Base URL: https://loopnet.realtyapi.io. Auth: your key in the x-realtyapi-key header. The docs cover key setup in about two minutes.

1. Learn the vocabulary

Two discovery endpoints keep you from guessing at enum values. Property types first:

curl "https://loopnet.realtyapi.io/propertytypes?country=USA" \
  -H "x-realtyapi-key: YOUR_KEY"

And locations, if you'd rather resolve a user's typing than trust it:

curl "https://loopnet.realtyapi.io/autocomplete?term=Austin" \
  -H "x-realtyapi-key: YOUR_KEY"

Autocomplete returns each place with its coordinates, which is how you hand off cleanly from a text box to /search/bycoordinates.

Say you want stabilized retail in Austin, at least a seven cap, priced between two and ten million, newest first:

curl -G "https://loopnet.realtyapi.io/search/bylocation" \
  -H "x-realtyapi-key: YOUR_KEY" \
  --data-urlencode "location=Austin, TX" \
  --data-urlencode "searchType=For_Sale" \
  --data-urlencode "propertyType=Retail" \
  --data-urlencode "capRateRange=min:7" \
  --data-urlencode "priceRange=min:2000000,max:10000000" \
  --data-urlencode "sortOrder=Newest"

resultCount tops out at 25, which is LoopNet's own page size. Don't fight it; page instead, and keep going while nextPage is true.

3. Pull the detail

curl "https://loopnet.realtyapi.io/details/byid?id=LISTING_ID" \
  -H "x-realtyapi-key: YOUR_KEY"

If you already have a LoopNet URL in hand, from a broker email or a saved search, /details/byurl takes it directly. Same for search: /search/byurl accepts a pasted LoopNet results URL and parses the filters out of it, which is the fastest way to reproduce a search a colleague built by clicking.

A production-ish Python loop

Pagination plus the error handling you actually want, because anything fronting live web data will occasionally have a bad minute upstream:

import requests

BASE = "https://loopnet.realtyapi.io"
HEADERS = {"x-realtyapi-key": "YOUR_KEY"}

def get(path, **params):
    r = requests.get(BASE + path, params=params, headers=HEADERS, timeout=60)
    r.raise_for_status()
    data = r.json()
    # Upstream hiccups arrive as a "message" with an empty result set
    if data.get("message") and not data.get("searchResults"):
        raise RuntimeError(f"Upstream error: {data['message']}")
    return data

def search(path="/search/bylocation", **filters):
    page = 1
    while True:
        data = get(path, page=page, resultCount=25, **filters)
        results = data.get("searchResults") or []
        if not results:
            break
        for listing in results:
            yield listing
        if not data.get("nextPage"):
            break
        page += 1

deals = search(
    location="Austin, TX",
    searchType="For_Sale",
    propertyType="Retail",
    capRateRange="min:7",
    sortOrder="Newest",
)
for listing in deals:
    # "id" is the field /details/byid expects back
    print(listing.get("id"))

From there it's your product. Snapshot that loop nightly into Postgres and diff it, and you have a price-drop and new-listing alert for a submarket. Swap /search/bylocation for /search/bypolygon and you have a drawn-territory pipeline for a brokerage team. Flip subLease=true and chart the count weekly, and you have an office-market health indicator that costs one request a day. The point of an API over a scraper is that the loop above is the entire integration. There's no proxy pool underneath it for you to babysit at 2 AM.

Three-step diagram: resolve property types and locations, run a filtered search, then pull full detail for one listing

What you still can't get

Honesty section. These endpoints return what LoopNet publishes: active listings for lease, for sale and at auction, their detail pages, and the taxonomy behind the filters. They are not CoStar. The proprietary research layer that CoStar sells to institutions, historical sale comps, tenant rosters, lease-by-lease rent rolls, submarket forecasts, none of that is on LoopNet's public pages, so none of it comes through here either. If your model needs it, you're buying a CoStar subscription, and that's a procurement conversation rather than an API key.

You also don't get history for free. The endpoints answer "what's listed now." If you want a time series, you build it the boring way: run the pagination loop on a schedule, store snapshots, diff them. Surprisingly few teams do this, and the ones that do end up with something no vendor sells them.

And if your product spans asset classes, LoopNet alone won't cover it. That's the same reason we've worked through the other portals one at a time: why Apartments.com has no listings API and what happened to the Homes.com API (both CoStar properties, with the same instincts), the StreetEasy question, whether Redfin has an API, and what counts as a Realtor.com API. If you're sizing up the category rather than one portal, the listing API comparison and our guide to commercial property data are the better starting points.

Key takeaways

  • LoopNet has no public API, and the terms explain why. The Prohibited Uses section names databases, extraction tools, competitors and even SEC filings. This is a deliberate position, not a missing feature.
  • LoopLink is a search widget, not a feed. It renders your own listings on your own domain, beautifully, without ever handing you a row you can join against anything.
  • The photos are the sharp edge. A federal court found evidence of a competitor's screenshot-and-crop policy aimed at CoStar watermarks, and rejected its DMCA safe harbor defense on those images. Whatever you build, don't build it on copied media.
  • Commercial filters are the whole job. Cap rate, net-leased, sublease, opportunity zone, building size versus space size. An API that only knows beds and baths cannot answer a single question a broker asks.
  • Keep the integration one layer thick. Nine endpoints, one envelope, one header. When a source shifts, you want to replace one client file rather than a codebase of parsing assumptions.

If you're building for the CRE market, the fastest way to find out whether this data fits is to run the three requests above against your own submarket on the free tier and read what comes back. It takes about as long as leaving a voicemail on the LoopLink sales line.