---
title: "Full retained series for one signal and entity"
method: GET
path: "/gauge/history-series"
tags: ["gauge", "history", "series", "no-data-no-charge", "record-hash"]
---

# Full retained series for one signal and entity

`GET /gauge/history-series`

## Request

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

[TIME SERIES EXPORT] Full retained series for one signal and entity (?days=, ?format=json or csv): every snapshot up to days (default 400, cap 1000) with snapshot_date, observed_at, data_age_hours, current, band and record_hash. For research, actuarial and base-rate work. Free 7-snapshot shape preview at /gauge/history-preview. Descriptive only, never a forecast or advice. No data -> 422 no_charge, not billed. Also searched as: time series bundle; trend history; multi point history.

## Query parameters

- `signal_id` string, required
- `entity` string, required
- `days` string
- `format` string

## Response `200`

Paid response

- object
  - `nature` string: Neutrality statement: GAUGE supplies observations and trend description only - no judgement, no prediction, no recommendation
  - `tier` string: Always the literal "history-series"
  - `format` 'json' | 'csv'
  - `signal_id` string: Signal id in genus.species ASCII binomial form (e.g. crypto.spot / macro.unemployment / shipping.route-disruption); full list at free /gauge/catalog
  - `entity` string: Monitored object id (e.g. btc / us / hormuz); full list at free /gauge/catalog or /gauge/preview
  - `days` integer: Days actually covered (capped at 1000)
  - `count` integer, required: Number of rows in series
  - `series` object[], required: CORE DELIVERY: the full time series for this (signal_id, entity) pair, snapshot_date ascending; each row carries snapshot_date / observed_at / data_age_hours / current / band / record_hash
  - `note` string: Conditional - endpoint-specific honest disclosure (limits, granularity, disclaimer); some endpoints omit it
  - `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
  - `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

## 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)
