Developer reference

Machine capability

LIHTC Year 15 and compliance-period data for AI agents

The Year 15 recapitalisation trigger, as dated events an agent can query by state and window. This is the broadest family DFX holds and it is free.

Short answer

Which LIHTC properties are reaching the end of a compliance period? Yes, for 56 states and territories, effectively national. 13,549 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 compliance-period ending per property, with the property's canonical id, address, unit count and the programme record it derives 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
COMPLIANCE_PERIOD_ENDING13,54956 states and territories, effectively national

Why this is different from the alternatives

Year 15 is a transaction trigger, not a lookup: it is the moment a limited partner can exit and the deal has to be resyndicated, sold or refinanced. It is broadly published in bulk and almost never published callable.

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.

LIHTC properties reaching Year 15 in California.

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":"COMPLIANCE_PERIOD_ENDING","state":"CA","within_days":1095,"limit":3}}}'

Response (truncated)

{
 "dfx": {
  "capability": "search_property_events",
  "version": "0.3.0",
  "answered_at": "2026-09-02T11:27:20.748283+00:00"
 },
 "ok": true,
 "count": 3,
 "results": [
  {
   "dfx_id": "cd944113-bc81-4464-9411-044adbdb4248",
   "place_kind": "property",
   "event_type": "COMPLIANCE_PERIOD_ENDING",
   "occurred_at": "2026-12-31",
   "in_days": 120,
   "headline": "JOSE'S PLACE APTS, IONE, CA: placed in service in 2011, so the fifteen year compliance period ends in 2026, this year. 44 units.",
   "address": "154 N ARROYO SECO ST",
   "city": "IONE",
   "state": "CA",
   "unit_count": 44,
   "address_known": true,
   "evidence_class": "INFERRED",
   "source": "hud_lihtc",
   "sources": [
    "hud_lihtc"
   ],
   "verify": {
    "capability": "get_property_record",
    "dfx_id": "cd944113-bc81-4464-9411-044adbdb4248"
   }
  },
  {
   "dfx_id": "d40fdd73-a251-4459-9ea3-b1fc50225be2",
   "place_kind": "property",
   "event_type": "COMPLIANCE_PERIOD_ENDING",
   "occurred_at": "2026-12-31",
   "in_days": 120,
   "headline": "LA GLORIA SENIOR APTS, SALINAS, CA: placed in service in 2011, so the fifteen year compliance period ends in 2026, this year. 23 units.",
   "address": "539 E MARKET ST",
   "city": "SALINAS",
   "state": "CA",
   "unit_count": 23,
   "address_known": true,
   "evidence_class": "INFERRED",
   "source": "hud_lihtc",
   "sources": [
    "hud_lihtc"
   ],
   "verify": {
    "capability": "get_property_record",
    "dfx_id": "d40fdd73-a251-4459-9ea3-b1fc50225be2"
   }
  },
  {
   "dfx_id": "ad0c67e7-95c0-408b-8ee7-bb1981836607",
   "place_kind": "property",
   "event_type": "COMPLIANCE_PERIOD_ENDING",
   "occurred_at": "2026-12-31",
   "in_days": 120,
   "headline": "TRESOR APTS, SALINAS, CA: placed in service in 2011, so the fifteen year compliance period ends in 2026, this year. 81 units.",
   "address": "1041 BUCKHORN DR",
   "city": "SALINAS",
   "state": "CA",
   "unit_count": 81,
   "address_known": true,
   "evidence_class": "INFERRED",
   "source": "hud_lihtc",
   "sources": [
    "hud_lihtc"
   ],
   "verify": {
    "capability": "get_property_record",
    "dfx_id": "ad0c67e7-95c0-408b-8ee7-bb1981836607"
   }
  }
 ],
 "state": "OK",
 "coverage": {
  "verdict": "COVERED",
  "refreshed_at": "2026-09-01T13:03:52.11183+00:00"
 },
 "searched": true,
 "complete": false,
 "no_match": null,
 "index_coverage": null,
 "note": "Only sources whose 

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

  • Compliance periods are statutory and every one falls on 31 December, so a count bucketed by day shows a December cliff that is an artefact of the statute rather than a market event.
  • The event is the date the compliance period ends. It is not a statement that the property is for sale.

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.