Skip to main content
When a number drives a decision, you need to be able to defend where it came from. Conduit attaches provenance to every observation and exposes a dedicated endpoint that returns the full chain: the named source, the source URL, a raw payload reference, and the ingestion run that recorded it. Together these let you walk backward from any value in an API response to the official release it originated from.

What every observation already carries

You do not have to make a second call to get basic attribution. Observation responses include, inline:
source
string
The named source the value came from.
source_url
string
A URL pointing at the originating release or dataset.
freshness
string
The freshness label: fresh, stale, or unknown.
raw_payload_ref
string
A reference identifier for the captured upstream payload. The raw body itself is never returned; the reference proves the value was derived from a specific captured response.
rights
object
Rights and exposure metadata governing how the value may be used.
The raw payload reference is an identifier, not the payload. Conduit never re-serves upstream provider bodies. See Rights and exposure for why.

The provenance endpoint

For the complete auditable chain on a single observation, call:
GET /v1/provenance/observations/{observationId}
observationId
string
required
The identifier of the observation you want to trace. You get this from any observation response.
It returns the named source, the source URL, raw payload reference metadata, and the ingestion run that produced the value: an auditable chain from the official release all the way to the API response you received.
curl -G "https://data.quantoraresearch.com/v1/provenance/observations/obs_01HZX9K2P7QF3M4N5R6S7T8U9V" \
  -H "x-api-key: $CONDUIT_API_KEY"

Example response

{
  "data": {
    "observation_id": "obs_01HZX9K2P7QF3M4N5R6S7T8U9V",
    "source": "U.S. Bureau of Labor Statistics",
    "source_url": "https://www.bls.gov/news.release/cpi.htm",
    "raw_payload_ref": "raw_01HZX8B0C1D2E3F4G5H6J7K8M9",
    "ingestion_run": {
      "run_id": "run_01HZX7A0...",
      "started_at": "2026-06-11T12:30:04Z",
      "completed_at": "2026-06-11T12:30:09Z"
    },
    "rights": {
      "exposure": "public"
    }
  },
  "meta": {
    "api_version": "v1",
    "request_id": "f2b1c4a0-7d3e-4a8b-9c10-2e5f6a7b8c9d"
  },
  "requestId": "f2b1c4a0-7d3e-4a8b-9c10-2e5f6a7b8c9d"
}
Field names and the exact shape are defined by the OpenAPI spec at GET /openapi.json. Treat the spec as authoritative and read fields defensively.

The auditable chain

Provenance is not a single label. It is a chain of four linked facts, each answering a different audit question.

Named source

Who published this? Identifies the official issuer, for example a central bank or a national statistics office.

Source URL

Where can a human verify it? Points at the originating release or dataset so a reviewer can cross-check by hand.

Raw payload reference

Exactly which upstream response produced this value? A reference to the captured payload, proving the value was not hand-edited, without re-serving the upstream body.

Ingestion run

When and by which run did Conduit record it? Ties the value to a specific, timestamped ingestion, which connects provenance to the time model.
Pair provenance with the time model. The ingestion run timestamp is what as_of approximates today, so the provenance chain and a point-in-time query describe the same moment from two angles: one tells you where a value came from, the other when it became known.

A typical audit flow

Find the observation

Query any observation route and read the inline source, source_url, and raw_payload_ref. For many audits this is already enough.

Pull the full chain

Call GET /v1/provenance/observations/{observationId} to retrieve the named source, source URL, raw payload reference metadata, and ingestion run together.

Verify against the release

Open the source_url and confirm the published figure matches. The raw payload reference and ingestion run document the path in between.
Every value Conduit returns is traceable to an official release. There are no orphan numbers.

Rights and exposure

Why raw payload bodies are never exposed, only referenced.

Freshness and liveness

How Conduit flags stale and silently-frozen feeds.