SERVICE / DETAILother

gauge/census

GET api.truthbear.co/gauge/census

SONAR SCORE0.817
LIVE PRICE0.090000
BAZAAR LIVEnot compatible
CDP INDEXEDno
DECISION EVIDENCE

Why an agent can trust this route.

40 observations in the last 24h
HANDSHAKE SUCCESS100.0%402 challenge reachable
PAID DELIVERY0.0%settlement observed
P90 LATENCY1002msrecent response window
PRICE DRIFT0.0%advertised vs observed

Sonar evidence is advisory. Paid delivery is shown as verified only when paid probes are available; otherwise route estimates use the unpaid handshake as a clearly labeled proxy.

SONAR PROBE HISTORY / 30D

Observed outcomes

JSON ↗
LIVE ENDPOINT METADATA

[BATCH+PROOF] All entities for one signal at their latest reading, with band, frequency_label and percentile columns so you can rank across stations and screen for the unusual in one call. Cross-station comparison is the point: one river gauge alone tells you little, 200 of them ranked by distance-to-action tells you a lot. Descriptive only, never a forecast or advice. No data -> 422 no_charge, not billed.

Resource: api.truthbear.co/gauge/census

Network: base · Asset: 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 · Pay to: 0x2d16a243ba9fAcC6AC85519d5efad2149DC4C6c3

Payment methods: — · Last validation: 2026-10-15 11:56:58.498+00

