Golden Records
Read the latest run and the multi-source records of a domain, then open one golden record with surviving values, sources, conflicts and merge reasons.
GET /v1/master-records/{domain}/overview returns the latest run with its statistics and one page of the records that have two or more members. The page is ordered review first, then by conflict severity and lowest score. Single-source records are not listed; they are in the crosswalk and in the run statistics. run is null when the domain has never run.
GET
/v1/master-records/{domain}/overviewParameters
domain*stringvendors, customers or materials.
statusstringreview, auto, accepted, split, conflict or all. conflict selects records with any field conflict. Default:
allqstringCase-insensitive substring over the golden name and the members. Up to 200 characters.
limitintegerPage size, 1 to 5000, capped at the configured page cap (500 by default). Default:
100offsetintegerRecords to skip. Default:
0Response fields
runobject | nullThe latest run: id, status (running, completed or failed), stats, error, started_at, finished_at.
totalintegerRecords matching the filter, before paging.
records[].keystringRecord key, a hash of the sorted member keys. Pass it to the record and decision routes.
records[].name / member_countstring / integerThe golden name and the number of members.
records[].statusstringauto, review, accepted or split.
records[].scorenumberLowest pair probability that holds the record together.
records[].conflict_levelstring | nullbad or warn.
records[].sources[] / conflict_fields[]arrayThe source rows (source and id) and the fields that conflict.
cURL: Records in review
curl "https://api.talonic.com/v1/master-records/vendors/overview?status=review&q=acme&limit=20" \
-H "Authorization: Bearer $TALONIC_API_KEY"GET
/v1/master-records/{domain}/records/{key}Response fields
members[]arrayThe source rows: source, id and values by field.
goldenobjectThe surviving value per field: { value, from } where from lists the sources that hold the value.
conflicts[]arrayFields whose non-empty values disagree: field, severity (bad or warn) and the values by source.
reasons[]arrayWhy the members were linked: field, outcome (match, close, differs or missing) and weight.
score / statusnumber / stringThe record's score and status (auto, review, accepted or split).
decisionstring | nullThe decision on file, accept or split, if any.
run_iduuidThe run the record belongs to.
Response: One golden record (abridged)
{
"key": "3a7f9d1c5e2b8046a1d3c7f09b4e6a28d5c1f390",
"domain": "vendors",
"name": "Acme Industrial GmbH",
"members": [
{ "source": "ERP-A", "id": "100234", "values": { "name": "ACME Industrial GmbH", "iban": "DE89370400440532013000" } },
{ "source": "ERP-B", "id": "V-8812", "values": { "name": "Acme Industrial", "iban": "DE02120300000000202051" } }
],
"golden": { "iban": { "value": "DE89370400440532013000", "from": ["ERP-A"] } },
"conflicts": [
{ "field": "iban", "severity": "bad", "values": [ { "source": "ERP-A", "value": "DE89370400440532013000" }, { "source": "ERP-B", "value": "DE02120300000000202051" } ] }
],
"reasons": [ { "field": "name", "outcome": "close", "weight": 5.6 } ],
"score": 0.87,
"status": "review",
"decision": null
}Survivorship takes the most common normalized value per field, and the earliest source on a tie. Name, street and city spellings are not conflicts; a disagreement on
iban or tax_id is bad, and any other differing field is warn. A bad conflict always sends the record to review.Frequently asked questions
What is the record key?+
A hash of the record's sorted member keys, where a member key is the source label and the source id. It identifies the record within the latest run, and it changes when the membership changes, which is why a decision on a different set of rows never applies.
How are golden values chosen?+
For each field the most common normalized value wins, and the earliest source in the configured priority order breaks a tie. Each golden value lists the sources that hold it in from, so every value names where it came from.
Why does a record I know exists not appear?+
The overview lists only records with two or more members. A record from a single source is in the crosswalk and in the run statistics. Check the status filter too: the default is all, and a q filter matches the golden name and the members only.