# Source provenance

Keep source identity and retrieval time attached to every normalized result.

Canonical: https://searchsdk.dev/docs/reliability/provenance
Markdown: https://searchsdk.dev/docs/reliability/provenance.md

<a id="fields"></a>

## Provenance fields

> **TypeScript reference**
> The API names, code and policy behavior in this article describe the TypeScript SDK. See [your language guide](https://searchsdk.dev/docs/sdks) for its supported surface and limits.

| Field | Meaning |
| --- | --- |
| `provider` | Adapter identity for this result. |
| `sourceUrl` | The source link assigned by the adapter. |
| `retrievedAt` | SDK retrieval time in ISO 8601, not source publication time. |
| `requestId?` | Provider request identifier when the adapter has one. |

<a id="retain"></a>

## Retain provenance through your pipeline

When storing sources or passing them to an answer-generating step, keep their provenance beside the text. Preserve the original link even when your application derives a citation label. Retrieval time is useful for traceability but does not prove a page is current or substantiate a factual claim.

<a id="scores"></a>

## Keep native relevance in context

Exa and Tavily may provide numeric scores. Context's string relevance is not converted into a fabricated number, and TinyFish position is not a score. A missing value should stay absent. Do not compare scores across providers without a separately validated calibration method.
