On this page
Record metadata reference
Look up the documented metadata keys returned with Golden records, history, quality, operations, and search results.
Metadata appears in several places inside a record. The paths below are
relative to the record object, not to an API response wrapper such as record
or result. Business fields remain alongside these members.
Top-level members
| Path | Type | Meaning |
|---|---|---|
_id | string | Record identifier |
_source | array of objects | Recorded provenance; each entry has _src and optionally _src_id |
_metadata | object | Stored processing and record-state information listed below |
_search | object | Evidence attached to a search result |
qualityState | string | Derived measurement state: CURRENT, STALE, or UNCALCULATED |
_source[]._src is the source name; _source[]._src_id is its optional record
reference. In Aurelia, the CRM load records sample-source-crm and CRM-0001
for Ana. The source and reference are strings. The dataset can constrain their
vocabulary and validation through its provenance definition. Golden uses the
reserved source _golden for records created in Golden.
_audit is not part of an ordinary record response, including an expanded
response. Read events through the dedicated record audit endpoint.
Members inside _metadata
Each key in this table is nested: for example, the quality score is
_metadata._quality, not a top-level _quality field. Members can be absent
according to configuration, processing history, and measurement state.
| Key | Type | Meaning |
|---|---|---|
_errors | array | Legacy processing errors; omitted from responses with current quality measurements |
_merged | array of strings | Identifiers of records contributing to a mastered record |
_unrelated | array of strings | Identifiers recorded as unrelated or disconnected |
_updated | string | ISO 8601 time of the last recorded update |
_history | boolean | Whether the row represents retained history |
_operation | string | Record operation: insert, update, remove, or none |
_operation_bucket | string | Candidate-group operation: merge, remove, split, disconnect, or unmerge (a record restored by undoing a merge) |
_quality | integer | Record-quality score from 0 to 100, when measurable |
_quality_facts | array of objects | Findings for a current measurement |
_quality_error_count | integer | Findings of severity ERROR for a current measurement |
_quality_warning_count | integer | Findings of severity WARNING for a current measurement |
_quality_available_points | integer | Weighted total against which the score was calculated |
_quality_definition | string | Definition against which quality was measured |
_quality_calculated_at | string | ISO 8601 time of the measurement |
Quality metadata
_quality is 0 to 100, not 0.0 to 1.0. A record scoring 78 reports
78.
Read the score with the top-level qualityState:
| State | Meaning |
|---|---|
CURRENT | The stored definition matches the table’s current quality definition |
STALE | A measurement remains but its definition differs from the current one or is missing |
UNCALCULATED | Neither a quality definition nor a measurement has been recorded |
This state is derived when reading the record. A comparison between
_quality_calculated_at and _updated does not determine it. A dataset change
can make a stored measurement stale without changing the business values.
When the state is not CURRENT, the response omits _quality_facts,
_quality_error_count, and _quality_warning_count. It can retain the score
and its available points alongside the state. Missing findings are not a
successful validation, and an absent score is not zero. CURRENT alone does
not guarantee a numeric score: a record with no measurable values can have a
current measurement without one.
Each entry in _quality_facts carries:
| Field | Meaning |
|---|---|
severity | ERROR or WARNING |
messageKey | Stable identifier of the finding, for example quality.validation.email.invalid |
messageArgs | Values interpolated into the localized message |
schemaPath | The dataset column the finding is about |
recordPath | Where in this record it occurred, which differs from schemaPath inside nested or repeated structures |
Key on messageKey, never on rendered message text. The text is localized
and can change between releases; the key is the machine-readable contract.
Search metadata
_search can contain index, match, type, rank, exact, origin, and
sourceId. The type identifies the match kind: ID, EXACT, PREFIX,
SUFFIX, INFIX, FUZZY, FUZZY_LSH, GEOGRAPHIC, or NONE.
match is the normalized value Golden indexed, not the term submitted.
Treat rank as an ordering signal rather than reproducing Golden’s ranking
behavior, and read origin before claiming a record matched a value — see
Search records through the API.
Input and optional fields
Do not write processing results as business data. qualityState, _metadata,
and _search are not client-maintained business fields. _id and _source
have their own input rules: use the contract of the write operation rather
than copying a complete read response into a write request. Clients should
tolerate additional metadata properties so compatible releases can add
customer-visible context.