{
  "input": null,
  "output": null,
  "paymentRequirements": [
    {
      "raw": {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x2d16a243ba9fAcC6AC85519d5efad2149DC4C6c3",
        "amount": "90000",
        "scheme": "exact",
        "network": "base",
        "mimeType": "application/json",
        "resource": "https://api.truthbear.co/gauge/census",
        "extensions": {
          "bazaar": {
            "info": {
              "input": {
                "type": "http",
                "method": "GET",
                "queryParams": {
                  "signal_id": "required - signal id (genus.species); free list at GET /gauge/catalog (paged; ?all=1 for every line)"
                }
              },
              "output": {
                "type": "json"
              }
            },
            "schema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "properties": {
                "input": {
                  "type": "object",
                  "required": [
                    "type",
                    "method",
                    "queryParams"
                  ],
                  "properties": {
                    "type": {
                      "const": "http"
                    },
                    "method": {
                      "enum": [
                        "GET"
                      ],
                      "type": "string"
                    },
                    "queryParams": {
                      "type": "object",
                      "required": [
                        "signal_id"
                      ],
                      "properties": {
                        "signal_id": {
                          "type": "string",
                          "examples": [
                            "hydrology.river-level"
                          ],
                          "description": "required - signal id (genus.species); free list at GET /gauge/catalog (paged; ?all=1 for every line)"
                        }
                      },
                      "additionalProperties": false
                    }
                  }
                },
                "output": {
                  "type": "object",
                  "required": [
                    "type"
                  ],
                  "properties": {
                    "type": {
                      "const": "json"
                    }
                  }
                }
              }
            },
            "priceUsd": "$0.09",
            "discoverable": true,
            "outputSchema": {
              "type": "object",
              "required": [
                "count",
                "rows"
              ],
              "properties": {
                "rows": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "change": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "Change, nested per metric: change.<metric> = {delta, direction, direction_reason?}, plus the scalar change.period (e.g. \"vs_previous\"). direction is one of rising/falling/stable/unknown - unknown means the direction CANNOT BE DETERMINED, it does not mean stable; in that case direction_reason carries a machine-readable cause: no-previous-record / metric-absent-in-previous / metric-absent-in-current / non-numeric-value"
                      },
                      "entity": {
                        "type": "string",
                        "description": "Monitored object id (e.g. btc / us / hormuz); full list at free /gauge/catalog or /gauge/preview"
                      },
                      "strata": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "Statistical strata: share of each official band over the last 5 same-season years plus the band the current value falls in; null when there are no statistics"
                      },
                      "current": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "Current reading. The inner metric structure varies by signal (crypto -> {price_usd, volume_24h, ...}; shipping -> {wind_kmh, wave_height_m, ...}). Units are carried in the field-name suffix; see also standard_ruler.unit"
                      },
                      "sources": {
                        "type": [
                          "array",
                          "null"
                        ],
                        "items": {
                          "type": "object"
                        },
                        "description": "Source list [{name, value, weight, as_of, role, independent, relay_of?}]. independent:true = confirmed independent source; false = confirmed relay channel of another source (relay_of names the origin); null = independence unconfirmed (neither denied nor claimed). name/weight/independent/relay_of are record_hash core fields, so tampering with an independence claim breaks self-verification; as_of/value/role drift easily and are not hashed"
                      },
                      "previous": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "Previous-period reading (a subset of the metrics in current; or {note} explaining that there is no previous value)"
                      },
                      "trend_7d": {
                        "type": [
                          "array",
                          "null"
                        ],
                        "items": {
                          "type": "object"
                        },
                        "description": "Array of the last 7 trend points; [] means this signal has no series yet or the series does not apply - it is not an error"
                      },
                      "lifecycle": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "Lifecycle block (state / birth_at / end_at / death_type / context). Part of the record_hash v3 core, so offline recomputation must include it; null for non-lifecycle lines"
                      },
                      "signal_id": {
                        "type": "string",
                        "description": "Signal id in genus.species ASCII binomial form (e.g. crypto.spot / macro.unemployment / shipping.route-disruption); full list at free /gauge/catalog"
                      },
                      "ots_status": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "RETIRED FIELD - always \"pending\" or null; this field is no longer updated and is kept only for older parsers. Anchoring is done per write-batch (previously one root per day): each batch of writes gets a Merkle root stamped via OpenTimestamps, typically confirmed into a Bitcoin block within hours. See GET /gauge/anchor?hash= for the inclusion proof and the block number."
                      },
                      "source_ref": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Official source URL (provenance)"
                      },
                      "stat_ruler": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "Statistical ruler: empirical percentile position across the last 5 same-season years; null when there are no statistics"
                      },
                      "summary_zh": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Human-readable one-line summary, IN CHINESE (zh-TW): reading + where it sits on the official ruler + statistical position. This is the HUMAN front-desk copy - machine consumers should read summary_en (English verdict) instead"
                      },
                      "unverified": {
                        "type": "boolean",
                        "description": "true = the source is untiered (source_tier is null); buyers and agents can filter on this"
                      },
                      "entity_name": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Human-readable name of the object"
                      },
                      "observed_at": {
                        "type": "string",
                        "description": "Actual observation time of the data, ISO-8601"
                      },
                      "record_hash": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "sha256:<64hex> (contract A v3, binds the values plus provenance)"
                      },
                      "source_tier": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Source tier: T1 (first-hand official) / T2 or T2-<subtype, e.g. T2-exchange> (observable, curated) / screen-viewpoint; null = untiered (see unverified)"
                      },
                      "snapshot_date": {
                        "type": "string",
                        "description": "ISO-8601 date-time in UTC (e.g. 2026-07-24T00:00:00.000Z; aligned to midnight of that day)"
                      },
                      "data_age_hours": {
                        "type": [
                          "number",
                          "null"
                        ],
                        "description": "Age frozen at collection time (0 = same hour), for reference only - if a collector stalls this field stops moving. For freshness always use provenance.age_hours_now (computed at request time) and provenance.freshness; the threshold basis is in provenance.freshness_basis"
                      },
                      "standard_ruler": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "Official standard ruler (band / thresholds / normalized_index / pct_to_action, with unit and provenance); null when the line has no official ruler. Inner structure varies by signal"
                      },
                      "hash_core_version": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "description": "Core-contract version of record_hash (currently 3); use it to pick the right core composition when recomputing offline"
                      },
                      "source_agreement_cv": {
                        "type": [
                          "number",
                          "null"
                        ],
                        "description": "Multi-source agreement, coefficient of variation (smaller = closer agreement). Present ONLY when two or more CONFIRMED-INDEPENDENT sources measure the same fact at the same time - see sources[].independent. Same source relayed through two channels does not count as independent, and two different time bases (daily mean vs spot) do not count as agreement. Single-source / unconfirmed independence / not applicable -> null"
                      },
                      "record_hash_verifiable": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "{mode:offline|via-endpoint, note}"
                      }
                    },
                    "additionalProperties": true
                  },
                  "description": "CORE DELIVERY: latest readings for every object of one signal. Per-row shape is in items - the fields live INSIDE items, not at the top level"
                },
                "count": {
                  "type": "integer",
                  "description": "Number of rows (all objects for this signal)"
                },
                "grade": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "Honest data-grade disclosure (e.g. \"screening-level, not decision-grade\")"
                },
                "scope": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "Honest statement of scope and limits: monitoring is not forecasting, intelligence is not instruction, and the boundary of what is verifiable"
                },
                "nature": {
                  "type": "string",
                  "description": "Neutrality statement: GAUGE supplies observations and trend description only - no judgement, no prediction, no recommendation"
                },
                "_citation": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "description": "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"
                }
              },
              "additionalProperties": true,
              "conditionalProperties": {
                "last_fact": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "description": "Most recent qualifying fact for this line and entity, attached centrally (may be absent when the line has no qualifying fact yet)"
                },
                "decision_points": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "description": "Swappable decision points for this entity, attached centrally: {count, points:[{tag,current,swappable,how}], note}. Present only when the entity has at least one swappable tag in the index, so bundles for entities without one omit it"
                },
                "leg_availability": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "description": "Per-leg degradation disclosure: which legs are present, which are degraded and why. Present only when at least one leg is degraded"
                },
                "record_hash_verifiable": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "description": "Whether this response can recompute its own record_hash offline. Present only when the payload carries a top-level record_hash; may be absent on list-shaped deliveries where verifiability is stated per row instead"
                }
              }
            },
            "routeTemplate": "/gauge/census",
            "priceUsdNumber": 0.09
          }
        },
        "description": "[BATCH+PROOF] All entities for one signal at their latest reading, with band, frequency_label and percentile columns so you can rank across stations and screen for the unusual in one call. Cross-station comparison is the point: one river gauge alone tells you little, 200 of them ranked by distance-to-action tells you a lot. Descriptive only, never a forecast or advice. No data -> 422 no_charge, not billed. $0.09 per call.",
        "outputSchema": {
          "input": {
            "type": "http",
            "method": "GET",
            "example": {
              "signal_id": "hydrology.river-level"
            },
            "required": [
              "signal_id"
            ],
            "properties": {
              "signal_id": {
                "type": "string",
                "examples": [
                  "hydrology.river-level"
                ],
                "description": "required - signal id (genus.species); free list at GET /gauge/catalog (paged; ?all=1 for every line)"
              }
            },
            "queryParams": {
              "signal_id": "required - signal id (genus.species); free list at GET /gauge/catalog (paged; ?all=1 for every line)"
            },
            "discoverable": true,
            "exampleRequest": "/gauge/census?signal_id=hydrology.river-level"
          },
          "output": {
            "type": "object",
            "required": [
              "count",
              "rows"
            ],
            "properties": {
              "rows": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "change": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "description": "Change, nested per metric: change.<metric> = {delta, direction, direction_reason?}, plus the scalar change.period (e.g. \"vs_previous\"). direction is one of rising/falling/stable/unknown - unknown means the direction CANNOT BE DETERMINED, it does not mean stable; in that case direction_reason carries a machine-readable cause: no-previous-record / metric-absent-in-previous / metric-absent-in-current / non-numeric-value"
                    },
                    "entity": {
                      "type": "string",
                      "description": "Monitored object id (e.g. btc / us / hormuz); full list at free /gauge/catalog or /gauge/preview"
                    },
                    "strata": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "description": "Statistical strata: share of each official band over the last 5 same-season years plus the band the current value falls in; null when there are no statistics"
                    },
                    "current": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "description": "Current reading. The inner metric structure varies by signal (crypto -> {price_usd, volume_24h, ...}; shipping -> {wind_kmh, wave_height_m, ...}). Units are carried in the field-name suffix; see also standard_ruler.unit"
                    },
                    "sources": {
                      "type": [
                        "array",
                        "null"
                      ],
                      "items": {
                        "type": "object"
                      },
                      "description": "Source list [{name, value, weight, as_of, role, independent, relay_of?}]. independent:true = confirmed independent source; false = confirmed relay channel of another source (relay_of names the origin); null = independence unconfirmed (neither denied nor claimed). name/weight/independent/relay_of are record_hash core fields, so tampering with an independence claim breaks self-verification; as_of/value/role drift easily and are not hashed"
                    },
                    "previous": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "description": "Previous-period reading (a subset of the metrics in current; or {note} explaining that there is no previous value)"
                    },
                    "trend_7d": {
                      "type": [
                        "array",
                        "null"
                      ],
                      "items": {
                        "type": "object"
                      },
                      "description": "Array of the last 7 trend points; [] means this signal has no series yet or the series does not apply - it is not an error"
                    },
                    "lifecycle": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "description": "Lifecycle block (state / birth_at / end_at / death_type / context). Part of the record_hash v3 core, so offline recomputation must include it; null for non-lifecycle lines"
                    },
                    "signal_id": {
                      "type": "string",
                      "description": "Signal id in genus.species ASCII binomial form (e.g. crypto.spot / macro.unemployment / shipping.route-disruption); full list at free /gauge/catalog"
                    },
                    "ots_status": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "RETIRED FIELD - always \"pending\" or null; this field is no longer updated and is kept only for older parsers. Anchoring is done per write-batch (previously one root per day): each batch of writes gets a Merkle root stamped via OpenTimestamps, typically confirmed into a Bitcoin block within hours. See GET /gauge/anchor?hash= for the inclusion proof and the block number."
                    },
                    "source_ref": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "Official source URL (provenance)"
                    },
                    "stat_ruler": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "description": "Statistical ruler: empirical percentile position across the last 5 same-season years; null when there are no statistics"
                    },
                    "summary_zh": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "Human-readable one-line summary, IN CHINESE (zh-TW): reading + where it sits on the official ruler + statistical position. This is the HUMAN front-desk copy - machine consumers should read summary_en (English verdict) instead"
                    },
                    "unverified": {
                      "type": "boolean",
                      "description": "true = the source is untiered (source_tier is null); buyers and agents can filter on this"
                    },
                    "entity_name": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "Human-readable name of the object"
                    },
                    "observed_at": {
                      "type": "string",
                      "description": "Actual observation time of the data, ISO-8601"
                    },
                    "record_hash": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "sha256:<64hex> (contract A v3, binds the values plus provenance)"
                    },
                    "source_tier": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "Source tier: T1 (first-hand official) / T2 or T2-<subtype, e.g. T2-exchange> (observable, curated) / screen-viewpoint; null = untiered (see unverified)"
                    },
                    "snapshot_date": {
                      "type": "string",
                      "description": "ISO-8601 date-time in UTC (e.g. 2026-07-24T00:00:00.000Z; aligned to midnight of that day)"
                    },
                    "data_age_hours": {
                      "type": [
                        "number",
                        "null"
                      ],
                      "description": "Age frozen at collection time (0 = same hour), for reference only - if a collector stalls this field stops moving. For freshness always use provenance.age_hours_now (computed at request time) and provenance.freshness; the threshold basis is in provenance.freshness_basis"
                    },
                    "standard_ruler": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "description": "Official standard ruler (band / thresholds / normalized_index / pct_to_action, with unit and provenance); null when the line has no official ruler. Inner structure varies by signal"
                    },
                    "hash_core_version": {
                      "type": [
                        "integer",
                        "null"
                      ],
                      "description": "Core-contract version of record_hash (currently 3); use it to pick the right core composition when recomputing offline"
                    },
                    "source_agreement_cv": {
                      "type": [
                        "number",
                        "null"
                      ],
                      "description": "Multi-source agreement, coefficient of variation (smaller = closer agreement). Present ONLY when two or more CONFIRMED-INDEPENDENT sources measure the same fact at the same time - see sources[].independent. Same source relayed through two channels does not count as independent, and two different time bases (daily mean vs spot) do not count as agreement. Single-source / unconfirmed independence / not applicable -> null"
                    },
                    "record_hash_verifiable": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "description": "{mode:offline|via-endpoint, note}"
                    }
                  },
                  "additionalProperties": true
                },
                "description": "CORE DELIVERY: latest readings for every object of one signal. Per-row shape is in items - the fields live INSIDE items, not at the top level"
              },
              "count": {
                "type": "integer",
                "description": "Number of rows (all objects for this signal)"
              },
              "grade": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Honest data-grade disclosure (e.g. \"screening-level, not decision-grade\")"
              },
              "scope": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Honest statement of scope and limits: monitoring is not forecasting, intelligence is not instruction, and the boundary of what is verifiable"
              },
              "nature": {
                "type": "string",
                "description": "Neutrality statement: GAUGE supplies observations and trend description only - no judgement, no prediction, no recommendation"
              },
              "_citation": {
                "type": [
                  "object",
                  "null"
                ],
                "description": "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"
              }
            },
            "additionalProperties": true,
            "conditionalProperties": {
              "last_fact": {
                "type": [
                  "object",
                  "null"
                ],
                "description": "Most recent qualifying fact for this line and entity, attached centrally (may be absent when the line has no qualifying fact yet)"
              },
              "decision_points": {
                "type": [
                  "object",
                  "null"
                ],
                "description": "Swappable decision points for this entity, attached centrally: {count, points:[{tag,current,swappable,how}], note}. Present only when the entity has at least one swappable tag in the index, so bundles for entities without one omit it"
              },
              "leg_availability": {
                "type": [
                  "object",
                  "null"
                ],
                "description": "Per-leg degradation disclosure: which legs are present, which are degraded and why. Present only when at least one leg is degraded"
              },
              "record_hash_verifiable": {
                "type": [
                  "object",
                  "null"
                ],
                "description": "Whether this response can recompute its own record_hash offline. Present only when the payload carries a top-level record_hash; may be absent on list-shaped deliveries where verifiability is stated per row instead"
              }
            }
          }
        },
        "maxAmountRequired": "90000",
        "maxTimeoutSeconds": 300
      },
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "payTo": "0x2d16a243ba9fAcC6AC85519d5efad2149DC4C6c3",
      "scheme": "exact",
      "network": "base",
      "amountAtomic": "90000"
    }
  ]
}
METADATA PROVENANCE

Source catalog records are retained separately from live endpoint observations. Sonar score, uptime, and latency are advisory metrics. CDP indexing is not inferred from validation.