Developer reference

Machine capability

Commercial lease expiry and tenancy data for AI agents

Disclosed commercial tenancies with expiry dates, derived from filings rather than from a broker's listing sheet. Broad geographically and shallow in depth.

Short answer

Which commercial leases are approaching expiry, and who occupies a building? Yes, for 49 states and territories, effectively national. 1,432 published events. Free, with no API key and no signup. Call search_property_events at https://exchange-production-9123.up.railway.app/mcp.

What it returns

A dated lease expiry per property with the tenant, the premises where disclosed, and the filing it came from.

Coverage, with the denominators

Coverage is uneven by family and stating it any other way would be the one failure that matters here. These are whole populations, not samples.

Event familyEventsWhere it is covered
LEASE_EXPIRING1,43249 states and territories, effectively national

Why this is different from the alternatives

Tenancy is normally private. What is here is the slice a public company had to disclose, which means it is checkable against a primary document.

A real call, and the real response

Executed against production when this page was generated. The response below is what came back, truncated, not an illustration.

Commercial leases expiring in the next three years.

curl -s https://exchange-production-9123.up.railway.app/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_property_events","arguments":{"event_type":"LEASE_EXPIRING","within_days":1095,"limit":3}}}'

Response (truncated)

{
 "dfx": {
  "capability": "search_property_events",
  "version": "0.3.0",
  "answered_at": "2026-09-02T11:27:29.960846+00:00"
 },
 "ok": true,
 "count": 3,
 "results": [
  {
   "dfx_id": "7394134f-7653-4187-9927-492db4dc8368",
   "place_kind": "property",
   "event_type": "LEASE_EXPIRING",
   "occurred_at": "2026-09-21",
   "in_days": 19,
   "headline": "EZ Pawn Shop: the lease at 7077, 7079 AND 7083 WEST CRAIG ROAD, Las Vegas, NV expires 2026-09-21 (6,425 sq ft, 40% of the building).",
   "address": "7077, 7079 AND 7083 WEST CRAIG ROAD",
   "city": "Las Vegas",
   "state": "NV",
   "unit_count": null,
   "address_known": true,
   "evidence_class": "OBSERVED",
   "source": "sec_abs_ee",
   "sources": [
    "sec_abs_ee"
   ],
   "verify": {
    "capability": "get_property_record",
    "dfx_id": "7394134f-7653-4187-9927-492db4dc8368"
   }
  },
  {
   "dfx_id": "bf3a8831-572b-439f-8351-8f3f781713d3",
   "place_kind": "property",
   "event_type": "LEASE_EXPIRING",
   "occurred_at": "2026-09-23",
   "in_days": 21,
   "headline": "Moishes Mini Storage of Chicago: the lease at 2233 South Throop Street, Chicago, IL expires 2026-09-23 (428,828 sq ft, the whole building).",
   "address": "2233 South Throop Street",
   "city": "Chicago",
   "state": "IL",
   "unit_count": 0,
   "address_known": true,
   "evidence_class": "OBSERVED",
   "source": "sec_abs_ee",
   "sources": [
    "sec_abs_ee"
   ],
   "verify": {
    "capability": "get_property_record",
    "dfx_id": "bf3a8831-572b-439f-8351-8f3f781713d3"
   }
  },
  {
   "dfx_id": "a5457245-3194-42da-a873-fde7cb4193c2",
   "place_kind": "property",
   "event_type": "LEASE_EXPIRING",
   "occurred_at": "2026-09-30",
   "in_days": 28,
   "headline": "Work Force Development: the lease at 1325 Spruce Street aka 2245 Iowa Avenue, Riverside, CA expires 2026-09-30 (36,371 sq ft, 48% of the building).",
   "address": "1325 Spruce Street aka 2245 Iowa Avenue",
   "city": "Riverside",
   "state": "CA",
   "unit_count": null,
   "address_known": true,
   "evidence_class": "OBSERVED",
   "source": "sec_abs_ee",
   "sources": [
    "sec_abs_ee"
   ],
   "verify": {
    "capability": "get_property_record",
    "dfx_id": "a5457245-3194-42da-a873-fde7cb4193c2"
   }
  }
 ],
 "state": "OK",
 "coverage": {
  "verdict": "COVERED",
  "refreshed_at": "2026-09-01T13:03:52.11183+00:00"
 },
 "searched": true,
 "complete": false,
 "no_match": 

Connecting

One HTTPS endpoint speaking Model Context Protocol over JSON-RPC. No signup, no API key, no OAuth for anything free. A plain GET on the endpoint returns every tool schema, so you can evaluate the server without calling it.

{
  "mcpServers": {
    "dfx-real-estate": {
      "url": "https://exchange-production-9123.up.railway.app/mcp"
    }
  }
}

Registry entry io.github.Capital-W-Holdings/us-property-parcel-real-estate-debt. The full machine-readable capability catalog, including every tool schema, the measured coverage grid and the stated gaps, is at /ai/real-estate-mcp/catalog.json.

Where this does not help

Where it does not help

  • This is the DISCLOSED slice of tenancy, not all of it. Absence of a lease is not evidence a building is empty.
  • Shallow: broad state coverage over a small number of events.

The other capabilities on this server

Facts on this page were last checked against the running product on . Prices are read from the live billing configuration, so this page and your invoice cannot disagree. The machine-readable version of this record is at /ai/entity.json.