Crexi listing
One Crexi listing (for sale or for lease): name, summary, status, asking price, types, subtypes, tenants, the property details table (values the site hides from signed-out visitors are left out), investment highlights, marketing description, auction terms, offers-due date, Opportunity Zone, dates, locations with coordinates, lease suites, every photo and video, and each broker with brokerage, address, website, licenses and listing count. Pass latest=true with search filters to open the newest matching listing.
Every response includes credits_used: the credits this call cost.
Parameters
| name | type | description |
|---|---|---|
id | string | Listing id (the number in crexi.com/properties/<id>/...). Or give url. |
url | string | A crexi.com listing link (sale or /lease/properties/ link). |
kind | sale | lease | sale or lease, when giving a bare lease id. |
latest | boolean | true: open the first current result of a search made with the other filter params given here (the same as the search route's, e.g. type, state), instead of id/url. Example: true |
type | string | With latest: the search's type filter. Example: Retail |
state | string | With latest: the search's state filter. Example: TX |
Every endpoint also takes fresh, raw, fields (see lean responses and caching).
Example
curl "https://api.api.sh/crexi/v1/listing" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/crexi/v1/listing",
params={},
headers={"x-api-key": os.environ["APISH_KEY"]},
timeout=120,
)
res.raise_for_status()
data = res.json() const url = new URL("https://api.api.sh/crexi/v1/listing");
const res = await fetch(url, { headers: { "x-api-key": process.env.APISH_KEY } });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); Response
A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).