Bulk-resolve Compass listings by street address
compass_resolve_addressesResolve up to 100 street addresses to Compass listing URLs per call. Identifies matches via structured typeahead, freetext, or fallback search, returning URLs or retryable errors on timeout.
Instructions
Resolve up to 100 street addresses to Compass listing URLs in a single call. Returns one row per input, either { resolved: true, url, listing_id_sha, pid, address, matched_via }, { resolved: false, error, query } for a genuine no-match, or — when the bridge timed out / was unreachable (issue #85) — { resolved: false, status: "timeout" | "bridge_down", retryable: true, error, query }. A status row is NOT a miss: the lookup never completed, so retry it (a cold bridge usually succeeds on the second call) rather than concluding Compass has no listing. Each row walks the same three rungs as compass_get_by_address — first the structured typeahead POST /api/v3/omnisuggest/autocomplete (the primary rung that routes around the AWS WAF, issues #78/#79), then /homes-for-sale/?q=<address> (freetext), then /homes-for-sale/<locality-slug>/ (search_fallback, issue #71) — and verifies candidates against the same whole-token address-match policy (#45). The matched_via field on each resolved row indicates which rung found it. Compass's search degrades into far-away top hits when the local market has no match, and bulk amplifies the corruption surface, so a miss returns resolved: false with no URL rather than leaking the wrong property. Calls fan out concurrently server-side. Read-only; safe to call repeatedly.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| addresses | Yes | Up to 100 address inputs. For higher counts, batch into multiple calls. |