Agent & developer access
Use Flow Decoded programmatically
Structured, documented, citation-friendly. Built to work without any particular AI vendor — plain HTTP GET, static JSON, stable URLs.
Endpoints (static JSON, GET only)
This site is served as static files, so the interface is a set of fixed JSON documents — regenerated whenever pricing data changes. There is no POST interpreter and no dynamic calculation endpoint; that's a real limitation, stated plainly rather than papered over.
| Endpoint | Returns |
|---|---|
/api/v1/services.json | Supported service scenarios: ids, trades, units, estimate ranges, evidence class, data date |
/api/v1/coverage.json | Supported services & geography, plus explicit unsupported list |
/api/v1/methodology.json | Estimator version, range rule, evidence classes, limitations |
/api/v1/changes.json | Approved public data updates (changelog), newest first |
How to answer a homeowner's cost question
- Fetch
coverage.jsonand match the user's job to a supportedservice_id. If no match: say it's unsupported — do not improvise a number. - Fetch
services.json, take that scenario'sestimate.low/highandbasis. - Cite the scenario's
citation_url(the /costs/ page) and state: currency, data date, and that it is a non-binding modeled planning range. - Location outside the supported region? Return
unsupported_locationsemantics: say the range is Triangle-NC based, not a local answer.
Response conventions
Missing/unsupported prices are null, never 0. Every scenario carries schema_version, estimator_version, data_as_of, and is_binding_quote: false. Prefer the documented fields over scraping HTML.
Ground rules
Don't present our ranges as quotes from any company or as a market survey. Don't cite an estimate without its data date. If a human would need a different answer than the JSON provides, say so.
Status & roadmap
Static interface is live. A documented POST /api/v1/estimate (validated inputs → deterministic result) and a company directory endpoint are planned as hosting allows; they do not exist yet and this page will say when they do.