---
title: "Canonical operational state + available source timing"
method: GET
path: "/api/v1/health"
tags: ["Health"]
---

# Canonical operational state + available source timing

`GET /api/v1/health`

## Request

- Base URL: `https://fonteum.com`
- URL: `https://fonteum.com/api/v1/health`
- Auth: none required

Public endpoint. HTTP 200 is the transport-liveness response sampled by the uptime monitor. Its body carries the shared canonical operational headline plus separate transport, pipeline-freshness, source-completeness, and incident dimensions; the compatibility source list does not independently classify service health.

## Response `200`

Health report. HTTP 200 means the liveness route responded; data concerns appear in the canonical body state and never change that transport response code.

- object
  - `data` object, required
    - `status` 'operational' | 'degraded' | 'outage' | 'unknown', required: Canonical operational headline shared by health and status endpoints. It is derived from separately reported transport, pipeline, source-completeness, and incident dimensions.
    - `operational_state` OperationalStatus, required: One dated operational assessment. Transport reachability, pipeline freshness, source completeness, and incidents remain separate so a data concern is not represented as a transport outage.
      - `overall` 'operational' | 'degraded' | 'outage' | 'unknown', required: Canonical operational headline shared by health and status endpoints. It is derived from separately reported transport, pipeline, source-completeness, and incident dimensions.
      - `generated_at` string, date-time, required
      - `transport` object, required
        - `state` 'operational' | 'degraded' | 'outage' | 'unknown', required: Canonical operational headline shared by health and status endpoints. It is derived from separately reported transport, pipeline, source-completeness, and incident dimensions.
        - `monitored_endpoint` string, required
        - `uptime_24h_pct` number, nullable, required
        - `uptime_30d_pct` number, nullable, required
      - `pipeline_freshness` object, required
        - `state` 'current' | 'degraded' | 'unknown', required
        - `current_sources` integer, required
        - `degraded_sources` integer, required
        - `stale_sources` integer, required
        - `legacy_unknown_sources` integer, required
        - `legacy_failed_sources` integer, required
      - `source_completeness` object, required
        - `state` 'complete' | 'incomplete' | 'unknown', required
        - `total_sources` integer, required
        - `observed_sources` integer, required
        - `unknown_sources` integer, required
        - `quality_status` 'current' | 'incomplete' | 'unavailable', required
        - `quality_score` number, nullable, required
      - `incidents` object, required
        - `state` 'clear' | 'active' | 'unknown', required
        - `open_count` integer, required
        - `highest_severity` 'critical' | 'error' | 'warning', nullable, required
        - `schema_drift_sources` integer, required
        - `quarantined_sources` integer, required
        - `upstream_degraded_sources` integer, required
        - `evidence_error_sources` integer, required
        - `operations_status` 'green' | 'red' | 'unobservable' | 'never-run' | 'unavailable', required
    - `uptime_target` string, required
    - `sources` object[], required
    - `api_version` 'v1', required
  - `meta` ResponseMeta, required
    - `request_id` string, required
    - `api_version` 'v1', required
    - `data_freshness` union, required: One source block or an array of source blocks. Fields keep content-change, publisher-release, artifact-snapshot, coverage, check, and observation timestamps separate; only a proved canonical content transition can make last_refreshed non-null.
      - DataFreshness
        - `source` string, required
        - `last_refreshed` string, date-time, nullable, required: Timestamp of the most recent proved content change. Null when canonical content evidence is unavailable, invalid, or conflicted.
        - `source_release_date` string, date-time, nullable: Publisher-issued release date represented by the response. Coverage and static artifact dates use their own fields and never advance last_refreshed.
        - `artifact_snapshot_date` string, date-time, nullable: Fonteum or static aggregate artifact snapshot represented by the response; not a publisher release or content-change timestamp.
        - `coverage_date` string, date-time, nullable: Source-data coverage date or period boundary; not a publisher release or content-change timestamp.
        - `last_checked_at` string, date-time, nullable: Latest workflow or source check, separate from content freshness.
        - `last_observed_at` string, date-time, nullable: Latest source_snapshots ledger observation, separate from content freshness.
        - `timestamp_basis` 'content_change', nullable: Present only when last_refreshed is backed by a proved canonical content transition.
        - `evidence_status` 'proved' | 'unavailable' | 'invalid' | 'conflicted' | 'error'
        - `next_refresh_eta` string, date-time, nullable
        - `cadence` string
      - DataFreshness[]
        - `source` string, required
        - `last_refreshed` string, date-time, nullable, required: Timestamp of the most recent proved content change. Null when canonical content evidence is unavailable, invalid, or conflicted.
        - `source_release_date` string, date-time, nullable: Publisher-issued release date represented by the response. Coverage and static artifact dates use their own fields and never advance last_refreshed.
        - `artifact_snapshot_date` string, date-time, nullable: Fonteum or static aggregate artifact snapshot represented by the response; not a publisher release or content-change timestamp.
        - `coverage_date` string, date-time, nullable: Source-data coverage date or period boundary; not a publisher release or content-change timestamp.
        - `last_checked_at` string, date-time, nullable: Latest workflow or source check, separate from content freshness.
        - `last_observed_at` string, date-time, nullable: Latest source_snapshots ledger observation, separate from content freshness.
        - `timestamp_basis` 'content_change', nullable: Present only when last_refreshed is backed by a proved canonical content transition.
        - `evidence_status` 'proved' | 'unavailable' | 'invalid' | 'conflicted' | 'error'
        - `next_refresh_eta` string, date-time, nullable
        - `cadence` string
    - `methodology_url` string, uri, required
    - `limitations_url` string, uri, required
    - `documentation_url` string, uri
    - `geo_scope_note` string
    - `pagination` object
      - `total` integer
      - `page` integer
      - `per_page` integer
    - `freshness` FreshnessBlock[]: Typed per-source stored-observation timing: snapshot date, configured target, and a computed age state. This measures the stored observation against Fonteum's configured target, not upstream publisher freshness. A `current` state requires a dated stored snapshot; an unconfirmable date renders `unknown`.
      - `source_id` string, required
      - `snapshot` string, date, nullable, required: Source publication date; null when unavailable (state then `unknown`).
      - `last_checked` string, date-time, required: Serve-time — the only `now` field.
      - `sla_days` integer, nullable
      - `sla_hours` integer, nullable
      - `age_hours` integer, nullable
      - `age_days` integer, nullable
      - `within_sla` boolean, nullable
      - `state` 'current' | 'degraded' | 'stale' | 'unknown', required
    - `freshness_policy` FreshnessPolicy: Present only when the request set `max_staleness`. Reports whether each consulted stored source observation met the caller's age bar; it does not assert that the upstream publisher released newer data.
      - `requested` true, required
      - `max_staleness` string, required
      - `max_staleness_hours` number, required
      - `mode` 'flag' | 'reject', required
      - `stale` boolean, required
      - `stale_sources` object[], required
        - `source_id` string
        - `state` 'current' | 'degraded' | 'stale' | 'unknown'
        - `age_hours` integer, nullable
        - `reason` 'exceeds_max_staleness' | 'freshness_unknown'
    - `attestation` TrustMark, required: Re-checkable attribution attached to v1 response metadata. The chain-head value is a 32-byte content hash, not an Ed25519 signature. Per-snapshot witness signatures use a separately scoped evidence object and never occupy this contract.
      - `attested_by` 'Fonteum', required
      - `standard` 'W3C-VC-2.0', required
      - `content_credential` 'C2PA-aligned Content Credentials for facts', required
      - `source` string, nullable, required
      - `as_of` string, nullable, required
      - `attestation_id` integer, nullable, required: Snapshot id when a specific snapshot is in scope; otherwise the live chain-head link index.
      - `chain_head_hash` string, nullable, required: Current chain-head content hash. This field is deliberately not named or represented as a signature.
      - `recheck_url` string, uri, required
      - `key_url` string, uri, required: Signing-key directory used by separately exposed chain and witness evidence.
      - `docs_url` string, uri, required

---

[API](https://skmtc.dev/fonteum/apis/fonteum-api.md) · [All operations](https://skmtc.dev/fonteum/apis/fonteum-api/llms.txt) · [OpenAPI document](https://skmtc.dev/fonteum/apis/fonteum-api/revisions/334e6e179d0d?raw)
