Key concepts
RPO responses are built around two concepts that explain almost everything:- Validity: most fields are timed, which means they carry a validity window.
- Codes: most categorical values link to a codelist entry — see Codelists.
Type hierarchy
RPO’s type system is shallow by design. A handful of primitives compose into the types you’ll work with directly.Embedded types
A categorical value pairing a human-readable label with its codelist reference. Used wherever a field belongs to a controlled vocabulary.
A string value with a validity window. The building block for any scalar field that can change over time — names, identifiers, and similar.
The timed variant of a codelist-backed value. Wraps a
CodeValue in a validity window so you can track when a classification like legal form or legal status changed.A structured postal address with a validity window. Use
formatedAddress for display; parse the sub-fields only when filtering or grouping by location.Entity types
A registered economic activity. Activities can be individually suspended without being terminated — giving three distinct states to check.
A structured name for a natural person. All components are arrays — a person may have multiple given names or titles.
A person or organisation with a formal relationship to the entity — shareholders, partners, members, and similar roles. May be a natural person (FO) or a legal entity (PO/OZ).
A person or organisation authorised to act on behalf of the entity. Structurally identical to
Stakeholder with one addition: statutoryBodyMember captures the specific role within a collective board.Timed values
Instead of a single current value, most fields return an array of time-scoped entries. The current value is always the entry wherevalidTo is absent. Entries with both validFrom and validTo set are historical.
Historical data is opt-in. Pass
showHistoricalData=true on the detail endpoint — without it, all entries with a validTo are omitted.Examples
Get the current value of a timed field
Get the current value of a timed field
The current entry is the one with no
validTo. Safe to use on any timed array — fullNames, identifiers, legalForms, etc.Look up a value at a specific past date
Look up a value at a specific past date
Useful for reconstructing entity state at a point in time — auditing, historical reports, or change detection.
List the full history of a field, newest first
List the full history of a field, newest first
Sort by
validFrom descending to get a chronological changelog of any timed field.