---
title: "Local three-leg environment chain"
method: GET
path: "/gauge/region"
tags: ["gauge", "region", "epa", "cams", "era5"]
---

# Local three-leg environment chain

`GET /gauge/region`

## Request

- Base URL: `https://api.truthbear.co`
- URL: `https://api.truthbear.co/gauge/region`
- Auth: none declared

[3-LEG] Local three-leg environment chain, one location (?loc=): leading air quality (AQI) -> current precipitation, rain and 30-day dry-wet -> realized nearest river stage and streamflow (confirmation gate). A chain, not one reading: confidence = how many legs are lit, in order. Sources: EPA/CAMS, ERA5, USGS. Descriptive only, never a forecast or advice. No data -> 422 no_charge, not billed. Also searched as: local environment bundle; one place three readings; city environmental pack; cross-checked local readings.

## Query parameters

- `loc` 'us-stlouis' | 'us-memphis' | 'us-losangeles' | 'us-fresno' | 'us-phoenix' | 'us-denver' | 'us-saltlakecity' | 'us-houston' | 'us-newyork' | 'us-chicago' | 'us-seattle' | 'us-portland', required

## Response `200`

Paid response

- object
  - `nature` string, required: Neutrality statement: GAUGE supplies observations and trend description only - no judgement, no prediction, no recommendation
  - `location` string: The location key of this bundle - the ?loc= you passed in
  - `name` string, nullable: Human-readable name of the object
  - `provenance` object, nullable: Data lineage: {served_from, data_as_of, oldest_leg_as_of, data_age_hours (frozen age, reference only), age_hours_now (age computed at request time - the real basis for freshness), freshness(fresh|recent|stale), freshness_basis (the cadence and threshold used for this row, as a string), dead_source (optional: upstream frozen or discontinued), data_lineage:[{signal,traceable_to,uncertainty,record_hash,...}], validation_status}. Freshness is cadence-aware, so monthly/quarterly/annual official lines are not misjudged against a 24h rule; the same basis is used by free /gauge/coverage. Buyers can trace back to the official source
  - `legs` object, required: CORE DELIVERY: per-leg readings, keyed by leg name (e.g. drought/heat/crop-vhi); each value carries signal_id/current/observed_at/data_age_hours/record_hash
  - `cross_line_narrative` string: Cross-line comparison narrative (purely descriptive; no judgement, no prediction)
  - `data_timespans` object[]: Per-leg observation time and hours elapsed since
  - `note` string: Conditional - endpoint-specific honest disclosure (limits, granularity, disclaimer); some endpoints omit it
  - `decision_points` object, nullable: {count, points:[{tag,current,swappable,how}], note} - decision points you can re-run with a swapped tag (one swapped tag = one call); leave it alone and the original context is the default, at no extra charge
  - `grade` string, nullable: Honest data-grade disclosure (e.g. "screening-level, not decision-grade")
  - `scope` string, nullable: Honest statement of scope and limits: monitoring is not forecasting, intelligence is not instruction, and the boundary of what is verifiable
  - `_citation` object, nullable: Offline-verifiable citation: {statement_type, not_advice:bool, claim, fact, source, record_hash, signature(Ed25519), key_id, issuer_DID(did:key), verify_url} - the trust root for zero-trust self-verification

## Other responses

- `402`: Payment Required
- `422`: No data for this query - no_charge:true, you are NOT billed

---

[API](https://skmtc.dev/truthbear/apis/truth-bear-verifiable-screening-intelligence-for-ai-agents-g.md) · [All operations](https://skmtc.dev/truthbear/apis/truth-bear-verifiable-screening-intelligence-for-ai-agents-g/llms.txt) · [OpenAPI document](https://skmtc.dev/truthbear/apis/truth-bear-verifiable-screening-intelligence-for-ai-agents-g/revisions/35744dfa4550?raw)
