# Locus: Property Scan

> Locus: Property Scan is a paid API for AI agents from api.locus.report, paid per call via x402, $0.05/call, status unknown (last checked 2026-09-14).

Scans local public records and parcel rules for a property address, surfacing answered questions, open gaps, and recommended next verification steps.

## Facts

- Endpoint: POST https://api.locus.report/api/locus-owner-action-brief
- Price: $0.05/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/locus-property-scan-b2fa3ecb
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_nRy8vo4Y_Invc-2bzweVw

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability locus-property-scan-b2fa3ecb -d '<json body>'
```

Example prompt: Can you run a Locus property scan on 1 E Edenton St, Raleigh, NC 27601 with a notice date of 2025-06-01 and look back 180 days — I want to see which public record questions are answered and what I need to verify next.

## When to prefer this

Use this endpoint when you need a quick, structured overview of public-record status for a specific U.S. property address — especially when you want to know what is answered, what is open, and what to verify next across tax, flood, appeal, and program dimensions. It is ideal for pre-purchase due diligence, tax appeal research, or compliance checks. Prefer it over raw county assessor lookups when you want a normalized diagnostic with next-step guidance rather than raw data.

## Known failure modes

- Address too short or malformed — rejected by minLength/maxLength validation
- Invalid date format for noticeDate — must match ISO 8601 date pattern
- withinDays out of range (must be 1–400) — request rejected
- Jurisdiction not yet covered — all sections return status 'unavailable' with empty citations
- Payment failure via x402 — endpoint returns 402 before processing
- Network timeout if underlying public-record sources are slow to respond

## How this service works

Six cited owner-action lanes for one US address: curated and derived programs, exact program dates, the state appeal rule, state tax framing plus county source pointer, FEMA LOMA point-elevation screen when applicable, and the parcel special-valuation screen. Returns charged:false unless at least two sections are substantive. Lists programs and rules only; no eligibility or action recommendation. npx @velinussage/locus-agent-skill add.

## Output

Returns a structured JSON diagnostic with sections covering programs, LOMA screen, tax calendar, appeal window, program windows, and special valuation — each with a status (e.g. 'available' or 'unavailable') and citations. Also includes a 'verifyNext' checklist of recommended follow-up steps, a componentStatus array indicating which sections returned substantive data, jurisdiction IDs, a count of substantive sections, and a generatedAt timestamp.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "address": {
   "type": "string",
   "maxLength": 200,
   "minLength": 5
  },
  "noticeDate": {
   "type": "string",
   "format": "date",
   "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
  },
  "withinDays": {
   "type": "integer",
   "default": 180,
   "maximum": 400,
   "minimum": 1
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "kind": "owner_action_brief_diagnostic",
  "address": "1 E Edenton St, Raleigh, NC 27601",
  "caveats": [
   "Example artifact; not live data."
  ],
  "charged": false,
  "sections": {
   "programs": {
    "status": "unavailable",
    "citations": []
   },
   "lomaScreen": {
    "status": "unavailable",
    "citations": []
   },
   "taxCalendar": {
    "status": "unavailable",
    "citations": []
   },
   "appealWindow": {
    "status": "unavailable",
    "citations": []
   },
   "programWindows": {
    "status": "unavailable",
    "citations": []
   },
   "specialValuation": {
    "status": "unavailable",
    "citations": []
   }
  },
  "verifyNext": [],
  "generatedAt": "2026-09-02T00:00:00.000Z",
  "componentStatus": [
   {
    "status": "unavailable",
    "component": "programs",
    "substantive": false
   },
   {
    "status": "unavailable",
    "component": "programWindows",
    "substantive": false
   },
   {
    "status": "unavailable",
    "component": "appealWindow",
    "substantive": false
   },
   {
    "status": "unavailable",
    "component": "taxCalendar",
    "substantive": false
   },
   {
    "status": "unavailable",
    "component": "lomaScreen",
    "substantive": false
   },
   {
    "status": "unavailable",
    "component": "specialValuation",
    "substantive": false
   }
  ],
  "jurisdictionIds": [],
  "substantiveSectionCount": 0
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/locus-property-scan-b2fa3ecb/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.locus.report](https://www.zero.xyz/host/api.locus.report/llms.txt)
