Documentation · Documentation version 1.0
Source Metadata Patterns
What to record about a retrieved page so a claim can be checked months later — and what not to store.
Written by Aaron Grainger
Independent Content Strategist & Product-Marketing Writer · Published Jan 13, 2026
- Primary audience
- AI application developers
- Also useful for
- AI engineers and technical founders
- Tone
- Authoritative
- Reading time
- 2 min
- Published
- Jan 13, 2026
In short
Source metadata is the record of where content came from and when. A workable minimum is the requested URL, the canonical URL, the retrieval timestamp, the content hash, the access method, and the excerpt supporting each claim. Store enough to re-check a claim; store as little third-party content as you can get away with.
The minimum record
{ "requested_url": "https://example.com/docs/limits?utm_source=chat", "canonical_url": "https://example.com/docs/limits", "retrieved_at": "2026-09-14T09:12:04Z", "access_method": "fetch", // fetch | render | api | cache "http_status": 200, "content_hash": "sha256:9f2c...", "content_chars": 5120, "title": "Rate limits", "published_hint": "2026-08-02", // from the page, may be absent "scope_rule": "docs.example.com/docs/*", "schema_version": "limits.v3"}Each field earns its place. The requested URL explains how the agent got there; the canonical URL is what a citation should show. The access method explains cost and fragility. The hash turns “did this change?” into a comparison rather than a re-read.
Claim-level attribution
Page-level provenance is not enough for anything a user will read. Attach each claim to the retrieval record and to the sentence that supports it.
{ "claim_id": "c_18", "text": "The free tier allows 60 requests per minute.", "retrieval_id": "r_204", "excerpt": "Free: 60 requests/minute, burst 120.", "excerpt_contains_value": true, "confidence_signals": ["excerpt_verbatim", "single_source"], "conflicts_with": []}What not to store
- Whole pages, beyond a short retention window needed for debugging.
- Personal data encountered incidentally — it is not part of the claim.
- Content behind authentication your product was not authorized to use.
- Screenshots as a substitute for text, unless the page is genuinely visual.
Displaying provenance
| Surface | Show | Do not show |
|---|---|---|
| End-user answer | Canonical URL, retrieval date | Internal ids, model names |
| Hover or expansion | Supporting excerpt | Full page dump |
| Support tooling | Full retrieval record, access method | Unredacted third-party content |
| Export or report | URL, date, excerpt per claim | Confidence scores presented as accuracy |
Provenance review
- Every displayed claim resolves to a URL and a date
- Excerpts are stored verbatim and are checkable against the claim
- Stale content is labelled with its age rather than served silently
- Retention windows for raw content are defined and enforced
- Conflicting sources are represented, not collapsed
Practical takeaway
- Requested URL and canonical URL are different facts — keep both.
- A content hash makes change detection cheap and storage small.
- Excerpts, not whole pages, are the unit worth retaining.
- Metadata proves origin, never correctness.
Related content
Technical guide · 6 min
How AI Agents Browse the Web Reliably
A practical guide to discovery, retrieval, clean context, structured extraction, and source traceability.
Technical guide · 2 min
How to Build Better AI Outputs With Source Metadata
What to carry alongside content, and what it lets your product say.
Foundational guide · 7 min
The Web Context Layer: A Practical Architecture for AI Products
The layer between a user question and a model call — source selection, retrieval, normalization, structured context, and provenance.
Glossary explainer · 2 min
What Is Source Provenance in AI Systems?
The record connecting an output back to the page, moment, and sentence it came from.
Version history
Current: 1.0 · Documentation version
- 1.0Jan 13, 2026First published.
Was this useful?
Sourceframe is an independent product concept created for research, product-design, and technical-content exploration. It is not an operating company, and nothing here describes a live commercial service. All examples, schemas, and code are illustrative unless a page says otherwise. No client data, customer outcomes, performance results, or partnerships are described anywhere on this site.