changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "properties": {
+ "brand": {
+ "type": "string"
+ },
+ "candidates": {
+ "description": "Rivals, best first. Populated on \"ambiguous\" and on \"matched\" alike.",
+ "items": {
+ "properties": {
+ "country": {
+ "description": "ISO-2 of the REGISTER, not of the company's operations.",
+ "type": "string"
+ },
+ "data_as_of": {
+ "description": "That register's own snapshot date, per row, so a stale country is visible.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "detail_tool": {
+ "description": "The live pack tool that returns the full record, e.g. \"brreg-no:get_entity\".",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "legal_form": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "legal_name": {
+ "type": "string"
+ },
+ "lei": {
+ "description": "From the GLEIF crosswalk when present. Never guessed from a name.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "match_type": {
+ "enum": [
+ "id",
+ "exact",
+ "exact_form",
+ "prefix",
+ "tokens"
+ ],
+ "type": "string"
+ },
+ "matched_kind": {
+ "enum": [
+ "legal",
+ "trading",
+ "former",
+ "english",
+ "kana"
+ ],
+ "type": "string"
+ },
+ "matched_name": {
+ "description": "The name row that matched, exactly as the publisher spells it.",
+ "type": "string"
+ },
+ "register": {
+ "description": "Publisher + dataset, e.g. \"Brønnøysund Register Centre, Enhetsregisteret\". Never a URL or filename.",
+ "type": "string"
+ },
+ "register_id": {
+ "description": "The native id in the register's own canonical formatting.",
+ "type": "string"
+ },
+ "register_key": {
+ "description": "Stable machine slug for the register.",
+ "type": "string"
+ },
+ "registration_status": {
+ "description": "GLEIF rows only: the LEI RECORD's lifecycle (ISSUED/LAPSED/RETIRED/...). A DIFFERENT fact from `status` — a lapsed LEI is unmaintained reference data about a company that may well still trade.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "score": {
+ "description": "0-1, assigned centrally. An adapter never grades itself.",
+ "type": "number"
+ },
+ "status": {
+ "description": "The COMPANY's status.",
+ "enum": [
+ "active",
+ "inactive",
+ "dissolved",
+ "unknown"
+ ],
+ "type": "string"
+ },
+ "status_raw": {
+ "description": "The register's own status word, verbatim and unglossed.",
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "country",
+ "register",
+ "register_key",
+ "register_id",
+ "legal_name",
+ "score",
+ "status"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "cik_withheld": {
+ "description": "A CIK that came back from a FUZZY SEC name match and is NOT asserted, because the spine matched a stronger non-US candidate. The number is here so a caller who wanted the US filer can still use it; what changed is that we no longer claim it IS the answer. See `unresolved.cik` for the reason.",
+ "type": "string"
+ },
+ "fanout_incomplete": {
+ "description": "Present IFF at least one register in `searched[]` carried an `error` — set even when `match_status` stayed \"ambiguous\". `withheld_match` is the candidate this call declined to ASSERT because a register was missing, carried rather than discarded so a caller who accepts the caveat can still use it.",
+ "properties": {
+ "unavailable": {
+ "items": {
+ "properties": {
+ "country": {
+ "type": "string"
+ },
+ "error": {
+ "type": "string"
+ },
+ "register": {
+ "type": "string"
+ },
+ "register_key": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "withheld_match": {
+ "type": [
+ "object",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "figi_withheld": {
+ "description": "A FIGI that matched this name in OpenFIGI (`figi_match: \"name_search\"`) and is NOT asserted, because `match_status` is \"incomplete\": a name search cannot tell a company apart from a security carrying its name, and the registers that would have settled it are the ones we could not ask. A `ticker_map` FIGI is never withheld this way — it is corroborated by the resolved ticker it came from. Carried so a caller who accepts the caveat can use it; see `unresolved.figi`, and retry, since a transiently rate-limited register completes on the next call.",
+ "type": "string"
+ },
+ "ids": {
+ "description": "Every identifier established: cik, ticker, company_name, lei, figi, isin, cusip, register_id, register_country. A key absent here appears in `unresolved` with a reason — never silently dropped.",
+ "type": "object"
+ },
+ "ingredient": {
+ "type": "string"
+ },
+ "match_explanation": {
+ "description": "Plain words. Always present when the spine ran, and required on \"ambiguous\" and \"no_match\".",
+ "type": "string"
+ },
+ "match_scoring": {
+ "description": "The margin rule's own inputs, so a caller can see WHY it fell where it did.",
+ "properties": {
+ "margin": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "runner_up": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "thresholds": {
+ "properties": {
+ "floor": {
+ "type": "number"
+ },
+ "margin": {
+ "type": "number"
+ },
+ "match": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "top": {
+ "type": [
+ "number",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "match_status": {
+ "description": "The headline to branch on. \"ambiguous\" is an ANSWER, not a failure: two companies matched the name equally well and both are in `candidates`. \"no_match\" means every register in `searched` was asked and none carried it. \"incomplete\" means one of them could NOT be asked (it carries an `error` in `searched[]`), so the candidate set is short by an unknown amount and no id is asserted — distinct from \"ambiguous\" because a RETRY is what resolves it, not a narrower query; `fanout_incomplete` names the unreachable registers and carries, under `withheld_match`, the candidate that would have been returned on a complete fan-out.",
+ "enum": [
+ "matched",
+ "ambiguous",
+ "no_match",
+ "incomplete"
+ ],
+ "type": "string"
+ },
+ "notes": {
+ "type": "string"
+ },
+ "query": {
+ "type": "string"
+ },
+ "registers": {
+ "description": "The matched entity as every register that carries it — the match (flagged `matched: true`) plus anything that collapsed into it. A Companies House number AND the LEI that crosswalks to it are the SAME answer, not rivals.",
+ "items": {
+ "properties": {
+ "country": {
+ "description": "ISO-2 of the REGISTER, not of the company's operations.",
+ "type": "string"
+ },
+ "data_as_of": {
+ "description": "That register's own snapshot date, per row, so a stale country is visible.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "detail_tool": {
+ "description": "The live pack tool that returns the full record, e.g. \"brreg-no:get_entity\".",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "legal_form": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "legal_name": {
+ "type": "string"
+ },
+ "lei": {
+ "description": "From the GLEIF crosswalk when present. Never guessed from a name.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "match_type": {
+ "enum": [
+ "id",
+ "exact",
+ "exact_form",
+ "prefix",
+ "tokens"
+ ],
+ "type": "string"
+ },
+ "matched_kind": {
+ "enum": [
+ "legal",
+ "trading",
+ "former",
+ "english",
+ "kana"
+ ],
+ "type": "string"
+ },
+ "matched_name": {
+ "description": "The name row that matched, exactly as the publisher spells it.",
+ "type": "string"
+ },
+ "register": {
+ "description": "Publisher + dataset, e.g. \"Brønnøysund Register Centre, Enhetsregisteret\". Never a URL or filename.",
+ "type": "string"
+ },
+ "register_id": {
+ "description": "The native id in the register's own canonical formatting.",
+ "type": "string"
+ },
+ "register_key": {
+ "description": "Stable machine slug for the register.",
+ "type": "string"
+ },
+ "registration_status": {
+ "description": "GLEIF rows only: the LEI RECORD's lifecycle (ISSUED/LAPSED/RETIRED/...). A DIFFERENT fact from `status` — a lapsed LEI is unmaintained reference data about a company that may well still trade.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "score": {
+ "description": "0-1, assigned centrally. An adapter never grades itself.",
+ "type": "number"
+ },
+ "status": {
+ "description": "The COMPANY's status.",
+ "enum": [
+ "active",
+ "inactive",
+ "dissolved",
+ "unknown"
+ ],
+ "type": "string"
+ },
+ "status_raw": {
+ "description": "The register's own status word, verbatim and unglossed.",
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "country",
+ "register",
+ "register_key",
+ "register_id",
+ "legal_name",
+ "score",
+ "status"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "related": {
+ "description": "Entities that collapsed INTO the match, each carrying `collapsed_by`.",
+ "items": {
+ "properties": {
+ "country": {
+ "description": "ISO-2 of the REGISTER, not of the company's operations.",
+ "type": "string"
+ },
+ "data_as_of": {
+ "description": "That register's own snapshot date, per row, so a stale country is visible.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "detail_tool": {
+ "description": "The live pack tool that returns the full record, e.g. \"brreg-no:get_entity\".",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "legal_form": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "legal_name": {
+ "type": "string"
+ },
+ "lei": {
+ "description": "From the GLEIF crosswalk when present. Never guessed from a name.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "match_type": {
+ "enum": [
+ "id",
+ "exact",
+ "exact_form",
+ "prefix",
+ "tokens"
+ ],
+ "type": "string"
+ },
+ "matched_kind": {
+ "enum": [
+ "legal",
+ "trading",
+ "former",
+ "english",
+ "kana"
+ ],
+ "type": "string"
+ },
+ "matched_name": {
+ "description": "The name row that matched, exactly as the publisher spells it.",
+ "type": "string"
+ },
+ "register": {
+ "description": "Publisher + dataset, e.g. \"Brønnøysund Register Centre, Enhetsregisteret\". Never a URL or filename.",
+ "type": "string"
+ },
+ "register_id": {
+ "description": "The native id in the register's own canonical formatting.",
+ "type": "string"
+ },
+ "register_key": {
+ "description": "Stable machine slug for the register.",
+ "type": "string"
+ },
+ "registration_status": {
+ "description": "GLEIF rows only: the LEI RECORD's lifecycle (ISSUED/LAPSED/RETIRED/...). A DIFFERENT fact from `status` — a lapsed LEI is unmaintained reference data about a company that may well still trade.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "score": {
+ "description": "0-1, assigned centrally. An adapter never grades itself.",
+ "type": "number"
+ },
+ "status": {
+ "description": "The COMPANY's status.",
+ "enum": [
+ "active",
+ "inactive",
+ "dissolved",
+ "unknown"
+ ],
+ "type": "string"
+ },
+ "status_raw": {
+ "description": "The register's own status word, verbatim and unglossed.",
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "country",
+ "register",
+ "register_key",
+ "register_id",
+ "legal_name",
+ "score",
+ "status"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "resolved": {
+ "description": "At least one identifier was established. Read `match_status` and `unresolved` for WHICH — a company can be resolved in a national register with no CIK at all.",
+ "type": "boolean"
+ },
+ "resources": {
+ "type": "object"
+ },
+ "searched": {
+ "description": "EVERY register asked, with its own as-of date and row count. A register that could not be reached carries `error` — 0 rows with an error is \"we could not ask\", 0 rows without one is \"nothing is there\", and they are different answers.",
+ "items": {
+ "properties": {
+ "country": {
+ "type": "string"
+ },
+ "data_as_of": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "error": {
+ "type": "string"
+ },
+ "register": {
+ "type": "string"
+ },
+ "register_key": {
+ "type": "string"
+ },
+ "rows": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "register",
+ "register_key",
+ "country",
+ "rows"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "sec_alternatives": {
+ "description": "EDGAR's own discarded near-misses on a name match, surfaced instead of dropped.",
+ "items": {
+ "properties": {
+ "cik": {
+ "type": "string"
+ },
+ "company_name": {
+ "type": "string"
+ },
+ "ticker": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "sources": {
+ "description": "Per-identifier provenance. Every key in `ids` has a matching key here.",
+ "type": "object"
+ },
+ "type": {
+ "type": "string"
+ },
+ "unresolved": {
+ "description": "Per-identifier reason an id could NOT be established — the honest twin of `ids`.",
+ "type": "object"
+ }
+ },
+ "required": [
+ "type",
+ "query",
+ "resolved",
+ "ids",
+ "sources",
+ "unresolved"
+ ],
+ "type": "object"
+}