Skip to content
Guides / Show notes & attributionsView Markdown ↗
Beta

AutoUncle Data Services is in beta. The API, MCP tools and agent skill may change often, including breaking changes, until version 1.0. Read the changelog before you upgrade an integration.

Show notes & attributions

Every result carries notes (disclaimers and limitations) and attributions (the data sources that contributed). This guide shows how to display and store them correctly. Notes & data sources is the field-by-field reference.

The rules in short

  1. Keep both arrays with the result wherever you store or forward it. They are part of the result, not metadata you can drop.
  2. Show notes next to the price they apply to, at least their message.
  3. Show attribution_text whenever it is present, wherever you show or redistribute the data it covers. Do not shorten it.
  4. Match on code and source_id, never on message text.
  5. Do not assume "no obligations" when notice_status is pending_review.

Both arrays are always present and never truncated. An empty array is meaningful: no notes apply beyond the documentation, or no source data is contained (refusals, failures, account and metadata results).

Notes

A note has a code, a category, a display-ready message, pointers into the result and the source_ids that caused it:

{
  "code": "estimate_not_offer",
  "category": "disclaimer",
  "message": "This is a statistical estimate for the stated price basis. It is not an offer, an appraisal or a guaranteed transaction price.",
  "pointers": ["/valuation"],
  "source_ids": []
}
category Meaning How to show it
disclaimer How the result may be relied on Near the price, always
limitation Where the result does not apply or is weaker Near the part it points to
legal_notice Wording a data source requires you to show Exactly as given, wherever the data appears

Notes you will see on valuations today:

code When
estimate_not_offer Every valued result
market_specific Every valued result: it applies only to its market and currency
synthetic_result Test-mode results. Never show a result with this note as a market value
automated_interpretation Attributes were interpreted from text or photos
selling_time_is_forecast A selling-time forecast: what the forecast assumes and that it is not a guarantee
market_figures_describe_listings A market & demand result: the figures are aggregates over tracked listings, left the market is not always a sale, and small numbers are withheld
notices_reconstructed An older stored result whose notices were rebuilt from its recorded provenance

New codes can appear. Show the message of any note you do not recognize; that keeps you correct without a code change.

pointers are JSON Pointers into the same result, such as /valuation or /price_ratings. An empty array means the note applies to the whole result. Use them to place the note next to the right part of your UI.

Attributions

An attribution lists one source that actually contributed, and where:

{
  "source_id": "autouncle_vehicle_catalogue",
  "name": "AutoUncle vehicle catalogue",
  "url": "https://data-services.autouncle.com/docs/catalogue",
  "party": "first_party",
  "role": "vehicle_catalogue",
  "license": { "id": "autouncle_data_services_terms", "name": "AutoUncle Data Services terms", "url": "https://data-services.autouncle.com/legal/terms" },
  "attribution_text": null,
  "notice_status": "pending_review",
  "notice_version": "autouncle_vehicle_catalogue@1",
  "pointers": ["/vehicle/identity/brand", "/vehicle/identity/model", "/vehicle/identity/body"]
}
  • Only sources that contributed to this result are listed. A valued test result cites the catalogue but never the valuation model, because no model contributed.
  • pointers shows which parts of the result the source contributed to.
  • attribution_text, when not null, is wording you must display wherever you show or redistribute that data.
  • notice_status: "pending_review" means the licence and attribution obligations have not been verified yet. Today every source is pending_review. Do not conclude that no obligations apply; keep the attribution with the data.
  • license may be null when no licence reference has been published yet.

A display pattern

Show the price block, then its notes, then a compact "Data sources" line:

// Renders the notes and data sources of a valuation result as plain text lines.
export function noticeLines(result) {
  const lines = [];
  for (const note of result.notes) {
    lines.push(note.message);
  }
  const sources = result.attributions.map((source) => source.attribution_text ?? source.name);
  if (sources.length > 0) {
    lines.push(`Data sources: ${[...new Set(sources)].join("; ")}`);
  }
  return lines;
}

This shows every note's message, uses the required attribution_text when present and falls back to the source name otherwise. Escape the text for your output format (HTML, PDF) as you would any API data.

In the console, the playground and request log show the same notes and data sources under each result.

Storing and forwarding results

  • Store notes and attributions in the same record as the price. A stored read-back (GET /v1/valuations/{id}) and an idempotent replay return the notices that applied when the valuation was made, with notice_version identifying the registry revision, even if a source's notice changes later.
  • Forwarding a result to a customer or another system: include both arrays, or at least every note message and every attribution_text.
  • Agents must keep them too. The MCP server instructs agents to keep notes and attributions with any result they show and never drop attributions to save space.

Pitfalls

  • Dropping arrays to save space in a summary, a cache or an LLM context window.
  • Hard-coding today's notes. New codes and sources will appear; render the message.
  • Showing a price without its disclaimer. estimate_not_offer exists so that users do not read an estimate as an offer.

Next steps